收藏 分享(赏)

嵌入式实验报告.doc

上传人:weiwoduzun 文档编号:2778877 上传时间:2018-09-27 格式:DOC 页数:19 大小:1MB
下载 相关 举报
嵌入式实验报告.doc_第1页
第1页 / 共19页
嵌入式实验报告.doc_第2页
第2页 / 共19页
嵌入式实验报告.doc_第3页
第3页 / 共19页
嵌入式实验报告.doc_第4页
第4页 / 共19页
嵌入式实验报告.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、嵌入式系统实验报告姓 名: 学 号: 班 级:指导老师: 专业:实验一 熟悉实验开发环境一、实验目的熟悉ADS1.2 开发环境,学会ARM 仿真器的使用。使用ADS 编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。二、实验内容本次实验使用ADS 集成开发环境。新建一个简单的工程文件,并编译这个工程文件。学习ARM 仿真器的使用和开发环境的设置。下载已经编译好的文件到嵌入式控制器中运行。学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。三、预备知识C 语言的基础知识、程序调试的基础知识和方法。四、实验设备及工具(包括软件调试工具)硬件:ARM 嵌入式开发平台

2、、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以上、串口线。软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。五、实验步骤1)建立工程(1)运行ADS1.2 集成开发环境(CodeWarrior for ARM Developer Suite )。选择FileNew菜单,在对话框中选择Project ,如图1B-1 所示,新建一个工程文件。图中示例的工程名为Exp6.mcp。点set按钮可为该工程选择路径如图1B-2 所示,选中CreatFolder 选项后将以图

3、1B-1 中的 ProjectName 或图1B-2 中的文件名为名创建目录,这样可以将所有与该工程相关的文件放到该工程目录下,便于管理工程。设置完成后,可以将该新建的空工程文件作为模板保存以便以后使用。将工程文件名改为44B0 ARM Executable.mcp。然后在ADS1.2 软件安装目录下的Stationery 目录下新建名为44B0 ARM Executable Image 的模板目录,再将刚设置完的44B0 ARM Executable.mcp工程模板文件存放到该目录下即可。这样以后新建工程的时候就能看到以44B0 ARM Executable Image 为名字的模板了。新建

4、工程后,可以执行菜单Project | Add Files 把和工程相关的所有文件包括init和startup 子目录加入到工程中。ADS1.2 不能自动按文件类别对这些文件进行分类,需要的话用户可以执行菜单Project | Create Group 创建文件组,然后分别将不同类的文件加入到不同的组,以方便管理。如图1B-12 所示。更为简单的办法是,在新建工程时ADS 创建了和工程同名的目录,在该目录下按类别创建子目录并存放工程文件。选中所有目录拖动到任务栏上的ADS 任务条上,不要松开鼠标当ADS 窗口恢复后再拖动到工程文件窗口,松开鼠标。这样ADS 将以子目录名建立同名文件组并以此对文

5、件分类。双击Main.c 打开该文件,可以看到Main()函数的内容,可以发现 ADS 的文本编辑器已经有了很大的改善,文本按语法分颜色显示,读者可以根据喜好在Edit 菜单下的Preferences 窗口中进行设置。并可以很好的支持中文注释。2) 进行程序的在线仿真、调试(1)回到工程窗口选中Debug 版本,执行菜单Project | Make 对工程进行编译连接。在出现的错误/警告窗口中选择某错误/警告信息,ADS 会自动打开相应源文件并用箭头指向出错的文本行。如果某个源文件被修改,重新编译时ADS 会自动同步各文件的日期信息。(2)在ADS 中执行菜单 Project | Debug

6、启动ADS1.2 的调试工具AXD。(5)等待程序装载完毕以后,通过Execute | Go 菜单以及Execute | Stop(或者工具栏中的相应按钮)运行或暂停程序。程序暂停后在窗口中将显示出程序暂停的位置。(6)通过Execute | Step 菜单(或者工具栏中的相应按钮)可以单步运行程序。也可以使用Step In、Step Out 菜单命令进入或者跳出函数的调用。Run To Cursor 命令运行到光标位置。(7)程序停止后可以通过Processor Views | Sources 菜单查看源文件,并可在适当位置按F9 设置端点。(8)使用在Processor View 菜单下的

