关于CH32V307,Systick的测试疑问

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

1652948298164631.png

1652948298101652.png

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

并未修改BSP_delay_US,并循环7000次的函数

但从我的CPU运行时间获取函数bsp_GetRuntime();中显示

在先延迟5000MS时,7000次循环期间时间偏差极大(非偶然差异,多次运行为同一结果)

而在先2000MS时,时间偏差却较小。我想不到合理的解释。

其二:随后在载入串口空闲中断接收不定长+DMA发送时出现与预期不符的情况



9851ee6100b2271a6f56b7b045b6fbc.png在此情况下,我程序运行时间应该是2+2+5+2共计11秒

但是CPU运行时间到9秒时就到达了断点(现实中也是9秒左右)。并且可知前两次BSP_Delay_MS(2000);

只执行了一次。

当我注释掉USARTx_Configuration();后

d476ce4847ef540382d65cec784046b.png运行结果正常两次BSP_Delay_MS(2000);

均被执行。时间也是标准的11秒。

非常疑惑还望解答

您好,若方便,可将你的测试例程发至我的邮箱(lzs@wch.cn),这边测试看一下


只有登录才能回复,可以选择微信账号登录