查看所有串口和usb设备方法
(1)查看串口是否可用
可以对串口发送数据,比如对com1口,echo /dev/ttyS0
(2)查看串口名称使用
ls -l /dev/ttyS*
输出信息:
crw-rw----. 1 root dialout 4, 64 5月 17 02:24 /dev/ttyS0
crw-rw----. 1 root dialout 4, 65 5月 17 02:24 /dev/ttyS1
一般情况下串口的名称全部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS*,一般ttyS0对应com1(也即uart0),ttyS1对应com2(也即uart1),
当然也不一定是必然的
(3)查看串口驱动
cat /proc/tty/driver/serial
执行cat输出信息:
serinfo:1.0 driver revision:
0: uart:16550A mmio:0xFF180000 irq:36 tx:0 rx:0
如上发现串口0的uart值时16550A,tx值为0,rx值也为0,因此我们本机有1个串口启用,是串口0(即ttyS0)。
(4)查看串口设备驱动日志
dmesg | grep ttyS*
(5)查一下板子上的串口有没有设备
#grep tty /proc/devices
如果有ttyS设备,再看/dev/有没有ttyS*,如没有就建立一个:mknod /dev/ttyS0 c 4 64
如果板子的设备中没有标准串口设备ttyS0,也没有ttySAC0。/dev下应该有一个USB串口:/dev/ttyUSB0.
当一个串行卡或数据卡被侦测到时,它会被指定成为第一个可用的串行设备。通常是/dev/ttyS1(com1)或/dev/ttyS2(com2),这完成看原已内建的串口数目。
ttyS*设备会被报告在/var/run/stab内。
PC上的串口一般是ttyS,板子上Linux的串口一般叫做ttySAC
(6)通过stty工具指令查看串口的波特率
busybox stty -F /dev/ttyS0 -a //查看串口参数,查看串口0(/dev/ttyS0)当前的参数,包括波特率、数据位等。
busybox stty -F /dev/ttyS0 ispeed 115200 ospeed 115200 cs8 //该命令将串口1(/dev/ttyS0)设置成115200波特率,8位数据模式。
一般情况下设置这两个参数就可以了。
busybox stty -F /dev/ttyS0 speed 115200 cs8 -parenb -cstopb //115200波特率 8数据位 1停止位 无校验位
补充:
(1)如果需要查看这个usb串口设备输出
cat ttyUSB0
(2)如果需要对这个usb串口设备输入
echo aaaaa > ttyUSB0
在写的串口程序不能正常接收发送数据,可能是linux下的串口设备没有打开,需要改变串口设备的权限(chmod 777 /dev/ttyUSB0).
问题:普通串口与调试串口区别???
调试串口用来打印调试信息到console控制台,普通串口用于和其他设备通信.
另外,调试串口(即fiq debugger)就是将普通串口切换成了console(即控制台输出)来处理,需在板级设备树文件将其uart串口关闭.
如RK平台的调试串口(/dev/ttyFIQ0,在device/rockchip/common/BoardConfig.mk中定义androidboot.console=ttyFIQ0)
console实际上在init.rc中被定义为一个service,除了直接在init.rc中start和stop之外,还可以通过一个property来设置它是否启动(on property:ro.debuggable=1).
文章评论