7、Registers、Variables 和Memory 命令可以查看工作寄存器或者内存变量。读者可以逐一地尝试,为以后调试程序打下基础。实验一 C:超级终端设置及BIOS 功能使用1、运行Windows 系统下的超级终端( HyperTerminal)应用程序,新建一个通信终端。如果要求输入区号、电话号码等信息请随意输入,出现如图1C-1 所示对话框时,为所建超级终端取名为arm,可以为其选一个图标。单击“确定”按钮。3、完成新建超级终端的设置以后,可以选择超级终端文件菜单中的保存,将当前设置保存为一个特定超级终端到桌面上,以备后用。用串口线将PC 机串口和平台UART0 正确连接后,就可以在

8、超级终端上看到程序输出的信息了,比如本实验的“Hello world!”。4、启动开发板,按住开发板上键盘的任意按键,使开发板进入BIOS 设置状态。5、该画面上提示了该BIOS 的版本等信息。Shell Menu 是平台的检测菜单,每个条目的最左边字母是该功能的快捷键,按PC 机键盘相应键将执行对应功能。注意操作时保持超级终端处于激活状态,并且PC 机键盘必须为小写。7、按PC 键盘的u 键(要使超级终端处于活动状态),这时超级终端上会显示所示的信息8、这时,在“我的电脑”中可以发现多了一个“可移动磁盘”,这就是开发板的海量存储器16M 非线性Flash。开发板就像一个U 盘,可以通过 “我

9、的电脑”进行操作。把上两节内容中生成的 system.bin 文件通过USB 下载到嵌入式开发板中,复位系统,运行并检查输出结果。实验二 ARM 串口实验一、实验目的掌握ARM 的串行口工作原理。学习编程实现 ARM 的UART 通讯。掌握 CPU 利用串口通讯的方法。二、实验内容学习串行通讯原理,了解串行通讯控制器,阅读ARM 芯片文档,掌握ARM 的UART相关寄存器的功能,熟悉ARM 系统硬件的UART 相关接口。编程实现ARM 和计算机实现串行通讯:ARM 监视串行口,将接收到的字符再发送给串口(计算机与开发板是通过超级终端通讯的),即按PC 键盘通过超级终端发送数据,开发板将接收到的

10、数据再返送给PC,在超级终端上显示。三、预备知识1、用ARM SDT 2.5 或ADS1.2 集成开发环境,编写和调试程序的基本过程。2、ARM 应用程序的框架结构。3、了解串行总线四、实验设备及工具硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以上、串口线。软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。五、实验原理及说明1异步串行IO异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位) 地传送。数据的各不同位可以分时

11、使用同一传输通道,因此串行IO 可以减少信号连线,最少用一对线即可进行。接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字符。为了恢复发送的信息,双方必须协调工作。在微型计算机中大量使用异步串行IO 方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差,因此实现较容易。但是由于每个字符都要独立确定起始和结束(即每个字符都要重新同步) ,字符和字符间还可能有长度不定的空闲时间,因此效率较低。给出异步串行通信中一个字符的传送格式。开始前,线路处于空闲状态,送出连续“1”。传送开始时首先发一个“”作为起始位,然后出现在通信线上的是字符的二进制编码数据。每个字符的数据位长可以约定为

12、5 位、6 位、7 位或8 位,一般采用ASCII 编码。后面是奇偶校验位,根据约定,用奇偶校验位将所传字符中为“1”的位数凑成奇数个或偶数个。也可以约定不要奇偶校验,这样就取消奇偶校验位。最后是表示停止位的“1”信号,这个停止位可以约定持续1 位、1.5 位或2 位的时间宽度。至此一个字符传送完毕,线路又进入空闲,持续为“1”。经过一段随机的时间后,下一个字符开始传送才又发出起始位。每一个数据位的宽度等于传送波特率的倒数。微机异步串行通信中,常用的波特率为50,95,110,150,300,600,1200,2400,4800,9600 等。接收方按约定的格式接收数据,并进行检查,可以查出以

