任何想法爲什麼我的本地C應用程序無法達到比38400更高的波特率? 我有完全相同的應用程序,我成功地初始化在9600,19200,38400 baudes上收聽和傳輸。然而,一旦我設置爲57600,我就會從發射器中獲取garabage(接收器我不知道)。我正在用終端聽它,所以我直接從引腳標題看到垃圾。Uart較高的樹莓派BaudRate問題
我在GPIO頭的引腳14和15上使用Raspbian和uart。
是否有任何調整導致問題的精度分數?
現在我只是這樣做(它的工作原理): cfsetispeed(& options,B38400); cfsetospeed(& options,B38400); tcsetattr(uart0_filestream,TCSANOW,& options); fcntl(uart0_filestream,F_SETFL,O_NDELAY);
TX部分: int a = write(uart0_filestream,StartOfTheMessage,Length);
謝謝。
不是解決方案,而是調試思路。 1)你發什麼和什麼是垃圾? 2)嘗試將自己的傳輸數據循環回自己,看看你是否可以閱讀你傳輸的內容。 3)當您在57600處傳輸並用終端收聽時,您會報告垃圾。但是,如果您以其他費率收聽,比如38400,115200,19200,而您的終端仍然以57600發送,您看到了什麼? – chux