1. 程式人生 > >AM335X下Linux驅動 485串列埠 只能收不能發 問題的解決

AM335X下Linux驅動 485串列埠 只能收不能發 問題的解決

小弟剛拿到am335的開發板。最近在做linux驅動移植,Kernel版本3.14.26,這兩天移植485和232的驅動也就是Ti公司的omap-serial.c檔案。
由於電路板上232和485是硬體支援切換的,485的rts管腳不需要在dts上配置。
移植之後,連線電腦做對發測試。

由於手裡的轉接線有限,只能像如下方式連線電腦
連線圖為:                                                                                                                                                                                


rs485的連發和上圖一樣。 rs232的連發是上圖去掉中間的rs485轉232轉換器。
結果rs232可以正常通訊。 切換為rs485時可以收到電腦發來的資料,發不出資料。
斷開接線後,用示波器測試db9公口,波形正常。

後面無意中發現  “母口   串列埠線   母口” 輸入1,2腳的波形,在輸出的時候變為1,3腳。 去掉它,直接用杜邦線連線後,rs485就可以正常通訊了,不過AM335傳送的資料還是會回顯在自己的microcom中,原因還不太清楚。
注意這根 “母口   串列埠線   母口” 是232用的,485不能使用!!
因為232的TX,RX是2,3腳,485的TX1,TX2是1,2腳,所以母口對母口的轉接線是不能混用的!!
請不要隨便拿一根串列埠線來做485/232的測試,因為它可能會把你坑出翔,希望能幫到大家。

最後必須吐槽一下win10的輸入法實在是太難用了,碼這些字都費勁。c =。=|||b