因此,我在BBB上启用了UART-1。我已经尝试将其设置为通过Termios&斯蒂。根据文档,它支持了这一点。
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 "x30x31x30" > /dev/ttyO1
预期结果:
000110000 000110001 000110000
实际结果:
000110000 100110001 000110000
我似乎无法弄清楚我要在哪里出错。就像我说的那样,文档似乎说它应该可以起作用,而且我知道如果我进入内核和黑客术语,我可以使用标记/空间奇偶校验。我不想为如此微不足道的东西保留一个被黑的内核。
任何指针都将不胜感激!
从未发现为什么棒奇偶校验不从用户空间工作,所以我只是跳到pru和pru and the pru和一切正常。使用棒状均等而没有问题。