当前位置: 首页 > news >正文

企业网站的优缺点wordpress3.5.1zhcn

企业网站的优缺点,wordpress3.5.1zhcn,美工接单网,广州建站模板搭建前言#xff1a; 比起之前用过的三星的猎户座4412芯片#xff0c;STM32F4的系统时钟可以说是小巫见大巫#xff0c;首先我们需要清晰时钟产生的原理#xff1a;几乎大多数的芯片都是由晶振产生一个比较低频的频率#xff0c;然后通过若干个PLL得到单片机能承受的频率… 前言 比起之前用过的三星的猎户座4412芯片STM32F4的系统时钟可以说是小巫见大巫首先我们需要清晰时钟产生的原理几乎大多数的芯片都是由晶振产生一个比较低频的频率然后通过若干个PLL得到单片机能承受的频率作为主频再通过其他手段将PLL出来的频率降频分给其他外设使用。一个时钟树一般先对复杂我们先调出主频及编程好时钟源、PLL倍频这一部分其他的之后再说如此编程才不会太复杂。 实际上这个一般厂家会给一个配置文件的但是如果要自己做些超频之类的操作就要彻底掌握时钟树的配置了见人见智追求技术的这个内容是逃不掉的。 编程思路1.PLL倍频因子配置 2..PLL时钟源激活和切换(上电后单片机会选择一个默认的时钟源可能是晶振也可能是内部RC电路产生的频率) 3.切换系统时钟 时钟资源概览 下面先看一下我们这个F4的系统时钟资源查看手册可知系统复位后是默认选择HSI这个内部RC电路产生的时钟作为这个单片机的系统时钟但是我们要的是PLL产生的时钟。 下面看手册PLL配置的说明可以把时钟树截图出来作参考不过主要编程还是靠手册的文字描述可知RCC_PLLCFGR 可以用来配置PLL PLLI2S可以先不管先搞出主频再说那就配置它吧。寄存器就不放出来了自己看手册这里给出寄存器各个位的配置值及解释 RCC_PLLCFGR寄存器配置 可见: PLL VCO / PLLP VCO PLL时钟源*PLLN / PLLM 一共涉及P / N / M 三个因子以及PLL时钟源。 PLL就是我们要选的系统时钟PLL 168M如果PLLP选的是2,那么VCO就得是168*2 336 。VCO是336我们的PLL时钟源如果选的是外部晶振探索者这个开发板上晶振是8M那么PLLN/PLLM就得等于 VCO / PLL时钟源 336 / 8 42 ,所以PLLN除以PLLM必须是等于42PLLN配置为336可以在192和432这个数值间任意取则PLLM配置为 336 / 42 8 .分频因子就搞定了。 下面开始配置 RCC_PLLCFGR bit[5:0]:    设置PLLM为8即0x80 bit[14:6]:  设置PLLN为336即3366 bit[17:16]:设置PLLP为2即016 bit[22]:     设置PLL和PLLI2S时钟源设为122,选择HES晶振 bit[27:24]:设置USB OTG之类的时钟随便设一个0x724 其他使用默认值编程如下 RCC-PLLCFGR  0x24003010 ;//复位值 RCC-PLLCFGR 0x724 | 122 | 016 | 3366 | 0x80 ; 这样PLL就配置好了PLL的时钟源我们选择的是HES它还没有激活所以 在PLL配置这一步之前还需要将HSE激活 RCC_CR寄存器配置 查看手册HSE部分可知要换时钟源要操作RCC_CR寄存器时钟中断我们不需要。 同样配置寄存器RCC_CR真真苦力活~ bit[0]:    HSI的开关这个呢暂时还不能关闭要让HSE生效之后才能关闭不然单片机一个时钟都没有没法工作。 bit[1]:    HSI的状态 1是ok0是不ok bit[16]:  HSE的开关置为116,打开 bit[17]:  HSE的状态它就绪之后才能配置PLL配置完PLL才能切换系统时钟(HSI时钟----PLL时钟) bit[18]:  HSE时钟旁路这个要关掉因为我们要用的是HSE晶振配置为018 bit[24]:  PLL的开关这个还没配置好之前要关掉 bit[25]PLL是否稳定的标志 其他不管RCC-CR复位时的默认值是 让HSI正常工作的其他都是0所以不改动它原有的在它原有的值基础上进行幅值 1.配置使得HSE开始工作 RCC-CR |  116 u16 retry0;//这个只是提供短暂延时的变量 while(((RCC-CR(117))0)(retry0X1FFF))retry;//跳出循环后说明HSE ok了 if(retry0X1FFF)status1;    //当然如果超过了一定时间也会跳出表示HSE无法就绪 2.打开PLL并等待其稳定 RCC-CR|124; //打开主PLL while((RCC-CR(125))0);//等待PLL准备好 使PLL倍频出很高的频率 有了上面的东西我们就可以使PLL倍频出很高的频率了结合上面两个寄存器 RCC-PLLCFGR 0x724 | 122 | 016 | 3366 | 0x80 ;//配置PLL倍频因子RCC-CR |  116//激活HSE晶振 u16 retry0;//这个只是提供短暂延时的变量 while(((RCC-CR(117))0)(retry0X1FFF))retry;//跳出循环后说明HSE ok了 if(retry0X1FFF)status1; else{//激活HSE完成了RCC-CR|124; //打开主PLLwhile((RCC-CR(125))0);//PLL稳定} 现在PLL理论上已经有了晶振倍频后的频率了下面切换PLL作为系统时钟 切换PLL作为系统时钟 查看手册知道RCC_CFGR是管这个事的再一波嘎嘎配置 bit[1:0]0x20        切换PLL作为系统时钟 bit[3:2]这两个位可以读出是否切换完成如果读出来是0x2就是切换成PLL成功 bit[7:4]这四个位是配置AHB分频的我记得是不分频的设为0000 即0x04 bit[12:10]: 这三个位是配置APB1分频的 设为4分频即0x510 bit[15:13]这三个位是配置APB2分频的 设为2分频即0x413 bit[20:16]这五个位是配置RTC分频的 可以先随便设一个设为HSE/2即0x216 其他不用管 即   RCC_CFGR 0//清零RCC_CFGR  0x216 | 0x413 | 0x510 | 0x04 | 0x20 ;//切换PLL为系统时钟并且设置其他分频while((RCC-CFGR(32))!(22));//等待主PLL作为系统时钟成功.  这样综合上面所有的代码就是 u16 retry0;//这个只是提供短暂延时的变量u8 status0; //按照上面的分析思路编程流程就是//1.配置PLL倍频因子RCC-PLLCFGR 0x724 | 122 |016 |3366 |0x80 ;//2.激活HSE晶振RCC-CR | 116;while(((RCC-CR(117))0)(retry0X1FFF))retry;//跳出循环后说明HSE ok了if(retry0X1FFF)status1;else{//激活HSE完成了//3.打开PLL等待PLL输出稳定RCC-CR|124; while((RCC-CR(125))0);//4.切换PLL输出为系统时钟RCC-CFGR 0;//清零RCC-CFGR 0x216 |0x413 | 0x510 | 0x04 |0x20;//切换PLL为系统时钟并且设置其他分频while((RCC-CFGR(32))!(22));//等待主PLL作为系统时钟成功.现在主频是168M了} 验证测试 下面可以用串口来打印验证是不是设置完成。 可见是ok了的~说明上面的系统时钟配置没问题。main函数 疑难杂症 如果你的整个main函数是这样的是配置完时钟后也是没法正常工作的 #include sys.h #include usart.h #include delay.h u16 myconut; //systick中断服务函数,使用OS时用到 void SysTick_Handler(void) { myconut;if(myconut1000){myconut0;printf(hello\r\n);}}int main(void) { u8 t0;u16 retry0;//这个只是提供短暂延时的变量u8 status0;//按照上面的分析思路编程流程就是//1.配置PLL倍频因子RCC-PLLCFGR 0x724 | 122 |016 |3366 |0x80 ;//2.激活HSE晶振RCC-CR | 116;while(((RCC-CR(117))0)(retry0X1FFF))retry;//跳出循环后说明HSE ok了if(retry0X1FFF)status1;else{//激活HSE完成了//3.打开PLL等待PLL输出稳定RCC-CR|124; while((RCC-CR(125))0);//4.切换PLL输出为系统时钟RCC-CFGR 0;//清零RCC-CFGR 0x216 |0x413 | 0x510 | 0x04 |0x20;//切换PLL为系统时钟并且设置其他分频while((RCC-CFGR(32))!(22));//等待主PLL作为系统时钟成功.现在主频是168M了}delay_init(168); //初始化延时函数NVIC_SetPriorityGrouping(2);SysTick_Config(168000);//1ms中断一次NVIC_EnableIRQ(SysTick_IRQn);uart_init(84,115200); //串口初始化为115200while(1){} }原因是缺少了这样几行关于CPU的代码将它加在时钟配置代码的上方即可正常运行了 FLASH-ACR|18; //指令预取使能.FLASH-ACR|19; //指令cache使能.FLASH-ACR|110; //数据cache使能.FLASH-ACR|50; //5个CPU等待周期. 正点原子是把它放在时钟配置里的我也不知道为啥但是我觉得它和时钟配置是没什么关系的应该是另一部分的知识。正点原子时钟配置中还有这样两句关于电源的代码我实测去掉也是可以的不过应该还是加上比较好但是时钟配置的部分手册没有提到我也就没有在上面说以免它出现的很突兀。同样要加的话加在时钟配置代码之前即可。 RCC-APB1ENR|128; //电源接口时钟使能PWR-CR|314; //高性能模式,时钟可到168Mhz 完事了~系统时钟就是这样配置啦这个算是简单的像能跑linux的那种芯片就得依靠厂家给的来写或者修改了自己写的总有不到位的地方~ 整个main.c代码如下 #include sys.h #include usart.h #include delay.h //ALIENTEK 探索者STM32F407开发板 实验0 //新建工程实验 //技术支持www.openedv.com //广州市星翼电子科技有限公司 u16 myconut; //systick中断服务函数,使用OS时用到 void SysTick_Handler(void) { myconut;if(myconut1000){myconut0;printf(hello\r\n);}}int main(void) { u8 t0;//plln,pllm,pllp,pllq//Stm32_Clock_Init(336,8,2,7);//设置时钟,168Mhzu16 retry0;//这个只是提供短暂延时的变量u8 status0;//CPU相关的初始化FLASH-ACR|18; //指令预取使能.FLASH-ACR|19; //指令cache使能.FLASH-ACR|110; //数据cache使能.FLASH-ACR|50; //5个CPU等待周期. //电源相关的初始化RCC-APB1ENR|128; //电源接口时钟使能PWR-CR|314; //高性能模式,时钟可到168Mhz//按照博客的分析思路系统时钟配置的编程流程就是//1.配置PLL倍频因子RCC-PLLCFGR 0x724 | 122 |016 |3366 |0x80 ;//2.激活HSE晶振RCC-CR | 116;while(((RCC-CR(117))0)(retry0X1FFF))retry;//跳出循环后说明HSE ok了if(retry0X1FFF)status1;else{//激活HSE完成了//3.打开PLL等待PLL输出稳定RCC-CR|124; while((RCC-CR(125))0);//4.切换PLL输出为系统时钟RCC-CFGR 0;//清零RCC-CFGR 0x216 |0x413 | 0x510 | 0x04 |0x20;//切换PLL为系统时钟并且设置其他分频while((RCC-CFGR(32))!(22));//等待主PLL作为系统时钟成功.现在主频是168M了}delay_init(168); //初始化延时函数NVIC_SetPriorityGrouping(2);SysTick_Config(168000);//1ms中断一次NVIC_EnableIRQ(SysTick_IRQn);uart_init(84,115200); //串口初始化为115200while(1){} }
http://www.hkea.cn/news/14444398/

