当前位置: 技术问答>linux和unix
linux系统下的串口问题
来源: 互联网 发布时间:2017-01-08
本文导语: 我的开发板有三个串口。为什么启动后只看到ttyAMA0 ttyAMA1. 没有看到ttyAMA2呢? 还看到一个ttyS000读取了一下发现不是串口。 | 在 /dev 下建立设备,使用mknod 指令或是取得 MAKEDEV 指令稿都可...
我的开发板有三个串口。为什么启动后只看到ttyAMA0 ttyAMA1. 没有看到ttyAMA2呢?
还看到一个ttyS000读取了一下发现不是串口。
还看到一个ttyS000读取了一下发现不是串口。
|
在 /dev 下建立设备,使用mknod 指令或是取得 MAKEDEV 指令稿都可以。
多端口板所用设备是以加上 ``64 + 端口号'' 来建立的,参照ttyS0的端口号。所以,
假定你需要建立 ttyS0 设备:
linux# mknod -m 666 /dev/cua0 c 5 64
linux# mknod -m 666 /dev/ttyS0 c 4 64
如果你想为 ttyS17 建立设备,你
应该输入:
linux# mknod -m 666 /dev/cua17 c 5 81
linux# mknod -m 666 /dev/ttyS17 c 4 81
linux# mknod -m 444 /dev/ttyS17 c 4 81 // 444 因为仅仅需要只读即可
要注意到 ''64 + 17 = 81'' 。使用 MAKEDEV 指令稿的话,你应该输入:
linux# cd /dev
linux# MAKEDEV ttyS17
/dev/cuaN 与 /dev/ttySN 之间真正的差别什麽是?
唯一的差别是该设备开启的方式。接受拨接的 /dev/sttySN 设备是以区块
模式开启的,直到确认 CD 为止(像是某人连线上来)。所以当某人要使用
/dev/cuaN 设备时,与监视 /dev/ttySN 设备的程序不会有冲突。
这个差异是为了允许使用相同串行口拨出与接受拨接而安排的。
多端口板所用设备是以加上 ``64 + 端口号'' 来建立的,参照ttyS0的端口号。所以,
假定你需要建立 ttyS0 设备:
linux# mknod -m 666 /dev/cua0 c 5 64
linux# mknod -m 666 /dev/ttyS0 c 4 64
如果你想为 ttyS17 建立设备,你
应该输入:
linux# mknod -m 666 /dev/cua17 c 5 81
linux# mknod -m 666 /dev/ttyS17 c 4 81
linux# mknod -m 444 /dev/ttyS17 c 4 81 // 444 因为仅仅需要只读即可
要注意到 ''64 + 17 = 81'' 。使用 MAKEDEV 指令稿的话,你应该输入:
linux# cd /dev
linux# MAKEDEV ttyS17
/dev/cuaN 与 /dev/ttySN 之间真正的差别什麽是?
唯一的差别是该设备开启的方式。接受拨接的 /dev/sttySN 设备是以区块
模式开启的,直到确认 CD 为止(像是某人连线上来)。所以当某人要使用
/dev/cuaN 设备时,与监视 /dev/ttySN 设备的程序不会有冲突。
这个差异是为了允许使用相同串行口拨出与接受拨接而安排的。
|
如果没有使用UDEV文件系统好像要自己给串口3建立文件节点,还有在驱动中看看有没有限制串口三启动,应该是个IF判断语句。
|
对。一般开发板确实是有3个串口。但是其中有一个串口是用引脚接出来了的。
|
不是串口没有启动,只是串口启动模块没有加载而已。
|
lz,/dev 目录下查看到得是已经加载的模块,处于活动,串口二,没有加载,如果你编译成模块,用insmod file。name。ko 在查看/deb就可以看到了
|
顶楼上,学习路过。。