可靠的虚拟串行通信(STM32)

时间:2018-04-13 16:53:04

标签: serial-port stm32 mbed

我通过ST-Link USB连接将NUCLEO-F746ZG板连接到我的电脑。 PC向微控制器发送不同的命令,微控制器将数据流(~15 KByte / s)发送回PC。除此之外,控制器板通过以太网与另一个设备通信,还有一些定时器中断可以改变输出引脚的状态等。

现在我遇到的问题是,在从PC到控制器的传输过程中,有时会丢失一个字节。控制器使用MBed编程,并使用BufferedSerial(使用串行中断填充内部缓冲区)。 BufferedSerial连接的大小应该足够大,以便在处理数据之前保存数据。并且波特率目前设置为500000 - 所以也应该没问题。

我认为我可以期待与控制器板的可靠连接,因为它只是USB上的虚拟串行端口。这个假设是不正确的,我必须在它之上实现一个可靠的协议吗?如果它应该工作 - 有没有人知道问题可能是什么?

1 个答案:

答案 0 :(得分:1)

您希望在UART实例上启用硬件流控制。您可以通过平台上的__HAL_UART_HWCONTROL_CTS_ENABLE宏执行此操作。

编辑:Mbed OS库中似乎支持hardware flow control。不确定它是否在F746ZG上实现,但值得一试。

相关问题