相关文章:

  • wordpress网页实时更新数据东莞整站优化
  • 工程建设室内涂料招投标网站来个网站吧好人一生平安
  • 专业关键词排名优化软件商务网站建设组成包括网站优化
  • 做断桥铝门窗网站普宁房产网
  • 网站功能报价明细表官网seo优化
  • 物流网站建设规划总结推广方法的总结
  • 成都高端响应式网站开发手机建网站 教程
  • 合肥网站专业制作湖南做网站 就问磐石网络专业
  • 如何提升网站转化率网络建设与运维技能大赛
  • 武昌网站建设介绍网站开发的意义
  • 郑州网站建设推广报价wordpress m1 v2.4.1
  • tomcat加jsp做网站微商城免费开通
  • 自助建站空间怎么用canvas做的网站
  • 北京建设网站兼职普工域名注册查询入口网址
  • 光伏电站建设的国家网站溧阳建设集团网站
  • 有了域名怎么做自己得网站海外酒店 网站建设
  • 商会建设网站说明flash 做网站
  • 唐山做网站公司个人注册一个小公司要多少钱
  • 加盟网网站建设天心区网站建设公司
  • 潍坊网站建设技术外包中国大数据公司排名10强
  • 会员管理网站模板哪里有网站建设工程
  • 1688网站的特点陕西建设网官网公示
  • 外贸网站建设哪个好南通网站排名
  • 郑州网站seo哪家公司好房地产销售造林种养殖加工承揽项目开发等招商广告
  • 网站公司建设甘肃住房与城乡建设厅网站
  • 做网站公司昆山wordpress call to un
  • 手机咋做网站网站建设空间是否续费
  • 高端网站定制公司学编程的正规学校培训机构
  • 网站提交入口报价单模板表格
  • 企业网站维护费用wordpress阅读随机增加