13、下三种错误:1)奇偶错:在约定奇偶检查的情况下,接收到的字符奇偶状态和约定不符。2)帧格式错:一个字符从起始位到停止位的总位数不对。3)溢出错:若先接收的字符尚未被微机读取,后面的字符又传送过来,则产生溢出错。每一种错误都会给出相应的出错信息,提示用户处理。串行接口的物理层标准六、实验步骤1新建工程,将“Exp2 ARM 串口实验”中的文件添加到工程中,这些是启动时所需要的文件。2定义与UART 有关的各个寄存器地址和一些特殊的位命令。3编写串口驱动函数(MyUart.c )4在主函数中实现将从串口 0 接收到的数据发送到串口 0(Main.c):实验三 ARM 的 A/D 转换实验一、实验目

14、的1熟悉ARM 本身自带的八路十位A/D 控制器及相应寄存器。2编程实现ARM 系统的A/D 功能。3掌握带有A/D 的CPU 编程实现A/D 功能的主要方法。二、实验内容学习A/D 接口原理,了解实现 A/D 系统对于系统的软件和硬件要求。阅读 ARM 芯片文档,掌握ARM 的A/D 相关寄存器的功能,熟悉ARM 系统硬件的A/D 相关接口。利用外部模拟信号编程实现ARM 循环采集全部前4 路通道,并且在超级终端上显示。三、预备知识1、用ARM SDT 2.5 或ADS1.2 集成开发环境,编写和调试程序的基本过程。2、ARM 应用程序的框架结构。3、能够自己完成在LCD 上显示指定参量。四

15、、实验设备及工具硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以上、模拟电压信号源。软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序1A/D 转换器A/D 转换器是模拟信号源和 CPU 之间联系的接口,它的任务是将连续变化的模拟信号转换为数字信号,以便计算机和数字系统进行处理、存储、控制和显示。在工业控制和数据采集及许多其他领域中,A/D 转换是不可缺少的。A/D 转换器有以下类型:逐位比较型、积分型、计数型、并行比较型、电压频率型,主

16、要应根据使用场合的具体要求,按照转换速度、精度、价格、功能以及接口条件等因素来决定选择何种类型。3ARM 自带的十位 A/D 转换器ARM S3C440BX 芯片自带一个路10 位A/D 转换器,该转换器可以通过软件设置为 Sleep 摸式,可以节电减少功率损失,最大转换率为500K ,非线性度为正负位,其转换时间可以通过下式计算:如果系统时钟为66MHz ,比例值为9,则为66MHz/2 (9+1)/16 (完成转换至少需要16 个时钟周期)=205.25KHz (相当于4.85us)ARM 芯片与A/D 功能有关的引脚为以下几个,其中 AIN7:0为8 路模拟采集通道,AREFT 为参考正

17、电压,AREFB 为参考负电压,AVCOM 为模拟共电压。4AD 转换器在开发平台的接法如下:即前四路通过分压电位器接到2.5v 电源上。六、实验步骤1新建工程,将“Exp5 ARM A/D 接口实验”种的文件添加到工程。2编写获取转换结果函数(main.c)3主函数(main.c)实验四 GUI 绘图实验一、实验目的学习使用嵌入式系统绘图的API 函数。理解绘图设备上下文(DC)在多任务操作系统中的作用。会使用绘图设备上下文(DC)在屏幕上绘制一个圆角矩形和一个圆。了解绘制动画防止闪烁的基本原理,可以实现无闪烁的动画。二、实验内容本次实验通过使用嵌入式系统的绘图 API 函数,首先,在屏幕上

18、绘制一个圆角矩形和一个整圆。然后,再在屏幕上无闪烁的绘制一个移动的正弦波。三、预备知识1、用ARM SDT 2.5 或ADS1.2 集成开发环境,编写和调试程序的基本过程。2、基于uCOS-II 操作系统的应用程序的框架结构。四、实验设备及工具(包括软件调试工具)硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以上。软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序五、实验原理请查阅附录API 函数,在Display.h 中定义了和绘图显示

19、有关的数据类型和函数原型。在uCOS-II 系统环境下,绘图必须通过使用绘图设备上下文(DC)来实现。绘图设备上下文(DC)中包括了与绘图相关的信息,比如:画笔的宽度、绘图的原点等等。这样,在多任务系统中,不同的任务通过不同的绘图设备上下文(DC)绘图才不会互相影响。与绘图设备上下文(DC)有关的函数有:initOSDC() 用来初始化系统的DC,为DC 动态内存开辟空间;CreateDC()和DestoryDC(PDC pdc)分别用来创建和删除DC,前者返回所创建的DC 指针,后者则释放DC 的内存空间。和绘图有关的函数有TextOut(),LineTo(),FillRect(),Circ

