HK32F030M是航顺一款入门级经济型32位MCU,使用ARM® Cortex®-M0内核,最高工作频率32 MHz,内置16 KByte Flash、448 Byte EEPROM和2 KByte SRAM。由于其超高的性价比,在工业、医疗、消费电子等行业得到广泛应用。
HK32F030M使用过程中如果设计有软件循环设计延时,有可能会出现延时不准确的现象。
原因是由于芯片设计时,在存储设备和MCU之间设计了4个word的高速buffer,存储慢的数据先把数据存放到buffer。通过buffer可以减少进程间通信需要等待的时间,在此期间MCU可以干其他的事情,但是当循环指令小于4个word(最大8条指令)时,有可能代码存放于高速buffer,造成循环代码的取指时间不固定。对于这种情况,请参考以下解决方案:
建议在DelayMs函数中,增加循环体中指令数量,让代码的取指不会命中高速buffer。
由于Nop的指令只有16bit,buffer是32位取指,所以为了一致性,建议加偶数个 nop。
修改前

修改后

来源: 航顺芯片
审核编辑:汤梓红
-
mcu
+关注
关注
147文章
18613浏览量
387181 -
芯片设计
+关注
关注
15文章
1128浏览量
56453 -
EEPROM
+关注
关注
9文章
1129浏览量
85539 -
航顺芯片
+关注
关注
1文章
112浏览量
23454
发布评论请先 登录
HK32F030M GPIO最快翻转速度的问题
HK32F030M开发板使用说明及其注意事项
HK32MCU应用笔记(五)| 关于应用HK32F030延时效率问题 应用笔记
基于HK32F030M系列MCU智能插座

软件循环延时不稳定解决方案-HK32F030M应用笔记(二十二)
评论