请问用L0系列mcu进行串口通讯,接收数据不定长,只能一个一个字节接收,再判断是否停止接收,这样通讯方式,需要mcu程序如何编写,以L073为例。 |
一个一个字节接收,那就别用DMA了,直接串口中断接收,然后判断是否停止接收,从而决定是否解析帧
两种种方法可以考虑。第一种,每收到1个数据,启动超时,超时用定时器实现,超时到了视为本次接收完成。 第二种,使用UART的idle中断,出现idle中断视为本次接收完成。
两种种方法可以考虑。第一种,每收到1个数据,启动超时,超时用定时器实现,超时到了视为本次接收完成。 第二种,使用UART的idle中断,出现idle中断视为本次接收完成。
一个一个字节接收,那就别用DMA了,直接串口中断接收,然后判断是否停止接收,从而决定是否解析帧 ...
一个字节一个字节的收,程序每次都启动接收一个字节的接收程序,是不是我理解的?
两种种方法可以考虑。第一种,每收到1个数据,启动超时,超时用定时器实现,超时到了视为本次接收完成。
一个字节一中断,收到特定字节判断结束。用超时好像意义不大吧。 另外IDLE使用有什么好处?
看选择的库文件了。HAL接收一字节中断,接收完毕后掉回调函数,再开启接收一字节。LL库可以自己编写处理过程。
在中断里用超时中断和触发点中断实现
空闲中断或者用定时器去判断