1、0成绩 长安大学嵌入式系统实验报告课 程 名 称 : 嵌 入 式 系 统 设 计实 验 编 号 : 06 11专 业 名 称 : 测 控 技 术 与 仪 器小 组 成 员 : 田 玲 郭 育 圻 谭 淇 文指 导 教 师 : 马 峻 岩2015 年 5 月 24 日1一、实验内容及要求06 号实验:1.按键触发一次内部温度传感器值读取;2.按键同时读取 RTC 实时时钟信息;3.将时间信息和温度值通过串口发送至PC;4.PC 端实现一个简单的上位机程序,监听串口,显示相关信息,并将这些信息存储到一个本地文件中;5.自由发挥。11 号实验:1.设计简单的触摸屏用户交互界面;2.用户点击触摸屏相关
2、区域后响应区域显示发生变化;3.触摸相关区域后,通过串口向 PC 发送特定区域的编码;4.自由发挥。2、小组成员及分工设计、调试及实现:田玲报告:郭育圻谭淇文辅助理解三、实验软硬件环境简介硬件设备:ALIENTEK MiniSTM32 开发板(含液晶屏,数据线);PC机。软件环境:库函数代码;MDK5 开发环境;CH430 驱动;STMISP 下载器 MCUISP;XCOM 串口调试助手;四、硬件原理介绍1.STM32 有一个内部的温度传感器,可以用来测量 CPU 及周围的温度(TA)。该温度传感器 在内部和 ADCx_IN16 输入通道相连接,此通道把传感器输出的电压转换成数字值。温度传感
3、器模拟输入推荐2采样时间是 17.1s。 STM32 的内部温度传感器支持的温度范围为:-40125 度,精度为1.5左右。现在,我们就可以总结一下通过库函数设置 STM32 内部温度传感器的步骤,如下:1)设置 ADC,开启内部温度传感器。关于如何设置 ADC,上一节已经介绍了,我们采用与上一节相似的设置。不同的是上一节温度传感器是读取外部通道的值,而内部温度传感器相当与把通道端口连接在内部温度传感器上。所以这里,我们要开启内部温度传感器功能:ADC_TempSensorVrefintCmd(ENABLE);2)读取通道 16 的 AD 值,计算结果。在设置完之后,我们就可以读取温度传感器的
4、电压值了,得到该值就可以用上面的公式计算温度值了。2.STM32 的 RTC 模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。RTC 的简化框图33.ALIENTEK TFTLCD 模块自带的触摸屏控制芯片为 XPT2046。XPT2046 是一款 4 导线制触摸屏控制器,内含 12 位分辨率 125KHz 转换速率逐步逼近型 A/D 转换器。XPT2046 支持从 1.5V 到 5.25V 的低电压 I/O 接口。XPT2046 能通过执行两次 A/D 转换查出被按的屏幕位置,除此之外,还可以测量加在触摸屏上的压力。触摸屏
5、与 STM32 的连接图45、软件设计方案及流程图1.1 按键触发内部温度传感器的读值并将其发送到 PC(简图):否是1.2 按键触发 RTC 的读值并将其发送到 PC:开始定义变量,初始化。LED0=0While(1)Key0 按下了吗读出温度传感器的值并显示在液晶屏上,同时发送到 PC 端。LED0=!LED0延迟10ms5(流程图与 1.1 类似,我们将温度传感器实验与 RTC 实验结合时出现了很多不好解决的问题,所以就将它们分开了。PC 机实现简单的上位机程序,监听串口没做出来。)2 设计简单的用户交互界面(简图):否是否是否是(该程序是在原触摸屏程序的基础上稍作修改的到的,上图只体现
6、了我们修改部分的思想)开始定义变量,初始化触摸屏按下了吗?While(1)延迟10ms按下的是右上角小区域吗?执行清屏程序,并输出 resect 到 pc端 按下的是屏幕下方吗?在屏幕下方显示 hellow,并输出到 pc执行画图程序,并向 pc 输出“huatuzhong”6六、测试报告如贴图。1.1 按键触发内部温度传感器的读值并将其发送到 PC:(1)编译图(2)按键控制液晶显示图程序下载成功后: 按下 key0 键后:7上两张图中 LED0 没照清楚,左图 LED0 亮(因为在程序开始点亮LED0 了),右图 LED0 是灭的,以后每按一次 KEY0,屏幕刷新一次,LED0 状态反转一
7、次。(3)向 PC 端发送温度值图(下图有些错误。经改正,实现的效果是按一下 KEY0 显示一次,并且温度值显示正常,大约是 30 多摄氏度。由于板子老师已收走,所以没法附正确的图)。但附件中的程序是改正后的,工程也是改正后的。1.2 按键触发 RTC 的读值并将其发送到 PC:(1)编译图8(2)液晶显示图程序下载成功后: 按下 KEY0 后上图的 LED0 照的很清楚,以后没按一次 KEYO 键,屏幕显示的 RTC刷新一次,LED0 状态反转一次。(3)向 pc 发送 RTC 值图(下图有些错误。经改正,实现的效果是按一下 KEY0 显示一次,并且 RTC 值显示正常,星期以数字形式显示,
8、星期天代号 0,星期9六代号 6。由于板子老师已收走,所以没法附正确的图)。但附件中的程序是改正后的,工程也是改正后的。该图星期显示出现乱码的原因是:库函数中星期是以数字定义的,而我们以%s 输出,所以出现了乱码。将%s 改为%i 后,星期以数字代号输出。2 设计简单的用户交互界面(1)编译图(2)点触摸屏不同区域的效果图10触摸除右上角和屏幕下方 点右上角 RST 区域之外区域,实现画图: 实现清屏:触摸屏幕下方区域,在屏幕坐标(60,290)的地方显示“hellow”:11(3)点触摸屏不同区域往 PC 发送不同编码图七、实验总结通过内部温度传感器实验与触摸屏实验,对嵌入式系统的开发流程有了基本的了解,熟悉了 ALIENTEK MiniSTM32 的开发环境,同时也掌握了各模块功能实现功能的基本原理。在实验中,通过对嵌入式系统相关知识的掌握和理解,进一步的对以上知识进行了加深和巩固,虽然实验结果并非完全理想,但还是达到了学习和理解的目的。附录:核心源代码1.txt 2.txt 3.txt