20、le(),ShowBmp()等常见的图形函数,用户可以查看附录API 函数显示部分,尝试使用这些函数。在 uCOS-II 操作系统中,液晶显示屏的刷新是通过Lcd_Fresh_Task 任务完成的,该任务是在系统附加任务初始化函数OSAddTask_Init()中定义的,该函数开辟了 LCD 刷新任务,触摸屏任务,键盘任务等。绘图首先是在绘图缓冲区中完成的,然后系统自动(也可以通过设置绘图设备上下文参数,不让系统自动刷新)向Lcd_Fresh_Task 发送更新消息。其流程图如图所示:六、实验步骤1、新建工程,将“Exp14 绘图的API 函数”中的文件加入工程。2、编辑Main.c 文件,在

21、Main_Task 任务中加入代码。使用操作系统的绘图API 函数,绘制出如图所示的图形。3、用ARM SDT 2.5 或ADS1.2 编译、下载并调试上述程序,检查运行结果。4、在屏幕上无闪烁的绘制一个移动的正弦波。5、用ARM SDT 2.5 或ADS1.2 编译、下载并调试上述程序,检查运行结果。6、生成发行版本的.bin 文件,通过 USB 下载到嵌入式开发板中,运行并检查输出结果。实验六 文件操作一、实验目的学习使用文件相关的API 函数,了解在uCOS-II 操作系统上扩展文件系统的情况。二、实验内容通过使用开发平台提供的API 函数,打开一个保存在FLASH 海量存储器中的英文文

22、本文件,将其文件内容输出显示在液晶屏上。三、预备知识1、用ARM SDT 2.5 或ADS1.2 集成开发环境,编写和调试程序的基本过程。2、基于uCOS-II 操作系统的应用程序的框架结构。3、操作系统原理中有关文件系统的知识,了解文本文件以及字符串的处理方法。4、使用LCD_printf 向液晶屏输出字符。四、实验设备及工具(包括软件调试工具)硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以上。软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终

23、端通讯程序五、实验原理uCOS-II 操作系统本身并没有文件系统,不支持文件相关的管理功能。在将 uCOS-II 操作系统移植到ARM 嵌入式开发平台时参考FAT16 为该系统扩展了一个简单的文件系统,从而使该操作系统功能更强大,也符合实际嵌入式产品开发的需要。开发平台的硬件中有一片容量至少16M 的NAND FLASH 存储芯片作为嵌入式设备的固态数据存储器,或称为电子硬盘。该存储器由文件系统管理,在文件系统的功能函数与FLASH 芯片之间有相关驱动程序实现高层系统功能和底层具体硬件的数据交换。嵌入式系统经常使用的存储介质 FLASH 芯片具有和磁盘完全不同的结构特点,开发平台上的K9F28

24、08U0A 芯片具有1024 个Block,每个Block 有32 个Page,每个Page 有51216528 个Byte。这种芯片的读写操作具有以下特点:1)必须以Page 为单位进行读写;2)写之前必须先擦除原有内容;3)擦除操作必须对Block 进行,即一次至少擦除一个Block 的内容。另外可以用OpenOSFile()函数以指定模式打开文件;用ReadOSFile()函数读取已打开文件数据到指定缓冲区; 用WriteOSFile() 函数将指定缓冲区的数据写入到文件; 用 LineReadOSFile()函数读取文本文件的一行字符;用CloseOSFile()函数关闭文件,释放文件

25、缓冲区;用 SeekOSFile()函数定位文件指针;用DeleteOSFile()函数删除指定文件。六、实验步骤1、进入嵌入式开发平台的BIOS,连接USB 电缆并激活U 盘,在PC 机上向开发平台的FLASH 存储器复制一个小体积文本文件。2、新建工程,将“Exp16 文件的使用”中的文件加入工程。3、打开Main.c 文件,编辑Main_Task 任务中的代码,打开上述的文本文件,逐行读取文件,并显示在液晶屏上。具体的流程如图所示:4、用ARM SDT 2.5 或ADS1.2 编译、下载并调试上述程序,检查运行结果。5、生成发行版本的.bin 文件,通过 USB 下载到嵌入式开发板中,运

