请问为什么我的设备串口会出现这个问题,具体描述如下:
在设备上我有一个485串口(设备是ubuntu系统),和电脑串口对测。
在设备接收上:
1.使用busybox microcom -s 115200 /dev/ttyAS1,这样携带波特率打开串口,外部就能通过匹配的波特率给设备发信息,并且设备能够正常收到并回显
2.使用stty -F /dev/ttyAS1 115200,将串口设置为115200波特率,并且通过stty -F /dev/ttyAS1 -a命令能够检查出来串口显示的确实修改为了115200(如下),但是这时候通过busybox microcom /dev/ttyAS1(不指定波特率)打开监听,外部只有通过9600发过来才能正常接收,其他波特率都会乱码,也就是说我通过stty不管把设备的这个串口改成多少波特率,外部都只有9600能够通信
speed 115200 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-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 -flusho -extproc
在设备发送上:
1.使用stty将设备修改为任意波特率,外部需要匹配的波特率才能正常接收消息,没有出现设备接收时候那种只有9600才能匹配的情况。
我的推断:
这里只有接收表现出了异常,设备发送时候确实要匹配正常的波特率,所以可以判断设备串口stty去修改波特率确实成功了,所以我推断是busybox microcom /dev/ttyAS1监听命令的问题,请问是不是这里不携带波特率参数,就会使用默认9600,从而导致外部只有9600才能匹配。