PC与STM32通信问题个人总结

问题: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加上下拉电阻,接匹配电阻。

你可能感兴趣的:(单片机)