嵌入式实验报告.doc
《嵌入式实验报告.doc》由会员分享,可在线阅读,更多相关《嵌入式实验报告.doc(32页珍藏版)》请在三一办公上搜索。
1、目录实验一 跑马灯实验1实验二 按键输入实验3实验三 串口实验5实验四 外部中断实验8实验五 独立看门狗实验11实验七 定时器中断实验13实验十三 ADC实验15实验十五 DMA实验17实验十六 I2C实验21实验十七 SPI实验24实验二十一 红外遥控实验27实验二十二 DS18B20实验30实验一 跑马灯实验一实验简介我的第一个实验,跑马灯实验。二实验目的掌握STM32开发环境,掌握从无到有的构建工程。三实验内容熟悉MDK KEIL开发环境,构建基于固件库的工程,编写代码实现跑马灯工程。通过ISP下载代码到实验板,查看运行结果。使用JLINK下载代码到目标板,查看运行结果,使用JLINK在
2、线调试。四实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。五实验步骤1. 熟悉MDK KEIL开发环境2. 熟悉串口编程软件ISP3. 查看固件库结构和文件4. 建立工程目录,复制库文件5. 建立和配置工程6. 编写代码7. 编译代码8. 使用ISP下载到实验板9. 测试运行结果10. 使用JLINK下载到实验板11. 单步调试12. 记录实验过程,撰写实验报告六实验结果及测试源代码:两个灯LED0与LED1实现交替闪烁的类跑马灯效果,每300ms闪烁一次。七实验总结通过本次次实验我了解了STM32
3、开发板的基本使用,初次接触这个开发板和MDK KEILC软件,对软件操作不太了解,通过这次实验了解并熟练地使用MDK KEIL软件,用这个软件来编程和完成一些功能的实现。作为 STM32 的入门第一个例子,详细介绍了STM32 的IO口操作,同时巩固了前面的学习,并进一步介绍了MDK的软件仿真功能。实验二 按键输入实验一实验简介在实验一的基础上,使用按键控制流水灯速度,及使用按键控制流水灯流水方向。二实验目的熟练使用库函数操作GPIO,掌握中断配置和中断服务程序编写方法,掌握通过全局变量在中断服务程序和主程序间通信的方法。三实验内容实现初始化GPIO,并配置中断,在中断服务程序中通过修改全局变
4、量,达到控制流水灯速度及方向。使用JLINK下载代码到目标板,查看运行结果,使用JLINK在线调试。四实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK、示波器。软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。五实验步骤1在实验1代码的基础上,编写中断初始化代码2在主程序中声明全局变量,用于和中断服务程序通信,编写完成主程序3编写中断服务程序4编译代码,使用JLINK下载到实验板5.单步调试6记录实验过程,撰写实验报告六实验结果及测试源代码:我们将通过MiniSTM32 板上载有的3个按钮,来控制板上的2个LED,其中KEY0控制LED0,按一次亮,
5、再按一次,就灭。KEY1 控制LED1,效果同KEY0。KEY_2(KEY_UP),同时控制LED0 和LED1,按一次,他们的状态就翻转一次。七实验总结通过本次实验,我学会了如何使用STM32 的IO 口作为输入用。TM32 的IO 口做输入使用的时候,是通过读取IDR 的内容来读取IO 口的状态的。这里需要注意的是 KEY0 和KEY1 是低电平有效的,而WK_UP 是高电平有效的,而且要确认WK_UP 按钮与DS18B20 的连接是否已经断开,要先断开,否则DS18B20 会干扰WK_UP按键!并且KEY0 和KEY1 连接在与JTAG 相关的IO 口上,所以在软件编写的时候要先禁用JT
6、AG 功能,才能把这两个IO 口当成普通IO 口使用。实验三 串口实验一实验简介编写代码实现串口发送和接收,将通过串口发送来的数据回送回去。 二实验目的掌握STM32基本串口编程,进一步学习中断处理。三实验内容编写主程序,初始化串口1,设置波特率为9600,无校验,数据位8位,停止位1位。编写中断服务程序代码实现将发送过来的数据回送。四实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK、示波器。软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。五实验步骤1编写串口初始化代码2编写中断服务程序代码3编译代码,使用JLINK或ISP下载到实验
7、板4记录实验过程,撰写实验报告六实验结果及测试源代码:把代码下载到 MiniSTM32 开发板,可以看到板子上的LED0 开始闪烁,说明程序已经在跑了。接着我们打开串口调试助手,看到如下信息:证明串口数据发送没问题。接着,我们在发送区输入上面的文字,输入完后按回车键。然后单击发送,可以得到如下结果:七实验总结通过本次实验,我进一步了解了串口的使用,学会了通过串口发送和接收数据,将通过串口发送来的数据回送回去。该实验的硬件配置不同于前两个实验,串口 1 与USB 串口默认是分开的,并没有在PCB上连接在一起,需要通过跳线帽来连接一下。这里我们把P4 的RXD 和TXD 用跳线帽与P3 的PA9
8、和PA10 连接起来。实验四 外部中断实验一实验简介STM32 的 IO 口在本章第一节有详细介绍,而外部中断在第二章也有详细的阐述。这里我们将介绍如何将这两者结合起来,实现外部中断输入。二实验目的进一步掌握串口编程,进一步学习外部中断编程,提高编程能力。三实验内容初始化IO口的输入,开启复用时钟,设置IO与中断的映射关系,从而开启与IO口相对应的线上中断事件,设置触发条件。配置中断分组(NVIC),并使能中断,编写中断服务函数。四实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK、示波器。软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手
9、。五实验步骤1. 编写中断服务程序代码2. 使用ISP下载到实验板3. 测试运行结果4. 记录实验过程,撰写实验报告六实验结果及测试源代码:打开串口助手。七实验总结首先需要将IO设置为中断输入口:1)初始化 IO 口为输入。 2)开启 IO 口复用时钟,设置 IO 口与中断线的映射关系。 3)开启与该 IO口相对的线上中断/事件,设置触发条件。 4)配置中断分组(NVIC),并使能中断。 5)编写中断服务函数。 这一节,使用的是中断来检测按键,通过 WK_UP 按键实现按一次 LED0 和 LED 1 同时翻转,按 KEY0 翻转 LED0,按 KEY1 翻转 LED1。试验中外部中断函数不能
10、进入的原因分析:1)GPIO或者AFIO的时钟没有开启。2)GPIO和配置的中断线路不匹配。3)中断触发方式和实际不相符合。4)中断处理函数用库函数时,写错,经常可能出现数字和字母之间没有下划线。5)外部中断是沿触发,有可能不能检测到沿,比如中断线是低电平(浮空输入),触发是下降沿触发,可能会出现一直是低电平,高电平的时候是一样的情况,电平持续为高电平。6)没有用软件中断来触发外部中断,调用函数EXTI_GenerateSWInterrupt;,因为软件中断先于边沿中断处理。实验五 独立看门狗实验一 实验简介独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。
11、窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。二实验目的通过编程,编写一个独立看门狗驱动程序三实验内容启动 STM32 的独立看门狗,从而使能看门狗,在程序里面必须间隔一定时间喂狗,否则将导致程序复位。利用这一点,我们本章将通过一个 LED 灯来指示程序是否重启,来验证 STM32 的独立看门狗。四实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。五实验步骤1. 参考教材独立看门狗部分,编写独立看门狗驱动程序。建立和配置工程2
12、. 编写代码3. 使用ISP下载到实验板4. 记录实验过程,撰写实验报告六实验结果及测试源代码:在配置看门狗后,看到LED0 不停的闪烁,如果WK_UP 按键按下,就喂狗,只要WK_UP 不停的按,看门狗就一直不会产生复位,保持LED0 的常亮,一旦超过看门狗定溢出时间(Tout)还没按,那么将会导致程序重启,这将导致LED0 熄灭一次。七实验总结通过本次实验,我掌握了启动独立看门狗的步骤:1)向 IWDG_KR 写入 0X5555。2)向 IWDG_KR 写入 0XAAAA。3)向 IWDG_KR 写入 0XCCCC。通过上面 3个步骤,启动 STM32 的看门狗,从而使能看门狗,在程序里面
13、就必须间隔一定时间喂狗,否则将导致程序复位。利用这一点,本章通过一个LED 灯来指示程序是否重启,来验证 STM32 的独立看门狗。在配置看门狗后,LED0 将常亮,如果 WK_UP 按键按下,就喂狗,只要 WK_UP 不停的按,看门狗就一直不会产生复位,保持 LED 0 的常亮,一旦超过看门狗溢出时间(Tout)还没按,那么将会导致程序重启,这将导致 LED 0 熄灭一次。实验七 定时器中断实验一 实验简介STM32 的定时器是一个通过可编程预分频器(PSC)驱动的 16 位自动装载计数器(CNT)构成。STM32 的通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(
14、输出比较和 PWM)等。使用定时器预分频器和 RCC 时钟控制器预分频器,脉冲长度和波形周期可以在几微秒到几毫秒间调整。STM32 的每个通用定时器都是完全独立的,没有互相共享的任何资源。二实验目的熟练掌握定时器中断,学会对定时器中断的编程操作。三实验内容使用定时器产生中断,然后在中断服务函数里面翻转 LED1 上的电平,来指示定时器中断的产生,修改中断时间。四实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。五实验步骤1. 参考教材定时器中断部分,编写定时器中断的驱动程序。2. 编写主
15、程序3. 编译代码,使用JLINK或ISP下载到实验板4. 记录实验过程,撰写实验报告六实验结果及测试源代码:七实验总结通过本次实验,认识到时间中断来控制LED灯的闪烁,同时也可以将时间中断应用到控制其他的程序块。以TIME3为例产生中断的步骤为1)TIM3 时钟使能。 2)设置 TIM3_ARR 和 TIM3_PSC 的值。 3)设置 TIM3_DIER 允许更新中断。 4)允许 TIM3 工作。 5)TIM3 中断分组设置。6)编写中断服务函数。 在中断产生后,通过状态寄存器的值来判断此次产生的中断属于什么类型。然后执行相关的操作,我们这里使用的是更新(溢出)中断,所以在状态寄存器 SR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 实验 报告

链接地址:https://www.31ppt.com/p-2392794.html