485是一種半雙工的通訊方式,即發送和接收信息不能同時進行,一般是采用兩線制。
485的特點有:
- 通過AB線的電勢差決定信號,2~6V為1,-6~-2V為0
- 傳輸距離遠,但是距離遠會導致傳輸速度下降
- 抗干擾能力強
- 支持多節點,即多設備通訊,起始和結束端要加120的阻抗
上圖是485的連接方式,其實應該是沒有主機這一說的,大家都是平等的。
STM32芯片本身沒有485通訊的口,但是可以通過一塊UART轉485模塊進行485通訊,比如SP3485
上圖為SP3485的硬件框圖,圖中A、B總線接口,用於連接485總線。RO是接收輸出端,DI是發送數據收入端,RE是接收使能信號(低電平有效),DE是發送使能信號(高電平有效)
該模塊與STM32的硬件連接圖為:
其中RS485_RE這個口可以用一個普通的IO代替,圖中用了一個PCF8574T模塊,通過IIC拓展IO輸出信號,正常我們使用的時候沒必要這么搞。
當RS485_RE=0的時候,為接收模式;當RS485_RE=1的時候,為發送模式。
會不會有人問,485這么麻煩,而且485通訊的傳輸速度取決於串口,為什么還有專門通過串口轉485再操作,直接通過串口不好么?
使用485的原因可能有以下幾個:
- 通訊的從機是485接口的,你只能硬着頭皮用485去通訊
- 多設備通訊,串口只能兩個設備
- 遠距離傳輸
其他就不用多說了,有點STM32基礎的應該都會操作了吧,以上就是我對485通訊的理解,以及STM32如何使用485的談論。