系統(tǒng)源碼泄密uart driver用戶操作手冊_第1頁
系統(tǒng)源碼泄密uart driver用戶操作手冊_第2頁
系統(tǒng)源碼泄密uart driver用戶操作手冊_第3頁
系統(tǒng)源碼泄密uart driver用戶操作手冊_第4頁
系統(tǒng)源碼泄密uart driver用戶操作手冊_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

開發(fā)者 北陽os開發(fā)擬制者1.0.0發(fā) TheinformationcontainedhereinistheexclusivepropertyofSUNNORTHELECTRONICTECHNOLOGY.Andshallnotbedistributed,reproduced,ordisclosedinwholeinpartwithoutpriorwrittenpermissionSUNNORTHELECTRONICTECHNOLOGYCO.,日/月/修訂記 用戶操作手 背 定 通 參考資 限制條 CPU--u’nSPCPU執(zhí)行速度得到了大幅度的提高,另一方面提供了更為豐富的硬件。這樣使得開發(fā)者編程難度加大,想要完成的功能,則必須完成很多硬件操作。于是公司決定開發(fā)配套的OS以最大程度的減少開發(fā)者的工作量。UARTAPIMiniOS內(nèi)核。U’nSP的開發(fā)編寫目的是指導(dǎo)開發(fā)者正確的使用UARTAPI,預(yù)期的讀者是U’nSP的開發(fā)者以及相關(guān)的人員。:0x1a后返回或超時。而當(dāng)以二進(jìn)制模式接收數(shù)據(jù)時,DrvUARTRecvData是在收到recvlength個bytes(8位)時或超時或出錯返回。的單位是16bits,我們現(xiàn)在要"sunnorthhaveagoodtommorrow"30個字符,若以壓縮方個字的空間,若以非壓縮方式,則可以在第i個字的低8位第i個字符,所以這為0,1,2,. 同樣當(dāng)接收數(shù)據(jù)時是以壓縮方式時,依次把接收到的數(shù)據(jù)到第i個字的低再接收一個字節(jié),到下一個字的低8位,然后返回去。UART模塊有雙向通信能力,我們把向外發(fā)送數(shù)據(jù)這部分硬件稱為發(fā)送通道,從外部SPL161001AProgrammingGuide061單片機(jī)原理與技術(shù)函數(shù),這是因?yàn)橄到y(tǒng)用兩個變量保存打開接收通道與發(fā)送通道的線程的優(yōu)先級,以及兩個變量執(zhí)行成功DrvUARTSetting函數(shù)調(diào)用的線程號,當(dāng)關(guān)閉接收通道(發(fā)送通道)時要檢查當(dāng)前線程是不是打開接收通道(發(fā)送通道),如果中打開通道與關(guān)閉通道之間改變了優(yōu)先級就會造成不一致DrvUARTUnSettingDrvUARTSetting的線程號相同,如果在DrvUARTSetting和DrvUARTUnSetting之間調(diào)用了SysChangePri函數(shù),就如果要用數(shù)組名作為DrvUARdData和DrvUARTRecvData的第一個參數(shù),用戶必須保證所用的緩沖區(qū)在64K以下,不包括64*1024地址,但緩沖區(qū)可以64K運(yùn)行環(huán)境列出為運(yùn)行本軟件所要求的硬設(shè)備的最小配置操作系統(tǒng)MiniOSu’nSP16001平臺原型 intDrvUARTInit()功能: 登記uart中斷服務(wù)程序和分配信號量參數(shù): 返回值: 成功初始FALSE注意:失敗原因系統(tǒng)配置可安裝的中斷服務(wù)程序數(shù)量太少,以及可分配的信號量太少;intDrvUARTSetting(unsignedintbaudrate,unsignedintparity,unsignedintstopbit,unsignedintwordlength)啟動UART硬件模塊UARTUART串口中接收發(fā)送數(shù)據(jù)的能力baudrate串口工作的波特率 可選的值有:C_UART_BAUDRATE_110C_UART_BAUDRATE_1200C_UART_BAUDRATE_2400C_UART_BAUDRATE_9600C_UART_BAUDRATE_14400C_UART_BAUDRATE_19200C_UART_BAUDRATE_38400C_UART_BAUDRATE_57600C_UART_BAUDRATE_76800C_UART_BAUDRATE_115200parity校驗(yàn)方式C_UART_PARITY_DIS無校驗(yàn)C_UART_PARITY_ODD奇校驗(yàn)C_UART_PARITY_EVEN偶校驗(yàn)stobbit停止位長度C_UART_STOPBIT_11bitC_UART_STOPBIT_2停止位的長度為2bitswordlength每次發(fā)送的字長C_UART_WORDLEN_55bitsC_UART_WORDLEN_66bitsC_UART_WORDLEN_77bitsC_UART_WORDLEN_88bi成功 失敗 注意原型 功能: 參數(shù): C_UART_BAUDRATE_2400C_UART_BAUDRATE_9600C_UART_BAUDRATE_76800C_UART_BAUDRATE_115200返回值注意

