0
所以我啓用了BBB上的UART-1。我已經嘗試通過termios & stty來設置它以使用標記/空格奇偶校驗。根據doc它支持這一點。BBB標記/空格奇偶校驗
termios的設置:
options.c_cflag &= ~CSTOPB;
options.c_cflag &= ~CSIZE;
options.c_cflag &= ~CRTSCTS;
options.c_cflag |= CS8;
options.c_cflag &= ~PARODD;
options.c_cflag |= PARENB;
options.c_cflag |= CMSPAR;
options.c_oflag = 0;
options.c_lflag = 0;
options.c_iflag &= ~(IXON | IXOFF | IXANY | IGNBRK);
options.c_iflag |= INPCK | PARMRK;
stty的輸出:
speed 9600 baud; rows 0; columns 0; line = 48;
intr = }; quit = ^A; erase = <undef>; kill = ^P; eof = M-4; eol = M-`; eol2 = <undef>; swtch = M-^X;
start = E; stop = M-p; susp = M-6; rprnt = $; werase = M-6; lnext = 8; flush = M-^Y;
min = 182; time = 174;
parenb -parodd cmspar cs8 -hupcl -cstopb -cread clocal -crtscts
-ignbrk -brkint -ignpar parmrk inpck -istrip -inlcr -igncr icrnl -ixon -ixoff iuclc -ixany -imaxbel
-iutf8
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke
測試:
echo -e "\x30\x31\x30" > /dev/ttyO1
個預計業績:
000110000 000110001 000110000
實際結果:
000110000 100110001 000110000
我似乎無法找出我要去哪裏錯了。就像我說的,文檔似乎說它應該工作,並且我知道如果我進入內核並且可以使用標記/空格奇偶校驗來映射omap-serial。我不想維護一個黑客攻擊的內核,但是這樣的事情很微不足道。
任何指針將不勝感激!
*「我嘗試設置它以使用標記/空間奇偶校驗」* - 標記和空格是兩種不同的狀態。您只能選擇一個奇偶校驗配置。它是什麼?你的*「結果」*沒有意義,因爲你沒有描述兩端的實際串行配置。 *「就像我說的,文檔似乎說它應該工作」* - 你學習了* termios * ** man **頁面嗎?您是否滿足** _ BSD_SOURCE **或** _ SVID_SOURCE **要求?順便說一句,這是配置* termios *的低質量代碼。請參閱http://www.chemie.fu-berlin.de/chemnet/use/info/libc/libc_12.html#SEC237 – sawdust
首先,通過標記/空格,我只是指棍子或cmspar。其次,我明確地給出了我的設置和預期結果......兩者都清楚地說明了空間平價。第三,我沒有使用邏輯分析儀的輔助設備,所以..yeah。第四,它的示例代碼來說明問題並詢問我是否錯過了配置掩碼。謝謝你的時間,但是你的評論是無用的,因爲如果你在硬件上可能的話,或者從termios的角度來看可能犯的錯誤,你真的沒有解決。 –