使用FreeRTOS读取DMX

时间:2018-06-28 14:07:21

标签: microcontroller uart freertos nxp-microcontroller dmx512

使用FreeRTOS驱动程序和K21微控制器在DMX解码器上工作。为了提供有关DMX的一些背景信息,先有一个BREAK(低,最低88 us),然后是MARK AFTER BREAK(高,最低8 us),其后是8N2 UART帧。我对DMX解码器的实现涉及计时BREAK以检查其是否有效。如果时序有效,则将信号量传递给使用UART_RTOS_Receive读取UART的任务。但是会出现一些问题。

  • 首先,如果数据包小于缓冲区大小,那么即使UART线路已被占用,也不会触发负责通知RTOS的事件位:“确定,我们已经完成了读取UART字节的操作”空闲。

  • 另一个问题是,当第一次调用函数UART_RTOS_Receive时,会出现成帧错误。奇怪的是,当行为IDLE时,在MARK AFTER BREAK期间调用该函数,因此出于某种原因,IDLE被解释为成帧错误。

如果任何人都可以对这个问题有所了解,那么将不胜感激。

0 个答案:

没有答案