佚名通过本文主要向大家介绍了stm32usart11520,stm32 usart,stm32 usart2配置,stm32 usart dma,stm32 usart3等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: stm32的USART转485问题
描述:
解决方案1:
描述:
我想知道串口的接收引脚是怎么判断接收到一个字节的,因为我给用USART发送了数据然后转485,再接收回来看,发现多了很多的0x00,而且原来的数也不对了,想知道什么原因
解决方案1:
485芯片在接收发送切换时候,RO引脚会有一个电平变化,有些CPU如果使能了UART的帧错误检测,就会触发一次串口中断,如果此时你的中断里面有从UART 接收寄存器读取数据的操作,读出来的数据就是0x00。
避免这种问题的做法就是在串口中断里面增加UART的状态寄存器检测,只有是接收数据产生的中断才从接收寄存器拿数据。
或者增加通讯协议,按照一定的格式来传输数据并增加校验,一般出现0x00的都会在有效格式的前面或后面,按照协议收包时就会忽略掉0x00。
如果收到0 较多,但不是全0,可以考虑检查波特率是否匹配
解决方案3: 检测下,不带485串口通信是否正常。
在AB端接上120欧姆匹配电阻
485是半双工的,一般都是处于接收状态,只有发送数据才切换到发送状态。