问题:RS485通信---PC与STM32F4通信,PC接USB转485与STM32F4板上的SP3485模块通信
1.只能收不能发
2.发送标志位USART_FLAG_TC和USART_FLAG_TXE的区别
3.乱码
解决方案总结:
1.这个问题可能存在两个方面的情况
软件问题:要仔细查看代码是否正确,比如配置时钟是否都打开了,配置是否正确。(有时候示例代码也会出错,请仔细检查)
硬件问题:在判断这个硬件问题前先确定代码正确;再检查原理图和焊接情况是否接错了,再不行就换一个芯片试试。
2.在正点原子的论坛上看到有网友的一个解释十分的形象:TC是枪膛,TXE是弹仓。
1)数据发到串口缓冲区时,TC=0,TXE=0
2)串口缓冲区的数据发到移位寄存器且没有新数据写到缓冲区时,TC=0,TXE=1
或串口缓冲区的数据发到移位寄存器但又有新数据写入缓冲区时,TC=0,TXE=0
3)移位寄存器发送出数据后,TC=1,TXE=1
所以如果用TXE作为标志位,建议需要在RS485设置为
3.乱码的原因是从机回复过快,同时对发信号等,控制好逻辑就行。硬件原因的话就AB加上下拉电阻,接匹配电阻。