26、行并检查输出结果。实验八 UDP 通讯实验一、实验目的1学习UDP 通讯原理。2掌握Socket 编程方法。二、实验内容编程实现嵌入式开发平台和计算机之间的UDP 通讯。通过触摸屏进行画图,使其在液晶屏上显示,同时通过网络传输数据,使其在计算机屏幕上显示;由计算机控制清除液晶屏上的图形。三、预备知识1用ARM SDT 2.5 或ADS1.2 集成开发环境,编写和调试程序的基本过程。2基于uCOS-II 操作系统的应用程序的框架结构。3系统消息循环和触摸屏消息的处理。4绘图API 函数的使用4UDP 通信原理和网络相关知识。四、实验设备及工具硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的

27、JTAG 仿真器、PC 机Pentium100 以上、交叉序网线。软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。五、实验原理及说明1UDP 协议简介1)UDP 协议简介UDP 协议是英文User Datagram Protocol 的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多客户/ 服务器模式的网络应用都需要使用UDP 协议。UDP 协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但即使是在今天,

28、UDP 仍然不失为一项非常实用和可行的网络传输层协议。2)UDP 和TCP 协议的主要区别UDP 和 TCP 协议的主要区别是两者在如何实现信息的可靠传递方面不同。TCP 协议中包含了专门的传递保证机制,当数据接收方收到发送方传来的信息时,会自动向发送方发出确认消息;发送方只有在接收到该确认消息之后才继续传送其它信息,否则将一直等待直到收到确认信息为止。3)UDP 协议的应用也许有的读者会问,既然 UDP 是一种不可靠的网络协议,那么还有什么使用价值或必要呢?其实不然,在有些情况下UDP 协议可能会变得非常有用。因为UDP 具有TCP 望尘莫及的速度优势。虽然TCP 协议中植入了各种安全保障功

29、能,但是在实际执行的过程中会占用大量的系统开销,无疑使速度受到严重的影响。反观UDP 由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,极大得降低了执行时间,使速度得到了保证。2SOCKET 简介1)什么是SocketSocket 接口是TCP/IP 网络的API,Socket 接口定义了许多函数或例程,程序员可以用它们来开发 TCP/IP 网络上的应用程序。要学Internet 上的 TCP/IP 网络编程,必须理解 Socket接口。2)Socket 建立为了建立 Socket,程序可以调用Socket 函数,该函数返回一个类似于文件描述符的句柄。socket 函数原型为

30、:int socket(int domain, int type, int protocol);3)Socket 配置通过 socket 调用返回一个 socket 描述符后,在使用socket 进行网络传输以前,必须配置该socket。面向连接的socket 客户端通过调用 Connect 函数在socket 数据结构中保存本地和远端信息。无连接socket 的客户端和服务端以及面向连接socket 的服务端通过调用bind 函数来配置本地信息。4)连接建立面向连接的客户程序使用 Connect 函数来配置socket 并与远端服务器建立一个TCP 连接,其函数原型为:int connect

31、(int sockfd, struct sockaddr *serv_addr,int addrlen);5)数据传输Send()和recv()这两个函数用于面向连接的socket 上进行数据传输。Send()函数原型为:int send(int sockfd, const void *msg, int len, int flags);6)结束传输当所有的数据操作结束以后,你可以调用 close()函数来释放该 socket,从而停止在该socket 上的任何数据操作:close(sockfd);六、实验步骤1新建工程,将“Exp20UDP 通讯实验”中的文件加入工程。2在main.c 文件中

32、编辑初始化网络函数。3定义计算机端套接字,全局变量。struct sockaddr_in servaddr;4编写Main_Task 任务及消息循环主要负责响应触摸屏消息,在屏幕上画图,然后将数据传输到计算机上。5编写Receive_Task 任务主要负责接收计算机发出的清屏控制命令,来执行清屏操作。同时在计算机端设置开发平台IP 时负责接收数据包来获得计算机端IP。6用ARM SDT 2.5 或ADS1.2 编译、下载并调试上述程序,检查运行结果。7打开VC 目录下的上位机控制程序,点菜单“控制设置IP”并在对话框中输入开发平台的IP(确定后控制程序只是向开发平台发送一个数据,使其获得计算机

33、的IP 及端口)。8用手指在触摸屏上轻轻的画图,在计算机控制软件的窗口中显示相应的图形。9通过菜单“控制清屏”命令可以清除计算机和触摸屏上的图形,重新绘图。实验十 综合设计实验一、实验目的1进一步了解触摸屏的工作原理。2学习在uCOS-II 操作系统下对触摸屏的编程。3进一步熟悉绘图API,图形控件,消息循环等内容。二、实验内容在液晶屏上设置四个按钮控件,表示四种画板功能:画直线、画圆、画任意折线以及清除图形。在触摸屏上单击一个按钮后,即可以开始在触摸屏上画图或清除原来的图形。三、预备知识1、用ARM SDT 2.5 或ADS1.2 集成开发环境,编写和调试程序的基本过程。2、基于uCOS-I

