(一)预期准备
实现机制:空闲中断+DMA中断接收不定长串口数据
开发工具:STM32F103芯片,keil5,usb转ttl工具
预计实现效果:串口1接收数据然后透传给串口2发出去,保证转发的完整性和稳定性。
(二)实现流程
实际测试过程:
1.程序里面的DMA初始化,引脚配置,以及逻辑部分可以按需来修改;
2.将芯片串口1和2的接收和发送分别引出来使用ttl转usb接到电脑;
3.设备向转发板发数据包,串口1并联然后记录原始数据到pc端COM13,
数据包被透传转发到串口2然后转到PC端COM14进行查看;
(如果没实际设备可用,可以使用PC端模拟发送数据到串口1,效果类似)
4.pc端对比com13/14的数据,经过打印两串口的数据字节大小,
如下图,发送1w+字节数据转发,基本保持一致。
(三) 代码设计实例
本示例usart.c使用串口2接收设备端发来的指令,串口1作为转发口,串口3作为debug调试口
其中,数据处理过程清除USART1->SR和USART1->DR 是有必要的,
以及缓存区的大小最好定义为512或者1024。
|