嵌入式实验报告_第1页
嵌入式实验报告_第2页
嵌入式实验报告_第3页
嵌入式实验报告_第4页
嵌入式实验报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统及应用课程设计报告姓名:陈宥祎班级:14级计算机01班学号:1255010116指导老师:黄卫红按键输入实验实验简介在实验一的基础上,使用按键控制流水灯速度,及使用按键控制流水灯流水方向。实验目的熟练使用库函数操作GPIO,掌握中断配置和中断服务程序编写方法,掌握通过全局变量在中断服务程序和主程序间通信的方法。实验内容实现初始化GPIO,并配置中断,在中断服务程序中通过修改全局变量,达到控制流水灯速度及方向。使用JLINK下载代码到目标板,查看运行结果,使用JLINK在线调试。实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK、示波器。软件部分:PC机WINDOWS系统、MDKKEIL软件、ISP软件。实验步骤实验结果及测试源代码:intmain(void)点t;5tin32_Cloc]f_Init(9);〃系统时钟设置delay2init&); 〃延商■新始itLED=7it().; 〃初始化与二E□连接的硬件接口KEY:Init0; 〃初始化与按键连接的硬件接口while(L)t=wE七无口n;〃得到键值ifswitch(t)caseL:LEDO=!LEDO;break;case2:LED1=!LED1;break;case3:LEDO=!LEDO;LED1=:LED1;break;?Jelsedelay_ns(LO);我们将通过MiniSTM32板上载有的3个按钮,来控制板上的2个LED,其中KEY0控制LED0,按一次亮,再按一次,就灭。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口上,所以在软件编写的时候要先禁用JTAG功能,才能把这两个IO口当成普通IO口使用。串口通信实验简介编写代码实现串口发送和接收,将通过串口发送来的数据回送回去。实验目的掌握STM32基本串口编程,进一步学习中断处理。实验内容编写主程序,初始化串口1,设置波特率为9600,无校验,数据位8位,停止位1位。编写中断服务程序代码实现将发送过来的数据回送。.实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK、示波器。软件部分:PC机WINDOWS系统、MDKKEIL软件、ISP软件、串口调试助手。五.实验步骤1编写串口初始化代码2编写中断服务程序代码3编译代码,使用JLINK或ISP下载到实验板4记录实验过程,撰写实验报告六.实验结果及测试源代码:while(L)■[if(USART_RX_5TA£0x80}■[一一len=USART_RXST即咛3:E;〃得至:此次接收到的数据长度printf(n\二kr■一您发送的消息为:\二};for(t=0;t<len;t-4-)■[USART1->DR=U5ART_RX_BUF:t];while((U5ARTl->5R£0X40)==0)等待发送结束printf(n\n\n,r)插入卖行U5ART_RX_5TA=0;Jelse■[tiir.已吕++;if(tiir.eB%500Ci==3}■[printf{TT\r\nMiniSTM32开发板率口实验Xr\n,r);printf(riIEA @ALZZNTEX\r\n\r\n\r\nn;:■if(tiir.eB^200==0}printf请输入数据『以国罗键结束\=\址).if(times%30=0}LED0=!LEDO;//闪媒LEE?,提示系统正在运行.delay_ms(L0);把代码下载到MiniSTM32开发板,可以看到板子上的LED0开始闪烁,说明程序已经在跑了。接着我们打开串口调试助手,看到如下信息:

证明串口数据发送没问题。接着,我们在发送区输入上面的文字,输入完后按回车键。然后单击发送,可以得到如下结果:七.实验总结通过本次实验,我进一步了解了串口的使用,学会了通过串口发送和接收数据,将通过串口发送来的数据回送回去。该实验的硬件配置不同于前两个实验,串口1与USB串口默认是分开的,并没有在PCB上连接在一起,需要通过跳线帽来连接一下。这里我们把P4的RXD和TXD用跳线帽与P3的PA9和PA10连接起来。外部中断实验简介STM32的IO口在本章第一节有详细介绍,而外部中断在第二章也有详细的阐述。这里我们将介绍如何将这两者结合起来,实现外部中断输入。实验目的进一步掌握串口编程,进一步学习外部中断编程,提高编程能力。实验内容初始化IO口的输入,开启复用时钟,设置IO与中断的映射关系,从而开启与IO口相对应的线上中断事件,设置触发条件。配置中断分组(NVIC),并使能中断,编写中断服务函数。实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK、示波器。软件部分:PC机WINDOWS系统、MDKKEIL软件、ISP软件、串口调试助手。五.实验步骤编写中断服务程序代码使用ISP下载到实验板测试运行结果记录实验过程,撰写实验报告六■实验结果及测试源代码:intmain(void)Stm32_Clock:_Init(9);〃系统时钟设置delay2init& 〃延2和始化jart_initr:2f9600); 〃串口初始化LEDTnit(}; 〃初始•比与LE□建接的硬件接口EXTIX_Init(); 〃外部中断初始化■[printfLSK'VlE);delay_ns(L00O);打开串口助手。七.实验总结首先需要将IO设置为中断输入口:1) 初始化IO口为输入。2) 开启IO口复用时钟,设置IO口与中断线的映射关系。3) 开启与该IO口相对的线上中断/事件,设置触发条件。4) 配置中断分组(NVIC),并使能中断。5)编写中断服务函数。这一节,使用的是中断来检测按键,通过WK_UP按键实现按一次LED0和LED1同时翻转,按KEY0翻转LED0,按KEY1翻转LED1。试验中外部中断函数不能进入的原因分析:1) GPIO或者AFIO的时钟没有开启。2) GPIO和配置的中断线路不匹配。3) 中断触发方式和实际不相符合。4) 中断处理函数用库函数时,写错,经常可能出现数字和字母之间没有下划线。5) 外部中断是沿触发,有可能不能检测到沿,比如中断线是低电平(浮空输入),触发是下降沿触发,可能会出现一直是低电平,高电平的时候是一样的情况,电平持续为高电平。6) 没有用软件中断来触发外部中断,调用函数EXTI_GenerateSWInterrupt;,因为软件中断先于边沿中断处理。独立看门狗实验一.实验简介独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。二.实验目的通过编程,编写一个独立看门狗驱动程序三■实验内容启动STM32的独立看门狗,从而使能看门狗,在程序里面必须间隔一定时间喂狗,否则将导致程序复位。利用这一点,我们本章将通过一个LED灯来指示程序是否重启,来验证STM32的独立看门狗。实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。软件部分:PC机WINDOWS系统、MDKKEIL软件、ISP软件、串口调试助手。五.实验步骤参考教材独立看门狗部分,编写独立看门狗驱动程序。建立和配置工程编写代码使用ISP下载到实验板记录实验过程,撰写实验报告

六.实验结果及测试源代码:int六.实验结果及测试源代码:intmain(void)5tra32_Clock_Init.(9)delay_init(^25tra32_Clock_Init.(9)delay_init(^2};口己(^2t9€00);LED_Init();KEY_Init();d£lay_ms(300};IWDG_Init(4,625);LEDO=O;//延时初始化//串口初抬*//初始化与二ED建接的硬件接口//按键初始化//让人看得到灭//与分频数为砌'宣载值为与&溢8时间为置//点亮LEDOwhile(L)if(KEY_Scan(}=3}IWDG_Feed(};//如果WKJJP按下,则喂狗d£lay_ms(L0);在配置看门狗后,看到LED0不停的闪烁,如果WK_UP按键按下,就喂狗,只要WK_UP不停的按,看门狗就一直不会产生复位,保持LED0的常亮,一旦超过看门狗定溢出时间(Tout)还没按,那么将会导致程序重启,这将导致LED0熄灭一次。七.实验总结通过本次实验,我掌握了启动独立看门狗的步骤:1) 向IWDG_KR写入0X5555。2) 向IWDG_KR写入0XAAAA。3) 向IWDG_KR写入0XCCCC。通过上面3个步

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论