串口转USB数据通信问题探讨
最近有个项目需要用到USB-CDC-USART功能,基本功能实现后实测发现从串口接收到数据后,经USB发出去时会存在丢数据行为。于是此类问题想和广大坛友一起探讨一下,是否有更好的解决方案:
1 我所知道如果类似STM32有帧中断功能,接收一帧数据后发往USB口(但需要提前规定帧长,USB 不能超过USB 端点长度)
2 有DMA功能的mcu,USB设置为DMA模式,定长发送,超时非定长发送。
3 无DMA功能也无帧中断功能(?) 针对第三种,既无DMA也无帧中断。我想到的一种方法就是:
开辟一个buffer区,用来保存串口数据,同时定义一个头指针与一个尾指针。
头指针指向USB发送数据起点;尾指针指向串口数据接收的终点。
缓冲区是必须的,TxRx都要
参考USB转串口芯片,那里面是硬件的逻辑,响应速度比用MCU实现的快得多,但是依然需要缓冲区
页:
[1]