一、實驗目的
學習USB 相關函數的使用,編寫一段程序按指定的鍵盤按鍵可以實現連接,斷開USB。
學會利用操作系統的繪圖API 函數顯示一個真彩色的位圖圖片。
二、實驗內容
編寫一段程序按指定的鍵盤按鍵可以實現連接,斷開USB,并在屏幕上顯示相關的信
息。連接USB 的時候,可以從PC 機通過USB 斷口下載程序到嵌入式開發板中,也可從嵌
入式開發板上傳文件至PC 機。
三、預備知識
1、用ARM SDT 2.5 集成開發環境,編寫和調試程序的基本過程。
2、基于操作系統的應用程序的框架結構。
3、會使用Source Insight 3 編輯C 語言源程序
4、操作系統的繪圖API 函數和繪圖設備上下文(DC)的使用
5、會使用消息循環響應鍵盤消息
四、實驗設備及工具(包括軟件調試工具)
硬件:ARM 嵌入式開發板、用于ARM7TDMI 的JTAG 仿真器、PC 機Pentumn100 以上軟件:PC 機操作系統win98、ARM SDT 2.51 集成開發環境、仿真器驅動程序、SourceInsight 3.0、超級終端通訊程序、USB 下載程序
五、實驗步驟
1、在ARM SDT 2.51 中,使用實驗一中創建好的模板,新建一個項目work1。把操作
系統的所需要的頭文件(*.h)和庫文件(*.alf)加入工程中。
2、用Source Insight 3 創建一個工程,把work1 中的C 語言源文件文件加入。
3、打開Main.c 文件,在Main_Task 任務中加入代碼,使系統啟動以后,顯示提示按鍵
連接USB 的文字。
4、添加鍵盤消息響應函數,當按下按鍵時,進入USB 連接狀態,這時暫停所有的任務,自己編寫鍵盤掃描程序,等待按取消鍵退出USB 連接狀態。進入USB 連接的時候,要顯示一個真彩色的位圖圖片作為提示信息。退出連接的時候,取消顯示圖片,恢復顯示提示按鍵連接USB 的文字。
提示:
⑴ 調用EnterUsbConnect 函數進入USB 的連接狀態,這時函數將自動暫停任務調度。所以,在調用EnterUsbConnect 之前要先刷新液晶屏的顯示,更改屏幕的提示信息。繪圖完成以后要使用OSTimeDly,以便更新顯示。
⑵ 使用ShowBmp 函數可以顯示指定文件名的真彩色的位圖圖片
⑶ 因為調用EnterUsbConnect 函數以后系統已經進入非多任務狀態,與多任務相關的函數(比如:OSTimeDly)就不能使用,否則將導致系統死鎖。
⑷ 等待鍵盤掃描也應該調用它的非多任務版本GetNoTaskKey()。如果有按鍵按下,此函數立即返回,否則,系統無限等待。
⑸ 使用ExitUsbConnect 函數退出USB 連接狀態,系統的多任務將自動恢復。
5、用ARM SDT 2.5 編譯、下載并調試上述程序,檢查運行結果
6、生成發行版本的.bin 文件,通過USB 下載到嵌入式開發板中,運行并檢查輸出結果