串口接收函数全是"?"请问是怎么回事?

2019-07-21 00:30发布

 请教大家一个问题,在调STM32F407的串口4,接收到的数据全是?,请问怎么回事?用的是原子的程序改的 
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
布沙尼神甫
1楼-- · 2019-07-21 03:11
同时,发送方面,发送的是0x03,串口调试助手接收到的却是1E,波特率是一致的
biyabc
2楼-- · 2019-07-21 04:16
 精彩回答 2  元偷偷看……
布沙尼神甫
3楼-- · 2019-07-21 04:20
biyabc 发表于 2015-12-25 22:08
你应该在检查一下你的串口配置,看看波特率!

谢谢,不过第一个就检查的波特率,然后又检查了几次配置,还自己重新写过几次配置程序。接着又在不同的探索者板子上试,都不成功……
1201yuge
4楼-- · 2019-07-21 08:34
建议把串口的接收中断改成简单的试试:
void USART6_IRQHandler(void)                        //串口1中断服务程序
{
        u8 Res;
#ifdef OS_TICKS_PER_SEC                 //如果时钟节拍数定义了,说明要使用ucosII了.
        OSIntEnter();   
#endif
        if(USART_GetITStatus(USART6, USART_IT_RXNE) != RESET)  //接收中断(接收到的数据必须是0x0d 0x0a结尾)
        {
                Res =USART_ReceiveData(USART6);//(USART1->DR);        //读取接收到的数据
                send(Res);
                   
  }
#ifdef OS_TICKS_PER_SEC                 //如果时钟节拍数定义了,说明要使用ucosII了.
        OSIntExit();                                                                                           
#endif
}
布沙尼神甫
5楼-- · 2019-07-21 11:35
1201yuge 发表于 2015-12-26 10:08
建议把串口的接收中断改成简单的试试:
void USART6_IRQHandler(void)                        //串口1中断服务程 ...

好的,试试,谢谢
布沙尼神甫
6楼-- · 2019-07-21 17:17
 精彩回答 2  元偷偷看……

一周热门 更多>