打印
[技术问答]

HC32F030J8TA SysTick时钟源标识错误

[复制链接]
1237|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 chenxiaolang 于 2019-12-19 01:15 编辑

  本人ARM小白,用HC32F030J8TA自己做的开发板。个人觉得一款MCU,核心部分或难点在于:启动代码、时钟配置、中断配置,这些“最小系统”稳定了其他外设就是“填寄存器”了,和内核关系不大。本次是调试Systick一个小意外,共享经验。
1、采用XTH时钟源,PLL倍频到48MHz给内核使用,再分频到6MHz给外设。


2、系统运行需要一个节拍定时器,采用Systick 1ms中断实现。从官方规格书框图可以看到,Systick时钟源是PCLK,也就是外设时钟。




3、通过下面的代码配置成1ms中断,应该没问题,但实际中断频率远大于1ms


4、起初怀疑是系统时钟配置不正确,把HCLK(内核时钟)和PCLK(外设时钟)分频后映射到PA01和PA02,分别测试到6MHz(48M/8)和(6M/8)750KHz,结果符合预期。


5、再查规格书,发现SysTick时钟源只能选内核时钟或外部低频时钟,原来是被第2步中的那张时钟框图误导了,希望厂家能及时纠正。


6、更改代码如下,实现了1ms中断,符合预期。


7、经查证其他资料,Cortex核的SysTick是和内核深度绑定的,不是一个芯片设计方随意更改的“外设”,不光是HC32系列,其他厂家的SysTick均是采用内核时钟。


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

48

帖子

4

粉丝