簡單說幾句吧,linux下的設(shè)備都是文件,流程也無非是open, read/write, close等
創(chuàng)新互聯(lián)公司是一家專業(yè)的成都網(wǎng)站建設(shè)公司,我們專注成都做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷、企業(yè)網(wǎng)站建設(shè),賣友情鏈接,1元廣告為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設(shè)計到用戶體驗提高,創(chuàng)新互聯(lián)力求做到盡善盡美。
當(dāng)然,串口你得設(shè)置各種屬性才行對不對,比如在win下的超級終端就設(shè)置了波特率啊,停止位啊,奇偶校驗啊什么的,這些屬性都通過
int tcgetattr(int fd, struct termios *termios_p);
int tcsetattr(int fd, int optional_actions, const struct termios *termios_p);函數(shù)來設(shè)置。
完整代碼嗎自己去google,一把一把的,其實最重要的是設(shè)置好屬性,剩下的就是read,write的問題咯。
希望對你有用
對了,了解終端函數(shù)的詳情請在linux命令行終端獲取: man termios
ARM+linux 其實還是在linux上面對串口進(jìn)行操作。
在linux中一切皆文件,所以對串口的操作就變成對文件的操作了。
串口在linux下的設(shè)備文件是tty或者是相關(guān)的名字,具體需要查閱相關(guān)手冊
然后下面對串口的操作就是對tty這個文件操作了。
打開文件 fd = open("/dev/tty",讀寫權(quán)限);
配置串口參數(shù),波特,奇偶校驗,停止位。(串口參數(shù)配置一定要與目標(biāo)串口一致)
這里就可以對串口文件進(jìn)行讀寫了。對文件的讀寫就是對串口的讀寫了
是的,linux是linus
tovalds當(dāng)時為了研究一個多用戶多任務(wù)操作系統(tǒng),用c代碼編寫了一個很小的操作系統(tǒng)內(nèi)核,他把這個源碼公布,大家都來修改它和發(fā)展它,最終發(fā)展成現(xiàn)在的linux操作系統(tǒng).
如果有,則不需要再裝驅(qū)動。另外如果有的話最好再用dmesg | grep usb查找如果看到: “drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic” 就說明設(shè)備已被識別,然后往下看 drivers/usb/serial/usb-serial.c: USB Serial support registered for PL-2303 usb 2-2: PL-2303 converter now attached to ttyUSB0 (or usb/tts/0 for devfs)如果沒有則需要驅(qū)動程序,一般硬件廠商都會提供,如果真的沒有的話就只有到網(wǎng)上下載了,一般2.6內(nèi)核以上的都支持。 安裝完畢后再輸入這個命令瞧瞧,是否安裝成功。說明我的usb轉(zhuǎn)串口芯片是PL-2303,對應(yīng)系統(tǒng)設(shè)備是 dev/usb/ttUSB0,最后只需在minicom配置文件里將端口改成/dev/usb/ttyUSB0就可以使用了:) 3、檢測步驟,檢測步驟如下,只是需要主意的是設(shè)置串口設(shè)備的時候可能不是ttyS2了,有可能是ttyUSB0或者ttyUSB1等之類的,我這里就是ttyUSB0(我用的是Fedora Core 8)。 因此,最好請您先看一下/dev下面的文件。 USB轉(zhuǎn)串口安裝 型號PL2303h 1、插入USB轉(zhuǎn)串口到主機(jī), 2、啟動 Linux,打開終端,檢查是否存在設(shè)備/dev/ttyUSB0,如果沒有就建立一個: mknod /dev/ttyUSB0 c 188 0 如果有多個USB口,可以類推,建立/dev/ttyUSB[1-n],注意從設(shè)備號要累加, 如:mknod /dev/ttyUSB[1-n] c 188 [1-n] 3、輸入命令:#setserial /dev/ttyS0 -aP (COM-1) 顯示內(nèi)容:/dev/ttyS0, Line 0, UART: 16550A, Port: 0x3f8, irq: 4 Baud_base: 115200, clos_delay: 50, divisor: 0 closing_wait: 3000, closing_wait2: infinite Flags: spd_normal skip_test 4、輸入命令:#setserial /dev/ttyS2 -a (COM-3) 顯示內(nèi)容:/dev/ttyS2, Line 2, UART: unknown, Port: 0x3e8, irq: 4 Baud_base: 115200, clos_delay: 50, divisor: 0 closing_wait: 3000, closing_wait2: infinite Flags: spd_normal skip_test 第3、4步操作的目的主要是對主機(jī)自帶串口及PCI擴(kuò)展串口的區(qū)別。區(qū)別在于4顯示的內(nèi)容中UART:未知unknow。不過若您檢測這一步的時候 UART為16550A而不是unknow,證明你的系統(tǒng)已經(jīng)認(rèn)識了擴(kuò)展的串口,不需要進(jìn)一步設(shè)置,直接跳入第8步測試就可以了。 5、設(shè)置好了后是不是需要測試一下是否能夠通訊呢?最好的辦法是兩臺pc相連。如果pc為windows操作系統(tǒng)就用超級終端,是linux呢就用minicom吧 6、裝有l(wèi)inux的機(jī)器,首先需要設(shè)置一下監(jiān)聽的串口參數(shù),輸入命令 #minicom -s 進(jìn)入界面后有個框彈出來,如果你學(xué)過英文的話,就會知道選擇哪個的。應(yīng)該是第三個吧,串口參數(shù)設(shè)置。