打印
[应用相关]

串口接收数据不正确

[复制链接]
516|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lwsn|  楼主 | 2017-3-29 21:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用自己写的上位机程序读传感器,收到的协议是正确的(7个字节 01 0D 3个数据字节 2个校验字节),但用stm32的串口3读出来的却是4个字节(与协议完全不对),没有发生溢出错误,使stm32与上位机通讯正常,这是什么原因呢??
void USART3_IRQHandler(void)
{               
if(USART_GetITStatus(USART3,USART_IT_RXNE)==SET)                  
        {
                Delay2(1);
                USART_ClearITPendingBit(USART3,USART_IT_RXNE);
                U3_ReceivedBuf[U3_flag++] = USART_ReceiveData(USART3);                          
        }
        
        if(USART_GetFlagStatus(USART3,USART_FLAG_ORE)!=RESET)
    {
        USART_ClearFlag(USART3,USART_FLAG_ORE);    //?SR
                WriteString(165,80,"overflow",Red);        
        }         
}
沙发
豆腐块| | 2017-3-29 21:18 | 只看该作者
中断里面用延时不太好吧

使用特权

评论回复
板凳
可可球| | 2017-3-29 21:29 | 只看该作者
stm32与上位机通讯正常,这说明stm32的串口是正常的,这就要找找你的传感器的串口的问题了,或者是波特率不正确。

使用特权

评论回复
地板
Levenburg| | 2017-3-29 21:39 | 只看该作者
一帧数据发送完毕可以立即关中断。

使用特权

评论回复
5
Thorald| | 2017-3-29 21:57 | 只看该作者
波特率是一个可能原因,还有一个可能原因就是数据线的问题,我以前也遇到过读数不正确的情况,怎么检查都没问题,结果无意间换了根线好了。你可以试试看是不是这个原因。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

122

主题

824

帖子

1

粉丝