串口2发送完数据后,怎么实现每发完一次数据都在后面加一个回车?

2019-08-17 03:04发布

我是用串口1发数据到串口2,然后由串口2将数据发送出去,但串口2发完数据后要怎么加一个回车啊?串口1发的数据是有换行,但串口2发出去的并没有换行,所有数据都是连在一起.结果如下,回车符应该是0x0D,0x0A呀,但我试了不行,不知道应该怎么加的,求助。我想要串口2每发完一次都换一行,应该怎么做........
串口1:
0123456789
0123456789
0123456789
0123456789
0123456789

串口2:
0123456789012345678901234567890123456789012345678901234567890123456789

这个问题要怎么解的?求指点,请求原子哥及各位大神帮助啊,感谢!!!

代码

while(1) 
{  
     delay_ms(1);
        
       if(USART_RX_STA&0x8000)     //接收到一次数据了
{   
rxlen=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
          
for(i=0;i<rxlen;i++)
{
               
USART_SendData(USART2 , USART_RX_BUF);//向串口2发送数据
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);//等待发送结束
                                 
}
           
            printf("%s ",USART_RX_BUF);
         
            USART_RX_STA=0;
           
            
}else
{
times++;
if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行.
delay_ms(10);   

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
huanying
1楼-- · 2019-08-18 00:52
 精彩回答 2  元偷偷看……
HTQ
2楼-- · 2019-08-18 03:19
正点原子 发表于 2014-8-13 08:56

for(i=0;i&lt;rxlen;i++)
循环发送的最后,加多2个字节的发送:
多发送0X0D,0X0A,就可以了.&gt;

不行啊。怎么办
bg6qbt
3楼-- · 2019-08-18 07:23
我是这样解决的:
printf("Serial port at 115,200 baud, 8 bit, no parity, 1 stop-bit. ");

就是
野驴
4楼-- · 2019-08-18 08:32
正点原子 发表于 2014-8-13 08:56

for(i=0;i&lt;rxlen;i++)
循环发送的最后,加多2个字节的发送:
多发送0X0D,0X0A,就可以了.&gt;

原子哥,这个方法多接收的两位都是00啊,我是串口2接受然后串口1发出来
野驴
5楼-- · 2019-08-18 11:02
楼主,原子哥给的解决方法你用着好用么为什么我多发送的两位是00啊

一周热门 更多>