我想用两个不同的时间通过一个UART发送和接收数据



我想使用10ms和1ms的定时器通过单个UART发送和接收数据。如果设置了1ms计时器标志,则10ms传输应停止,其他传输应启动,因为1ms传输是紧急的。完成此操作后,应恢复第一次操作。如何在dspic33ep系列微控制器中实现?

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

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

然后,您的主控制循环可以检查/轮询信号量,以确定是否是进行传输的时候了,以及需要什么传输类型。请注意,每个信号量只检查一次,因为它们的值可能在两次测试之间发生变化。您的控制循环还需要重置发送数据信号量的时间。

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

还有变速箱的速度问题。您必须使用相当高的波特率才能以1kHz的重复频率传输任何可观的数据量。例如,在9600波特时,只传输一个字符大约需要1ms。

相关内容

最新更新