- 1、本文档共107页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
系統的消息函數voidinitOSMessage();POSMSGOSCreateMessage(U32Message,U32wparam,U32lparam);U8SendMessage(POSMSGpmsg);POSMSGWaitMessage(INT16Utimeout);voidDeleteMessage(POSMSGpMsg);消息結構typedefstruct{ U32Message; U32WParam; U32LParam;}OSMSG,*POSMSG;其中,Message成員說明了系統的消息類型。WParam和LParam是系統消息傳遞的相應的參數。對於不同的消息有不同的意義。系統的消息迴圈在系統的主任務中可以使用如下的代碼來實現消息迴圈: POSMSGpMsg=0; //消息迴圈 for(;;){ pMsg=WaitMessage(0);//等待消息 switch(pMsg-Message){ caseXXX: //需要處理的消息 ……//消息處理過程 break; } DeleteMessage(pMsg);//刪除消息,釋放資源 }本節提要132546基於?COS-II擴展RTOS圖形用戶介面設計外設及驅動檔系統的設計系統的消息嵌入式GUI簡介外設及驅動程式外設驅動程式可以對系統提供訪問週邊設備的介面,把操作系統(軟體)和週邊設備(硬體)分離開來。當週邊設備改變的時候,只需更換相應的驅動程式,不必修改操作系統的內核以及運行在操作系統中的軟體。本小節中,將建立幾種典型外設的驅動程式標準介面。串行口 串行口符合RS-232標準,通訊的最高速度可以達到115200bps。串行口的介面函數如下:voidUart_Init(intUartnum,intmclk,intbaud);voidUart_Printf(char*fmt,...);charUart_Getch(char*Revdata,intUartnum,inttimeout);voidUart_SendByte(intUartnum,intdata);液晶顯示驅動程式液晶屏是內部有控制電路的液晶模組解析度320x240使用雙緩衝機制顯示緩衝區在系統的記憶體裏開闢了一塊記憶體作為液晶屏顯示的後臺緩衝區LCDBuffer,其定義如下:U32LCDBuffer[LCDHEIGHT][LCDWIDTH];其中,LCDBuffer為按雙字映射存儲的緩衝區(即:每四個位元組表示一個點),寫入的時候調用液晶屏的voidLCD_Refresh()函數,就可以把緩衝區的內容顯示在液晶屏上。因為緩衝區是按雙字存儲的,所以LCDBuffer[y][x]對應的就是螢幕點(x,y)的像素值,每一個點用一個32位的整數表示,可以滿足實現32位真彩色圖片的顯示,保證不同的液晶屏的相容性。不同的液晶屏只需要更新LCD320.c和LCD320.h檔中的驅動程式即可液晶模組的控制液晶模組有兩種工作模式:圖形方式:在圖形方式下,模組上的緩衝區映射的是液晶屏上顯示的圖形點陣文本方式:在文本模式下,模組上的緩衝區對應的是液晶屏上顯示的文本字元,包括:英文字元和英文標點符號。液晶屏的操作主要包括:初始化、設置液晶屏的工作模式(文本或者圖形)、更新顯示、開啟(或者關閉)背光。液晶驅動程式介面voidLCD_Init(void);voidLCD_printf(char*fmt,...);voidLCD_ChangeMode(U8mode);voidLCD_Refresh();voidLCDBkLight(U8isOpen);鍵盤驅動程式本控制器使用的是4x4的鍵盤(16鍵),在S3C44B0X的GPD端口上由程式掃描控制,無需週邊晶片在操作系統中,鍵盤掃描是通過uCOS-II的專門的一個任務來控制的支持系統的組合按鍵(相當於Ctrl、Shift等),最多可以支持16鍵中所有的功能按鍵同時組合鍵盤驅動介面U32GetKey();低16位為鍵盤號碼,高16位對應功能鍵掃描碼(1有效)。此函數為死鎖函數,調用以後,除非有按鍵按下,否則,函數不會返回。voidSetFunctionKey(U16Fnkey);設定功能鍵掃描碼,1有效。可以提供組合按鍵。功能鍵不能單獨返回。U32GetNoTaskKey();類似於GetKey(),但是,此函數不會釋放此任務的控制權,除非有更高級的任務運行。鍵盤消息
文档评论(0)