单片机STM32实验报告.docx

上传人:b****3 文档编号:6251186 上传时间:2023-05-09 格式:DOCX 页数:14 大小:2MB
下载 相关 举报
单片机STM32实验报告.docx_第1页
第1页 / 共14页
单片机STM32实验报告.docx_第2页
第2页 / 共14页
单片机STM32实验报告.docx_第3页
第3页 / 共14页
单片机STM32实验报告.docx_第4页
第4页 / 共14页
单片机STM32实验报告.docx_第5页
第5页 / 共14页
单片机STM32实验报告.docx_第6页
第6页 / 共14页
单片机STM32实验报告.docx_第7页
第7页 / 共14页
单片机STM32实验报告.docx_第8页
第8页 / 共14页
单片机STM32实验报告.docx_第9页
第9页 / 共14页
单片机STM32实验报告.docx_第10页
第10页 / 共14页
单片机STM32实验报告.docx_第11页
第11页 / 共14页
单片机STM32实验报告.docx_第12页
第12页 / 共14页
单片机STM32实验报告.docx_第13页
第13页 / 共14页
单片机STM32实验报告.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机STM32实验报告.docx

《单片机STM32实验报告.docx》由会员分享,可在线阅读,更多相关《单片机STM32实验报告.docx(14页珍藏版)》请在冰点文库上搜索。

单片机STM32实验报告.docx

单片机STM32实验报告

实验报告

课程名称:

单片微机原理与车载系统

 

学生姓名

蒋昭立

班级

电科1601

学号

16401700119

指导教师

易吉良

成绩

 

2018年12月17日

实验1GPIO实验

1.1实验目的

1)熟悉MDK开发环境;

2)掌握STM32单片机的GPIO使用方法。

1.2实验设备

1)一台装有Keil和串口调试软件的计算机;

2)一套STM32F103开发板;

3)STlink硬件仿真器。

1.3基本实验内容

1)熟悉MDK开发环境,参考《STM32F1开发指南(精英版)-寄存器版本_V1.0》第3章,安装MDK并新建test工程,运行例程,在串口窗宽观察结果,并记录如下:

从图片可以看出,例程运行成功,没有错误。

2)按键输入实验,《STM32F1开发指南(精英版)-寄存器版本_V1.0》第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开发指南(精英版)-库函数版本_V1.0》第8章。

库函数实现不支持连续按的关键代码,以及程序运行后的效果。

由程序可知,给KEY_Scan函数输入的值为0,为不支持连按模式。

库函数实现支持连续按的关键代码,以及程序运行后的效果。

由程序可知,给KEY_Scan函数输入的值为1,为支持连按模式。

1.4创新实验内容

在1.3实验步骤的基础上,通过修改代码,实现如下功能:

1)按下任意一个按键,蜂鸣器响x下后停止,然后DS0闪烁y次,DS1闪烁z次(x、y、z分别为你学号的末3位的数);

由我学号最后三位为119,所以蜂鸣器响1下后停止,然后DS0闪烁1次,DS1闪烁9次。

实验2定时器实验

2.1实验目的

1)理解定时器工作原理;

2)掌握STM32定时器的使用方法。

2.2实验设备

1)一台装有Keil和串口调试软件的计算机;

2)一套STM32F103开发板;

3)STlink硬件仿真器。

2.3基本实验内容

1)定时器中断实验,参考《STM32F1开发指南(精英版)-库函数版本_V1.0》第13章,利用TIM3的定时器中断来控制DS1的翻转,在主函数用DS0的翻转来提示程序正在运行。

通过本例程,理解定时器中断原理,记录关键代码,写出定时器中断过程:

一开始程序会一直执行死循环里面的代码,让LED0不断的亮然后熄灭来提示程序正在运行。

当计数器计数500ms之后,程序将跳出循环,去执行定时器里面的程序,实现DS1的反转

2)PWM输出实验,参考《STM32F1开发指南(精英版)-库函数版本_V1.0》第14章,使用TIM3的通道2,把通道2重映射到PB5,产生PWM来控制DS0的亮度。

通过本例程,理解定时器PWM输出功能的使用方法,记录关键代码,写出STM32定时器PWM输出实现过程:

本实验通过重映射复用功能,将TIM3的通道2,把通道2重映射到PB5引脚,通过PWM的高低电平来控制DS0的亮度,电平为高电平时为亮,低电平时为熄灭,由主函数的程序可以看出,随着led0pwmval的数越大,PWM输出的占空比就越大,此时灯就越亮。

3)定时器输入捕获实验,参考《STM32F1开发指南(精英版)-库函数版本_V1.0》第15章,利用TIM5的通道1(PA0)做输入捕获,捕获PA0上高电平的脉宽(用WK_UP按键输入高电平),通过串口打印高电平脉宽时间。

通过本例程,掌握定时器输入捕获实现过程,记录关键代码,并写出捕获输入实现原理:

 

2.4创新实验内容

在1.3实验步骤的基础上,通过修改代码,实现如下功能:

1)通过定时器相关功能实现控制蜂鸣器音调。

查找资料理解蜂鸣器发出不同音调的控制原理,按下某个按键,实现“多来米发梭拉西”的发声;

 

实验3ADC及显示实验

3.1实验目的

1)理解ADC工作原理;

2)掌握STM32ADC的使用方法。

3.2实验设备

1)一台装有Keil和串口调试软件的计算机;

2)一套STM32F103开发板;

3)STlink硬件仿真器。

3.3基本实验内容

1)ADC实验,参考《STM32F1开发指南(精英版)-库函数版本_V1.0》第22章,将利用STM32的ADC1通道1采样外部电压值(注意:

输入电压不能超过3.3V!

),并在TFTLCD模块上显示出来。

ADC输入端口查找请参考《STM32F1开发指南(精英版)-库函数版本_V1.0》第2章实验平台硬件资源详解。

通过本例程,理解ADC原理,记录关键代码,写出ADC采样实现过程:

通过Get_Adc_Average函数可以获得由通道1采样得到的采样值,然后经过转换计算输出我们需要的数字量电压值。

2)内部温度传感器实验,参考《STM32F1开发指南(精英版)-库函数版本_V1.0》第23章,利用STM32F1的内部温度传感器读取温度值,并在TFTLCD模块上显示出来。

通过本例程,理解STM32内部温度传感器的使用方法,记录关键代码,写出读取内部温度传感器温度值的实现过程:

3.4创新实验内容

在1.3实验步骤的基础上,通过修改代码,实现如下功能:

1)用信号发生器输出正弦波、三角波信号(注意峰值小于3.3V!

),接入某ADC通道,在TFTLCD上动态显示输入数据(也可以用图形方式显示);

在实现1)中功能的基础上,用TFTLCD显示温度,并显示自己的班级、学号、姓名等信息。

实验总结

通过这三次实验,我遇到了很多问题,比如,如何开始去新建一个工程,如何运行一个程序,如何下载到开发板中。

也学到了如何去解决这些问题,遇见软件问题也多不胜数,比如:

调试文件系统程序时,程序编译没有错,仿真时程序总是跑飞到硬件中断。

这是因为初始化文件系统时,前面忘记调用设备选择函数,导致一些参数未能及时存储变量的值,致使程序跑飞,加入设备选择函数后,该现象解决。

这样的还有很多很多,问题越多,在与别人交流的过程中受益匪浅,别人的程序往往使人豁然开朗,通过这几次实验,我不仅加深了对单片机的了解,将理论很好的融入到实践中,同时也让我意识到自己的不足,无论是理论上还是遇到问题的处理能力还有待提高。

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2