功能打開接收和或參數(shù)要打開通道的方向可選值有C_UART_DIR_ALL打開接收和發(fā)送通道返回值 FALSE打開失敗DrvUARTSetting成功時,并且要打開的通道還沒有被別的線程打開調(diào)用DrvUARTOpen才可能成功如果用戶打開發(fā)送接收通道那么他只能發(fā)送接收原型intDrvUARTSetRecvModeunsignedint功能設(shè)置接收數(shù)據(jù)接收模式,二進(jìn)制模式或文本模式只有打開接收通道的線程調(diào)用該參數(shù)新的接收模式可選的值有:C_UART_RECV_BINARY接收二進(jìn)制數(shù)據(jù)返回 FALSE設(shè)置波特率失敗原型UnsighedintDrvUARTRecvData(unsignedl pbuffer,unsignedintpackedunsignedintrecvlength,unsignedinttimeot功能pBuffer接收到的數(shù)據(jù)的目標(biāo)地

unsignedint*perrpacked接收到的數(shù)據(jù)是否壓縮方式,可選的值有C_UART_STORE_PACK接收到的數(shù)據(jù)是以壓縮方式Recvl字節(jié)數(shù)目,timeouttick1128秒timeout非零時recvlength個bytes(方式取決于packed參數(shù)),就超時返回若文本模式,如果在回,文本模式時直到把recvlength填滿或遇到0x1a字節(jié)時才返回。 UART_RECEDATA_NO_ERR若二進(jìn)制模式正確地接收了recvlength個字節(jié),若文本模式,或者填滿了recvlength個字單元,或者提前遇到了0x1aC_UART_RECVDATA_PARITY發(fā)生了奇偶校驗(yàn)錯誤C_UART_RECVDATA_OVERRUN發(fā)生了溢出錯誤C_UART_RECVDATA_BREAKbreak錯誤C_UART_RECVDATA_FRAME發(fā)生了幀錯誤C_UART_RECVDATA_TIMEOUT發(fā)生了超時錯誤C_UART_RECVDATA_ILLEGAL參數(shù)返回值注意

當(dāng)發(fā)生錯誤的時候函數(shù)就返回,并且把發(fā)生錯誤時收到的字節(jié)也到緩沖區(qū)中也就是最后一個字節(jié).若發(fā)生C_UART_RECVDATA_PARITY,C_UART_RECVDATA_BREAKC_UART_RECVDATA_FRAME錯誤有可能是因?yàn)榻邮芊脚c發(fā)送方參數(shù)設(shè)置不一致若發(fā)生C_UART_RECVDATA_OVERRUN錯誤可能是因?yàn)榻邮仗?發(fā)送太急.建議用接收到的字節(jié)數(shù)目。若發(fā)生奇偶校驗(yàn)錯,幀錯誤,overrun錯誤,Break錯誤,緩沖區(qū)的最后一個字節(jié)為發(fā)生錯誤時接收的字節(jié).接收計(jì)數(shù)也包括這個字節(jié)原型 intDrvUARTFlushBuf(void功能執(zhí)行完該函數(shù)后,用戶再接收到的數(shù)據(jù)是此后從串口線收到的"新"數(shù)據(jù)。參數(shù): :注意

原型intDrvUARdData(unsignedlongpbuffer,unsignedintpacked,unsignedintsendlength)功能指向要發(fā)送數(shù)據(jù)的地址C_UART_STORE_PACK接收到的數(shù)據(jù)是以壓縮方式C_UART_STORE_UNPACK接收到的數(shù)據(jù)是以非壓縮方式Sendl低8位返回值0<0原型intDrvUARTGetState(unsignedintstatequery功能參數(shù): C_UART_GETSTATE_INITSUCCESS初始化函數(shù)執(zhí)行成功否C_UART_GETSTATE_RXENABLE接收通道已打開 返回值

非零,uart零依查詢的目的而定,線程調(diào)用DrvUARTSetti原型功能返回值TRUEFALSE原型功能返回值i DrvUARTUnSetting()功能參數(shù)返回值intDrvUARTClose()功能執(zhí)行串口發(fā)通道和或參數(shù)C_UART_DIR_RX關(guān)閉接收通道C_UART_DIR_TX關(guān)閉發(fā)送通道C_UART_DIR_ALL關(guān)閉接收和發(fā)送通道返回值: 成功關(guān)閉指定的通FALSE所要關(guān)閉的通道并不是由調(diào)用該函數(shù)的線程打開注意: 函數(shù)之前執(zhí)行,建議用戶在main()函數(shù)定義完變量后先后執(zhí)行SysInit()DrvUARTInit();在使用該驅(qū)動函數(shù)的文件里依次包含三個頭文件和spos.h,sposerror.hDrvUART.h(在這里我們定義幾個模板,供用戶參考.以下三部分代碼分別對應(yīng)于發(fā)送數(shù)據(jù),接收數(shù)據(jù),既,intUART_STOPBIT_1,C_UART_WORDLEN_8);gotoif(DrvUART_ret!=TRUE)goto dData發(fā)送數(shù)據(jù)DrvUARTSetBaudRate設(shè)置新的波特率 用戶發(fā)送數(shù)據(jù)失敗處理intif(DrvUART_ret!=TRUE)gotoL_FAILif(DrvUART_ret!=TRUE)gotoDrvUARTRecvData接收數(shù)據(jù)DrvUART

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論