【问题标题】:I want transmit and receive data through a single UART using two different times我想使用两个不同的时间通过单个 UART 发送和接收数据
【发布时间】:2021-09-16 06:03:21
【问题描述】:

我想使用 10 毫秒和 1 毫秒的定时器通过单个 UART 发送和接收数据。如果设置了 1ms 定时器标志,则 10ms 传输应该停止,其他应该开始,因为 1ms 传输是紧急的。完成后,第一个应该恢复。 dspic33ep单片机系列怎么做?

注意:Uart 可用性受应用程序限制。

【问题讨论】:

    标签: timer serial-port uart microchip dspic


    【解决方案1】:

    我建议以 1kHz(即每毫秒)触发单个定时器中断。中断将设置一对全局信号量标志,指示 (a) 需要传输,以及 (b) 应该发生什么类型的传输。信号量应声明为 volatile。

    然后,您的主控制循环可以检查/轮询信号量以确定是否该进行传输,以及所需的传输类型。注意只检查每个信号量一次,因为它们的值可以在两次测试之间改变。您的控制循环还需要重置 time-to-send-data 信号量。

    这种方法会有一些延迟(设置信号量的中断和循环测试信号量之间的时间)。

    还有传输速度的问题。您将不得不使用相当高的波特率才能以 1kHz 的重复率传输任何可观的数据量。例如,在 9600 波特率下,仅传输一个字符大约需要 1ms。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      • 2016-01-11
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      • 2020-11-13
      相关资源
      最近更新 更多