2个串口互相发码,出现乱码

2019-08-18 18:22发布

void USART2_IRQHandler(void)
{
        u8 res;
         if(USART_GetITStatus(USART2,USART_IT_RXNE))
     {
         res= USART_ReceiveData(USART2);
         USART_SendData(USART1,res);
         printf("qwer");
         USART_SendData(USART1,0x02);         
        }
}

复用了2个串口(USART1和USART2),想通过触摸屏按某个坐标,通过串口2接收到串口调试助手发来的数据,进入串口2中断程序,给串口1发送"qwer",但是在串口调试助手接收到乱码
   这是发送了3次的。"USART_IT_RXNE"自定义寄存器,整个寄存器的定义每个位的解释在哪,给的资料里面没找到
望吧内大神指导,还有原子哥帮我解释一下

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
lvkanger
1楼-- · 2019-08-19 09:17
发送没有等发送标志!
Xrunovingo
2楼-- · 2019-08-19 14:39
lvkanger 发表于 2017-5-23 09:12
发送没有等发送标志!

能说的具体一点吗?或者说代码里面该怎么写呢。
Widow
3楼-- · 2019-08-19 18:16
加上发送是否结束的判断,while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
highrunning
4楼-- · 2019-08-19 22:09
查看波特率是否一致,低一点会减少误码率
命运枷锁
5楼-- · 2019-08-20 03:06
 精彩回答 2  元偷偷看……
Xrunovingo
6楼-- · 2019-08-20 06:08
命运枷锁 发表于 2017-5-25 11:23
你的串口1时钟不用打开吗

打开了,串口1初始化是例子程序里面的 ,我这边没有粘贴出来

一周热门 更多>