WCH沁恒单片机
直播中

张艳

8年用户 1704经验值
私信 关注
[问答]

对CH32V307根据官方的Systick,例程修改后数值偏差较大怎么解决?

在对CH32V307根据官方的Systick,例程修改后先是出现了如下问题


可见两次运行我修改的是BSP_delay_MS的数值

并未修改BSP_delay_US,并循环7000次的函数
但从我的CPU运行时间获取函数bsp_GetRuntime();中显示
在先延迟5000MS时,7000次循环期间时间偏差极大(非偶然差异,多次运行为同一结果)
而在先2000MS时,时间偏差却较小。我想不到合理的解释。
其二:随后在载入串口空闲中断接收不定长+DMA发送时出现与预期不符的情况





在此情况下,我程序运行时间应该是2+2+5+2共计11秒
但是CPU运行时间到9秒时就到达了断点(现实中也是9秒左右)。并且可知前两次BSP_Delay_MS(2000);
只执行了一次。
当我注释掉USARTx_Configuration();后
运行结果正常两次BSP_Delay_MS(2000);
均被执行。时间也是标准的11秒。
非常疑惑还望解答



回帖(1)

李丹

2022-6-21 09:28:13
您好,若方便,可将你的测试例程发至我的邮箱(lzs@wch.cn),这边测试看一下
举报

更多回帖

发帖
×
20
完善资料,
赚取积分