㈠ linux 用open打不開串口
操作硬體之前都是要先open設備,先來分析下這里的open函數具體做了那些工作(做了大量工作 ,真的!)。
應用層通過open系統調用open(「/dev/s3c2410_serial0」,)一層一層調用到會調用到tty_open。
因為串口在linux下是作為tty設備的,結合前面的注冊過程可以分析這里首先調用的就是tty_open這個函數。
cdev_init(&driver->cdev, &tty_fops);cdev_init(&driver->cdev, &tty_fops);因為根據注冊的時候將s3c2410_serial0注冊為一個字元設備,字元設備對應的驅動為tty_fops 詳細介紹查看下《linux就該這么學》
㈡ linux系統驅動不起來串口3到6
兩者的串口都是不一樣的,所以的話它的系統驅動也是不一樣,這就是它們之間的區別。
㈢ linux系統安裝綠聯串口驅動怎麼安裝
1、在控制台輸入lsmod,先看看能否檢測到這個設備,就看有沒有pl2303字眼可以了。如果有,則不需要再裝驅動。
2、另外如果有的話最好再用dmesg|grepusb查找如果看到:drivers/usb/serial/usb-serial.c:。就說明設備已被識別,然後往下看rivers/usb/serial/usb-serial.c:-2303,usb2-2:PL-(orusb/tts/0fordevfs)如果沒有則需要驅動程序,一般硬體廠商都會提供,如果真的沒有的話就只有到網上下載了,一般2.6內核以上的都支持。
3、安裝完畢後再輸入這個命令瞧瞧,是否安裝成功。lsmod|grepusbserial。如果有usbserial,說明系統支持USB轉串口。
4、驅動安裝完畢後,就需要安裝串口軟體,這里推薦cutecom和puttycutecom安裝sudoapt-getinstallcutecom。putty安裝sudoaptinstallputty或sudopacman-Sputty
5、然後啟動cutecom命令sudocutecom,之後你就可以看到哪些串口正在連接狀態。
6、當開發板啟動後,我們需要傳入elf或bin文件,此時需要用到tftp,在控制台輸入:sudoapt-getinstallxinetd,sudoapt-getinstalltftptftpd並等待安裝完成後,輸入:sudovi/etc/xinetd.d/tftp輸入i,進入插入模式,隨後按esc輸入wq。保存。
7、第一次啟動時和每次更換目錄時都要執行sudo/etc/init.d/xinetdrestart,不然會找不到文件。
8、喜歡用putty的可以在控制台輸入sudoputty運行程序。
㈣ 如何在linux上使用串口設備
簡單的運行 dmesg 命令
$ dmesg | grep tty
輸出:
[ 37.531286] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 37.531841] 00:0b: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 37.532138] 0000:04:00.3: ttyS1 at I/O 0x1020 (irq = 18) is a 16550A
setserial 命令
setserial 是一個程序用於設定並/或報告某個串口關聯的配置信息。該信息包括串口用到的I/O 埠和中斷號,以及Break鍵是否應被解釋為Secure Attention Key 等等。 僅僅是輸出如下的命令:
$ setserial -g /dev/ttyS[0123]
輸出:
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x1020, IRQ: 18
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
帶-g選項的setserial幫助找到你的Linux板子上的物理串口。
Linux 串口控制台程序
一旦串口被確定了,你就能使用許多的工具來配置Linux板子:
minicom- 用於控制modem和連接到mp 設備的最好的串口通信程序。
wvidial or other GUI dial up networking program - 一個內建智能PPP 撥號器。
getty / agetty - agetty 打開一個 tty 埠, 提示登錄名稱並調用 /bin/login 命令。
grub / lilo configuration - 配置串口為系統控制台。
㈤ Linux串口相關的操作及綁定
@ toc
可在控制台輸入
也可以用stty設置串口參數
使用後相當於串口回傳,發什麼回什麼
發送數據
可以對串口發送數據比如對com1口
一般情況下串口的名稱全部在dev下面,如果你沒有外插串口卡的話默認是dev下的ttyS* ,一般ttyS0對應com1,ttyS1對應com2,當然也不一定是必然的;
如果有ttyS設備,再看/dev/有沒有ttyS*,如沒有就建立一個:
如果板子的設備中沒有標准串口設備ttyS0,也沒有ttySAC0。/dev下應該有一個USB串口:/dev/ttyUSB0.
當一個串列卡或數據卡被偵測到時,它會被指定成為第一個可用的串列設備。通常是/dev/ttyS1(cua1)或/dev/ttyS2(cua2),這完成看原已內建的串口數目。ttyS*設備會被報告在/var/run/stab內。
PC上的串口一般是ttyS,板子上Linux的串口一般叫做ttySAC
可能是linux下的串口設備沒有打開,需要改變串口設備
的許可權,或者根據文章頭添加用戶到組處理
可以通過以下命令 查看 板子上的硬體埠的內核設備名
該條命令會將 ttyUSB0所對應的硬體埠的kernel設備名 顯現出來, 得到KERNEL== '1-5.5.4', 而不是之前的ttyUSB0
cmd.sh如下:
./getUSB.py 調用當前路徑下的getUSB.py這個python語言,明確此次是哪個,ttyUSB0,或者ttyUSB1掛載在埠3-1.1上
getUSB.py:
完成之後 ,設置開機啟動cmd.sh(在/etc/rc.local中設置)則每次開機之後,會從/dev/ttydata獲取到固定埠的數據
方式一
寫入內容如下:
方式二
我的硬體序列號:ATTRS{serial}=="FTSYWCXZ"這個號是唯一的
可以通過/dev/usb_0打開串口設備
常用的匹配類型:
㈥ Linux普通用戶運行串口
將USB串口設備插入USB口後,會在/dev/目錄下生成/dev/ttyUSB0文件(也可能為/dev/ttyUSB1,/dev/ttyUSB2...),
查看此文件
輸出為:
c說明表明設備為字元設備文件(d表示目族掘錄文件,-表示普通文件,l表示鏈接文件,b表示塊文件),
其中rw-rw----表示root用戶作為文件所有者可以讀和寫,dialout用戶組內的用戶可以讀和搜穗兆寫,其他用戶不允許讀、寫和執行(r表示可讀,w表示可寫世租,x表示可執行)
因此,需要將當前用戶增加到dialout用戶組中
㈦ linux中python怎麼打開串口
一個Python實現的串口Echo
import serial
import sys
try:
ser = serial.Serial('/dev/ttyUSB0', 9600)
except Exception, e:
print 'open serial failed.'
exit(1)
print 'A Serial Echo Is Running...'
while True:
# echo
s = ser.read()
ser.write(s)
# write to stdout and flush it
sys.stdout.write(s)
sys.stdout.flush()