34、I 操作系统的应用程序的框架结构。3、触摸屏的驱动程序原理。4、系统消息循环、图形API 函数以及控件的使用。四、实验设备及工具(包括软件调试工具)硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以上。软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序五、实验步骤1、新建工程,将“Exp22 模拟电子画板”中的文件加入工程。2、打开main.c 文件,编辑Main_Task 任务中的代码。定义控件及绘图的矩形区域,创建按钮控件并显示每个按钮

35、代表的功能。启动消息循环,响应触摸屏消息。3、用ARM SDT 2.5 或ADS1.2 编译、下载并调试上述程序,检查运行结果。4、生成发行版本的.bin 文件,通过 USB 下载到嵌入式开发平台中,运行并检查输出结果。提示:1)用CreateButton() 函数创建按钮控件,其参数Caption 即要在该按钮上显示的文字。这里同样需要事先指定每个控件的ID ,为每个控件的矩形结构赋值,并将ASCII字符串转为Unicode 字符串。2 ) 触摸屏消息的类型pMsg-Message 为OSM_TOUCH_SCREEN , 参数pMsg-WParam 中包含坐标信息,用下面的语句获得(x,y)

36、坐标值:Touch_Position.x=pMsg-WParamTouch_Position.y=pMsg-WParam16;3)用IsInRect() 函数判断某个触摸点坐标是否在一个矩形区域内,例如:IsInRect2(pLine_Button_RECT, pTouch_Position);判断 pTouch_Position 坐标值是否在画线按钮pLine_Button_RECT 的矩形区域内。4)触摸屏消息参数pMsg-LParam 为触摸屏动作,定义如下:#define TCHSCR_ACTION_CLICK 1 /触摸屏单击#define TCHSCR_ACTION_DBCLICK

37、 2 /触摸屏双击#define TCHSCR_ACTION_DOWN 3 /触摸屏按下#define TCHSCR_ACTION_UP 4 /触摸屏抬起#define TCHSCR_ACTION_MOVE 5 /触摸屏移动在 画直线功能中, 第1 次单击绘图区域时, 触摸屏动作为TCHSCR_ACTION_CLICK,用MoveTo()函数设定直线起点;第2 次单击时用LineTo()函数绘制直线。程序中用Line_State 作为直线起点和终点的状态标志。在画圆功能中,第一次单击绘图区域时,触摸屏动作为TCHSCR_ACTION_CLICK,记录该触摸点坐标为圆心坐标;第2 次单击时用Ci

38、rcle() 函数画圆。程序中用 Circle_State作为圆心和圆周的状态标志。用下面的语句求得圆的半径:r=sqrt(x0-Touch_Position.x)*(x0-Touch_Position.x)+(y0-Touch_Position.y)*(y0-Touch_Position.y);5)在画折线功能中,触摸屏动作为TCHSCR_ACTION_DOWN 时用MoveTo() 函数设置线段起始点;动作为TCHSCR_ACTION_MOVE 时用 LineTo()函数绘制线段。 LineTo()函数执行完毕后绘图当前点自动转移到线段的终点。6 ) 系统的按钮控件本身也能对按钮上的触摸屏消息作出处理, 会随着TCHSCR_ACTION_UP 或TCHSCR_ACTION_DOWN 动作绘制动态的按钮图形。并会在TCHSCR_ACTION_UP 之后发出如下消息:pMsg=OSCreateMessage(POS_Ctrl)pButtonCtrl-parentWnd,OSM_BUTTON_CLICK, pButtonCtrl-CtrlID, NULL);SendMessage(pMsg);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 研究报告 > 教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报