转自:http://blog.chinaunix.net/uid-27717694-id-3898354.html
一、串口通讯
我用串口调试助手(windows下)向linux下的串口1 发送数据(串口线我跟其他机器互测过,没问题),
在linux 下 cat /dev/ttyS0 接收.
但奇怪的是 cat /dev/ttyS0没有显示受到认识数据,反而是我的串口调试助手收到了返回!!
linux端不用 cat /dev/ttyS0读的时候没有返回!
原因:
1.windows要发送可显示字符,cat才能显示出来。
2.串口调试助手设置了回显功能。
3.windows的串口调试软件发送时多发一个回车键就行了,而且之前发过去没显示的都会显示出来。这跟linux下printf不加"
"就没显示是一个道理的。
二、Ubuntu环境串口无权限:
lenky@lenky-VirtualBox:~/桌面$ echo a > /dev/ttyS0
bash: /dev/ttyS0: 权限不够
解决方案:
1,查看串口对应的属性:
lenky@lenky-VirtualBox:~/桌面$ ls /dev/ttyS0 -l
crw-rw—- 1 root dialout 4, 64 9月 24 14:48 /dev/ttyS0
2,把当前帐号加入到串口所属组:
lenky@lenky-VirtualBox:~/桌面$ groups lenky
lenky : lenky adm cdrom sudo dip plugdev lpadmin sambashare
lenky@lenky-VirtualBox:~/桌面$ sudo gpasswd –add lenky dialout
[sudo] password for lenky:
正在将用户“lenky”加入到“dialout”组中
lenky@lenky-VirtualBox:~/桌面$ groups lenky
lenky : lenky adm dialout cdrom sudo dip plugdev lpadmin sambashare
3,注销后重新登录,再试,OK:
lenky@lenky-VirtualBox:~/桌面$ echo a > /dev/ttyS0
lenky@lenky-VirtualBox:~/桌面$