单片机STM实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机S T M实验报告 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】
实验报告
课程名称:单片微机原理与车载系统
学生姓名蒋昭立
班级电科1601
学号
指导教师易吉良
成绩
2018年 12 月 17 日
实验1 GPIO实验
实验目的
1)熟悉MDK开发环境;
2)掌握STM32单片机的GPIO使用方法。
实验设备
1)一台装有Keil和串口调试软件的计算机;
2)一套STM32F103开发板;
3)STlink硬件仿真器。
基本实验内容
1)熟悉MDK开发环境,参考《STM32F1开发指南(精英版)-寄存器版本》第3章,安装MDK并新建test工程,运行例程,在串口窗宽观察结果,并记录如下:从图片可以看出,例程运行成功,没有错误。
2)按键输入实验,《STM32F1开发指南(精英版)-寄存器版本》第8章。实现功能: 3 个按钮(KEY_UP、KEY0和 KEY1),来控制板上的 2 个 LED(DS0 和 DS1)和蜂鸣器,其中 KEY_UP 控制蜂鸣器,按一次叫,再按一次停;KEY1 控制 DS1,按一次亮,再按一次灭;KEY0 则同时控制 DS0 和 DS1,按一次,他们的状态就翻转一次。
理解连续按概念及其实现代码。参数 mode 为 0 的时候,KEY_Scan 函数将不支持连续按,扫描某个按键,该按键按下之后必须要松开,才能第二次触发,否则不会再响应这个按键,这样的好处就是可以防止按一次多次触发,而坏处就是在需要长按的时候比较不合适。当 mode 为 1 的时候,KEY_Scan 函数将支持连续按,如果某个按键一直按下,则会一直返回这个按键的键值,这样可以方便的实现长按检测。
寄存器方法实现不支持连续按的关键代码,以及程序运行后的效果。
由程序可知,给KEY_Scan函数输入的值为0,为不支持连按模式。
寄存器方法实现支持连续按的关键代码,以及程序运行后的效果。
由程序可知,给KEY_Scan函数输入的值为1,为支持连按模式。
3)采用库函数方法实现按键输入实验,参考《STM32F1开发指南(精英版)-库函数版本》第8章。
库函数实现不支持连续按的关键代码,以及程序运行后的效果。
由程序可知,给KEY_Scan函数输入的值为0,为不支持连按模式。
库函数实现支持连续按的关键代码,以及程序运行后的效果。
由程序可知,给KEY_Scan函数输入的值为1,为支持连按模式。
创新实验内容
在实验步骤的基础上,通过修改代码,实现如下功能:
1)按下任意一个按键,蜂鸣器响x下后停止,然后DS0闪烁y次,DS1闪烁z次(x、y、z分别为你学号的末3位的数);
由我学号最后三位为119,所以蜂鸣器响1下后停止,然后DS0闪烁1次,DS1闪烁9次。
实验2 定时器实验
实验目的
1)理解定时器工作原理;
2)掌握STM32定时器的使用方法。
实验设备
1)一台装有Keil和串口调试软件的计算机;
2)一套STM32F103开发板;
3)STlink硬件仿真器。
基本实验内容
1)定时器中断实验,参考《STM32F1开发指南(精英版)-库函数版本》第13章,利用TIM3的定时器中断来控制DS1的翻转,在主函数用DS0的翻转来提示程序正在运行。通过本例程,理解定时器中断原理,记录关键代码,写出定时器中断过程:一开始程序会一直执行死循环里面的代码,让LED0不断的亮然后熄灭来提示程序正在运行。当计数器计数500ms之后,程序将跳出循环,去执行定时器里面的程序,实现DS1的反转
2)PWM输出实验,参考《STM32F1开发指南(精英版)-库函数版本》第14章,使用TIM3的通道2,把通道2重映射到PB5,产生PWM来控制DS0的亮度。通过本例程,理解定时器PWM输出功能的使用方法,记录关键代码,写出STM32定时器PWM输出实现过程:
本实验通过重映射复用功能,将TIM3的通道2,把通道2重映射到PB5引脚,通过PWM的高低电平来控制DS0的亮度,电平为高电平时为亮,低电平时为熄灭,由主函数的程序可以看出,随着led0pwmval的数越大,PWM输出的占空比就越大,此时灯就越亮。
3)定时器输入捕获实验,参考《STM32F1开发指南(精英版)-库函数版本》第15章,利用TIM5的通道1(PA0)做输入捕获,捕获PA0上高电平的脉宽(用WK_UP按键输入高电平),通过串口打印高电平脉宽时间。通过本例程,掌握定时器输入捕获实现过程,记录关键代码,并写出捕获输入实现原理:
创新实验内容
在实验步骤的基础上,通过修改代码,实现如下功能:
1)通过定时器相关功能实现控制蜂鸣器音调。查找资料理解蜂鸣器发出不同音调的控制原理,按下某个按键,实现“多来米发梭拉西”的发声;
实验3 ADC及显示实验实验目的
1)理解ADC工作原理;
2)掌握STM32ADC的使用方法。
实验设备
1)一台装有Keil和串口调试软件的计算机;
2)一套STM32F103开发板;
3)STlink硬件仿真器。
基本实验内容
1)ADC实验,参考《STM32F1开发指南(精英版)-库函数版本》第22章,将利用STM32的ADC1通道1采样外部电压值(注意:输入电压不能超过!),并在TFTLCD 模块上显示出来。ADC输入端口查找请参考《STM32F1开发指南(精英版)-库函数版本》第2章实验平台硬件资源详解。通过本例程,理解ADC原理,记录关键代码,写出ADC采样实现过程:
通过Get_Adc_Average函数可以获得由通道1采样得到的采样值,然后经过转换计算输出我们需要的数字量电压值。