ARM的USB连机通讯
2016-12-13
一、实验目的
学习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 下载到嵌入式开发板中,运行并检查输出结果