【串口】串口不返回数据,返回数据错误等原因分析
原因分析总结:
1、初始化了吗?
有一次,串口始终返回的数据只有一个字母,所以我们一直怀疑是数据被覆盖或者数据接收不全,但是后来才发现,串口没有初始化。
2、速率设置不对。
3、485端口的收发方式与串口有区别。
8月20日 周六
倾角传感器没有数据返回的原因是:
倾角传感器传输端口已经由一般串口改为485接口,232的收发是由两条线路来分别司职收和发,485的通却是两条线路通过差分的方式表示1、和0,共同司职收或发,收还是发由另一个引脚控制,因而在收或发之前,一定要正确设置这个引脚。
P7OUT &= ~BIT4; P7 拉低 准备发送
UART2_SendStr_char(ask);
__delay_cycles(20000); //延时(时间要充足,且考虑要保证不错过回来的数据),保证最后一个字符能够发出去(把字符丢入buff后不管,此时若buff没送出字符,485就进入接收状态,则字符发布出去)
P7OUT |= BIT4; P7 拉高 准备接收
否则无法正确收发数据,要么只能收,要么只能发。