嵌入式实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《嵌入式系统导论》实验报告
学院:
学号:
姓名:
上海工程技术大学
电子电气工程学院
实验一GPIO(按键和LED)实验
一、实验要求
1 、掌握基于STM32F103微控制器的嵌入式系统、仿真器和开发用PC机之间的连接方法,能够搭建基于STM32F103微控制器的嵌入式系统交叉开发环境。
2 、熟悉常用的嵌入式开发工具KEIL MDK或IAR EWARM的操作环境和基本功能(包括编辑、编译、链接、调试和下载等),学会创建、配置和管理STM32工程,掌握嵌入式程序的基本调试方法,学会使用逻辑分析仪窗口和外设窗口等信息窗口调试嵌入式程序。
3 、理解LED和按键的构件原理,学会设计它们与微控制器间的接口电路
4 、掌握STM32F103微控制器GPIO的工作原理,熟悉STM32的GPIO库函数
5 、学会使用STM32的GPIO库函数在KEIL MDK或IAR EWARM下开发基于LED和按键的简单嵌入式应用程序
二、实验环境
1 、硬件:
ALIENTEK STM32F103嵌入式开发板
2 、软件:
KEIL MDK或IAR EWARM
三、实验内容
1 、流水灯实验一:
在KEIL MDK或IAR EWARM 中建立STM32工程,并使用GPIO库函数和延时循环设计基于无限循环架构的嵌入式应用程序,使开发板上的红色LED以一定周期闪烁。
采用软件仿真的方式调试程序,通过“Logic Analyzer”,观察程序模拟运行时连接红色LED的引脚PA8上的输出波形。
采用硬件下载的方式调试程序,观察程序下载硬件运行时红色LED的闪烁情况。
2 、按键控制LED实验:
在KEIL MDK或IAR EWARM 中建立STM32工程,并使用GPIO库函数设计基于无限循环架构的嵌入式应用程序,实现以下功能:当按键KEY0按下时,目标板上红色LED点亮;当按键KEY0释放时,目标板上红色LED熄灭。
采用软件仿真的方式调试程序,通过“Logic Analyzer”和“Peripherals→GPIOC”,观察程序模拟运行时连接红色LED的引脚PA8和连接按键KEY0的PC5上的输出波形。
采用硬件下载的方式调试程序,观察程序下载硬件运行时按键KEY0按下和释放时红色LED的点亮和熄灭情况。
四、硬件设计
1 、发光二极管(红色LED)、按键(KEY0)与嵌入式微控制器(STM32F103)的接口电路
五、软件设计
1 、流水灯实验一程序:
3 、按键控制LED实验程序:
六、实验结果
1 、流水灯实验一
1 )软件模拟仿真
用连接红色LED的PA8引脚的输出信号波形图描述软件仿真的运行结果
2 )下载硬件运行
用文字或图片描述程序在STM32F103微控制器上的运行结果
STM32F103微控制器上的运行结果为:LED灯点亮一段时间后熄灭并且循环点亮
2 、按键控制LED实验
1 )软件模拟仿真
用连接红色LED的PA8和连接按键KEY0的PC5的引脚信号波形图描述软件仿真的运行结果
2 )下载硬件运行
用文字或图片描述程序在STM32F103微控制器上的运行结果
按下按钮LED灯点亮,松开按钮后LED灯熄灭
七、实验思考
1 、依次连接按键KEY0、KEY1和WK_UP的STM32引脚PA13、PA15和PA0的复用功能:
1 )PA13、PA15:
由于PA13和PA15复位时默认设置为调试接口引脚(JTAG/SW),所以观察实验结果时先关闭开发板电源,然后拔下开发板上连接的仿真器接口,接着重新打开开发板电源观察程序运行结果。
2 )PA0:
由于PA0外接跳线连接到温度传感器DS18B20,所以在做按键KEY和外部中断EXTI实验时,先拔下开发板上PA0与DS18B20的跳线。
实验二定时器实验
一、实验目的
1 、掌握STM32的TIMER工作原理,熟悉STM32的TIMER库函数
2 、学会使用STM32库函数在KEIL MDK或IAR EWARM下开发基于TIMER的嵌入式应用程序
3 、掌握嵌入式系统中延时的实现方法和主要应用
4 、学会在嵌入式开发工具(KEIL MDK或IAR EWARM)中使用单步∕全速运行、设置断点和观察变量∕寄存器等方法调试嵌入式应用程序
二、实验环境
1 、硬件:
ALIENTEK STM32F103嵌入式开发板
2 、软件:
KEIL MDK或IAR EWARM
三、实验内容
1 、流水灯实验二:
在KEIL MDK或IAR EWARM 中建立STM32工程,使用GPIO和TIMER库函数,设计基于无限循环架构的嵌入式应用程序,使目标板上红色LED按固定时间一直闪烁,其中红色LED点亮和熄灭的时间各为x秒(x=学生学号最后两位/10,如对于学号为021110223的学生,x=23.0/10.0=2.3秒)。同时,在主程序中定义一个32位无符号变量CountOfToggle 用来统计红色LED闪烁的次数,并且每当红色LED完成一次闪烁时,便在调试窗口中输出该变量的值。
采用软件仿真的方式调试程序,当程序模拟运行时,通过设置断点、使用“Logic Analyzer”等方法观察连接红色LED的引脚PA8上的输出波形,并使用“Debug Viewer”监测用来记录红色LED闪烁次数的32位无符号变量CountOfToggle的变化情况。
采用硬件下载的方式调试程序,观察程序下载硬件运行时红色LED的闪烁情况。
2 、PWM输出实验:
在KEIL MDK或IAR EWARM 中建立STM32工程,使用GPIO和TIMER库函数,设计基于无限循环架构的嵌入式应用程序,实现以下功能:使用PWM输出达到部分点亮红色LED 的效果——即在连接红色LED引脚PA8(TIM1的通道1)上输出频率为20kHz、占空比(即正脉冲时间与信号周期的比值)为94%的矩形脉冲信号,如下图所示。
采用软件仿真的方式调试程序,当程序模拟运行时,使用“Logic Analyzer”观察连接红色LED的引脚PA8上的输出波形。
采用硬件下载的方式调试程序,观察程序下载硬件运行时红色LED的亮度情况,注意与实验一中完全点亮的红色LED的亮度比较。