请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C123GH6PM 工具/软件:Code Composer Studio
IM 使用简单的 TX 示例程序进行 CAN 总线通信、而我尝试将数据的周期性更改为2.5ms、但并未改变。
我更改了简单的延迟、但它没有反映出来。 如何将数据周期更改为2.5ms。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
IM 使用简单的 TX 示例程序进行 CAN 总线通信、而我尝试将数据的周期性更改为2.5ms、但并未改变。
我更改了简单的延迟、但它没有反映出来。 如何将数据周期更改为2.5ms。
请记住、简单延迟是循环执行之间的时间。 在环路内、您将发送 CAN 帧并打印出 UART。 大部分时间用于打印 UART。 我将 SimpleDelay()更改为2.5ms
void SimpleDelay (void) { // //延迟周期2.5ms // SysCtlDelay (16000000 / 1200); }
然后捕获了逻辑分析仪上的 CAN 传输。 帧大约每10ms 出现一次。
然后我注释掉 UARTprintf()语句并重新运行代码。 现在、您可以看到它接近每2.5ms 一次。
但它仍然不是确切的2.5ms。 原因是 CAN 传输后开始的简单延迟。 发送 CAN 帧的时间被添加到周期中。 如果您需要更精确的时序、应该每2.5ms 有一个计时器中断并启动 CAN 传输。 这是在500KB 时 CAN 帧的样子。