溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Component中SIO怎么用

發(fā)布時(shí)間:2021-12-21 09:42:11 來(lái)源:億速云 閱讀:132 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章主要為大家展示了“Component中SIO怎么用”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Component中SIO怎么用”這篇文章吧。

組件INCLUDE_SIO,Serial IO,串口IO

Component中SIO怎么用

包含了它之后,VxWorks就會(huì)調(diào)用usrSerial.c的usrSerialInit()來(lái)加載串口設(shè)備

Component中SIO怎么用

通常BSP里都會(huì)把N_UART_CHANNELS定義為2,所以VxWorks啟動(dòng)后,就可以看到兩個(gè)串口了

Component中SIO怎么用

 

如果沒(méi)有包含組件INCLUDE_PC_CONSOLE,VxWorks還會(huì)把第CONSOLE_TTY(0)個(gè)串口當(dāng)作系統(tǒng)的標(biāo)準(zhǔn)IO設(shè)備,默認(rèn)波特率是CONSOLE_BAUD_RATE(9600)。這樣的話(huà),printf()的結(jié)果就會(huì)從串口0輸出。不過(guò)在X86的設(shè)備里,通常還是用pcConsole來(lái)做系統(tǒng)的標(biāo)準(zhǔn)IO,printf()的結(jié)果也就是從顯卡輸出了

Component中SIO怎么用

如果Target沒(méi)有網(wǎng)卡或者沒(méi)有網(wǎng)卡驅(qū)動(dòng),在開(kāi)發(fā)過(guò)程中,可以通過(guò)串口連接WDB,也就是用串口來(lái)進(jìn)行調(diào)試。默認(rèn)用的是WDB_TTY_CHANNEL(1),因此Target最好至少有兩個(gè)串口。不過(guò)串口的傳輸速率比網(wǎng)卡慢很多,調(diào)試起來(lái)是很吃力的

Component中SIO怎么用

 

我當(dāng)前的Target是X86的CPU,VxWorks鏡像包含了PC console組件,并使用END連接WDB,因此兩個(gè)串口都是空閑的。

串口是以字節(jié)為單位來(lái)傳輸數(shù)據(jù)的,接下來(lái)看看應(yīng)用層怎么操作它吧。

用串口線(xiàn)把VxWorks的串口0與Host的串口連接起來(lái),Host端打開(kāi)一個(gè)串口工具,例如我Windows端用的PuTTY,串口的配置一般就是用默認(rèn)值:波特率9600,數(shù)據(jù)位8,停止位1,奇偶校驗(yàn)無(wú),流控?zé)o

Component中SIO怎么用

因?yàn)閂xWorks在初始化串口時(shí),一般用的初值也是這樣的

Component中SIO怎么用

直接在Shell里試試吧

Component中SIO怎么用

Host的串口工具里就可以收到字符串hello了

Component中SIO怎么用

還是寫(xiě)段代碼吧: 這段代碼打開(kāi)串口,讀取串口的默認(rèn)配置,然后發(fā)送一段字符

Component中SIO怎么用

執(zhí)行結(jié)果為

Component中SIO怎么用

再跑一個(gè)接收的例子

Component中SIO怎么用

從Host端的串口工具里輸入一些字符,以'q'結(jié)束

Component中SIO怎么用

這個(gè)例子很簡(jiǎn)單,只是把接收到的信息,用printf()打印出來(lái)。在具體項(xiàng)目里就要用更復(fù)雜的操作來(lái)代替printf()了

最后看看串口的ioctl()都支持那些操作,例如可以用SIO_BAUD_SET或FIOBAUDRATE來(lái)設(shè)置波特率

Component中SIO怎么用

如果想要自己擴(kuò)展串口的功能,可以在驅(qū)動(dòng)文件的ioctl函數(shù)添加分支,編號(hào)至少?gòu)?x100a開(kāi)始

這正是:

VX默認(rèn)倆串口(/tyCo/x),可做系統(tǒng)I與O(no PC Console)。

默認(rèn)配置最常用(CS8),更多功能見(jiàn)Control(ioctl)。

以上是“Component中SIO怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI