本帖最后由 Embeding 于 2025-4-24 09:25 编辑
muyichuan2012 来啊,别只知道删啊,拿出点真本事来解决问题啊
我用TMR8定时器实现函数void set_tmr8_params(float time_ms, uint16_t *tim_repetition_counter,uint16_t *tim_div, uint16_t *tim_pr),输入参数为浮点型的定时时间,单位毫秒,范围0.01--999999.0。 使用方式为用定时器3触发DMA数据传输到外设SPI4,在完成中断中启动TMR8定时时间1,定时时间1完成后调用定时器3触发DMA数据传输到外设SPI4,在完成中断中启动TMR8定时时间2,如此循环。
实际运行发现定时时间1和定时时间2在15秒内是准确的,超过15秒定时不准确。调试查看TMR8的定时相关参数是正确的,检查了主频,分频没看出问题。不知道问题出在哪里,所以来请教各位。我也担心是哪个粗心的小遗漏导致出现此问题,怕耽误大家时间,我检查了好几次配置等问题,如果最后还是小遗漏或其他小问题导致的,那是我水平不行,说声抱歉。
这是TMR8的定时器配置
这是根据配置计算的定时频率,是正确的,运行时却不正确,如果定时15秒以内,运行时是正确的。
|