供应


智能制造网供应网 华大F460和4A0 systick使用注意

华大F460和4A0 systick使用注意

  • 产地
  • 所在地
  • 暂无
  • 辽宁沈阳市

更新时间:2021-09-17

有效日期:已过期

产品详情

客户在用华大MCU systick做延时,表示系统延时不准确,差距很大。

看一下systick的initial函数 SysTick_Init:


发现输入到SysTick_Config中的SystemCoreClock,客户打印或者debug发现SystemCoreClock为8M,实际客户使用200Mhz运行。

那么这个systick timer的计数时基就不对了,所以看一下SystemCoreClock是哪里配置的。
发现是在系统刚启动start.s调用的SystemInit内再调用SystemCoreClockUpdate函数中根据实际系统时钟设置情况赋值。


而实际程序中我们往往需要使用到PLL把MCU系统时钟变更到更高的频率上,比如200Mhz。
通常我们会在main函数内加一个ClkInit类似函数,在ClkInit中设置PLL 提高系统时钟。
那么startup_hc32f46x.s文件中在main函数执行之前,会调用SystemInit:


而SystemCoreClock就在SystemInit内设置,所以也就是说.s文件在我们main函数设置系统clk之前就已经根据MCU刚刚启动时的时钟配置把SystemCoreClock赋值了。
而MCU刚启动的时候,都时默认内部8M RC振荡器,SystemCoreClock为8Mhz也就不奇怪了。

得出结论,我们在驱动或者其他程序运行的地方用到SystemCoreClock变量的地方 都会出现我们不想要的8Mhz时钟。(在main运行后 变更了系统时钟)

所以,请在main调用类似ClkInit函数后,再次调用一下SystemInit或者SystemCoreClockUpdate来更新全局变量SystemCoreClock。
这样比如systick等用到变量SystemCoreClock初始化的功能都会正确设置时基。

这里我建议使用SystemCoreClockUpdate来更新全局变量SystemCoreClock。



免责声明:以上所展示的信息由企业自行提供,内容的真实性、准确性和合法性由发布企业负责,智能制造网对此不承担任何保证责任。

在线询价

 

沈阳芯硕科技有限公司

型:
代理商
联系人:
沈阳芯硕科

联系我时,请说明是在智能制造网上看到的,谢谢

商家概况

主营产品:
消防,家电,汽车电子,电力系统,仪器仪表等
公司性质:
代理商

该商家其它产品

华大电子通用异步收发器

华大电子通用异步...

摘要:华大电子MCUCIU32M010、CIU [详细]
华大电子MCU通用输入输出、同步串行接口

华大电子MCU通用...

摘要:华大电子MCUCIU32M010、CIU [详细]
华大电子MCU  复位和时钟系统

华大电子MCU 复...

摘要:华大电子MCUCIU32M010、CIU [详细]
华大电子MCU  低功耗模式

华大电子MCU 低...

摘要:华大电子MCUCIU32M010、CIU [详细]
华大电子MCU 循环冗余校验计算单元

华大电子MCU 循环...

摘要:华大电子MCUCIU32M010、CIU [详细]
华大电子MCU 嵌入式闪存及中断和事件

华大电子MCU 嵌入...

摘要:华大电子MCUCIU32M010、CIU [详细]
华大电子存储器映射

华大电子存储器映...

摘要:华大电子CIU32M010、CIU32M [详细]
华大电子系统及存储器架构

华大电子系统及存...

摘要:华大电子CIU32M010系统及存 [详细]

其它商家同类产品


新手指南
了解智能制造卖家注册买家注册操作指南手机智能在线
旗下子站
智能控制机器人物联网3D打印
站点导航
找资讯找公司找产品找展会品牌商城
本站服务
会员服务企业建站广告服务SEO优化