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

下载本文档

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

文档简介

1、嵌入式系统试验报告学 号: 姓 名: 班 级:13电子信息工程 指导老师: 苏州高校 电子信息学院2016年12月试验一:一个灯的闪烁1、 试验要求实现PF6-10端口所连接的任意一个LED灯点亮2、电路原理图图1 LED灯硬件连接图3、软件分析RCC_Configuration();/* 配置系统时钟 */ GPIO_Configuration();/* 配置GPIO IO口初始化 */ for(;) GPIOF->ODR = 0xfcff; /* PF8=0 -> 点亮D3 */Delay(1000000);GPIOF->ODR = 0xffff; /* PF8=1 -&

2、gt; 熄灭D3 */Delay(1000000);4、试验现象通过对GPIOF8的操作,可以使LED3闪烁5、 试验总结这是第一次使用STM32开发板,主要内容是对IO端口进行配置,点亮与IO端口相连接的LED灯,闪烁周期为2S。通过本试验对STM32开发板的硬件原理有了初步了解。试验二:流水灯1、试验要求实现PF6-10端口所连接的5个LED灯顺次亮灭2、电路原理图图1 流水灯硬件连接图3、软件分析欢迎下载int main(void) RCC_Configuration();/* 配置系统时钟 */ GPIO_Configuration();/* 配置GPIO IO口初始化 */ for(

3、;) GPIOF->ODR = 0xffbf; /* PF6=0 -> 点亮LED1 */ Delay(5000000);GPIOF->ODR = 0xff7f; /* PF7=0 -> 点亮LED2 */Delay(5000000);GPIOF->ODR = 0xfeff; /* PF8=0 -> 点亮LED3 */Delay(5000000);GPIOF->ODR = 0xfdff; /* PF9=0 -> 点亮LED4 */Delay(5000000); GPIOF->ODR = 0xfbff; /* PF10=0 -> 点亮L

4、ED5 */ 4、试验现象LED1LED5依次点亮,亮灭的时间间隔都为1S。5、试验总结本次试验对STM32开发板的GPIO端口进行进一步学习,通过程序可以实现流水灯的闪烁。试验三:单级外部中断1、试验要求按下某个按键,触发中断,中断服务程序转变LED灯状态2、电路原理图图3 SW1硬件原理图3、软件分析int main() RCC_Configuration(); /* 配置系统时钟 */ GPIO_Configuration(); /* IO口初始化 */GPIO_Write(GPIOF,0xffff); /* 全灭 */Delay(5000); while(1) if(GPIO_Read

5、InputDataBit(GPIOA, GPIO_Pin_8)=0) /* 假如SW1 PA8=0 */GPIO_SetBits(GPIOF, GPIO_Pin_6); /* LED1点亮 */Delay(0x1FFFFF);GPIO_ResetBits(GPIOF, GPIO_Pin_6); /* LED1 熄灭 */Delay(0x1FFFFF);4、试验现象原来5个LED灯都处于熄灭状态,按下SW1,触发中断程序,LED1点亮。5、试验总结通过本次试验,可以对某一状态通过外部中断,转变其当前状态。试验四:多中断嵌套1、试验要求按下某个按键,触发中断,中断服务程序转变LED灯状态2、电路原

6、理图图4 SW1,SW2,SW3硬件原理图3、软件分析NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel; /设定中断源为PA0NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; /中断占优先级为0NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQChannel; /设定中断源为PD3NVIC_InitStructure.NVIC_IRQCh

7、annelPreemptionPriority = 1; /中断占优先级为1NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel; /设定中断源为PA8NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; /中断占优先级为2void EXTI0_IRQHandler(void)int i=0;if(EXTI_GetITStatus(EXTI_Line0) != RESET)for(i=0;i<10;i+)GPIO_Write(GPIOF,0xffff);GPIO_Set

8、Bits(GPIOF, GPIO_Pin_6);/* LED1 点亮 */Delay(0x5fFFFF);GPIO_ResetBits(GPIOF, GPIO_Pin_6);/* LED1 熄灭 */ Delay(0x5fFFFF);EXTI_ClearITPendingBit(EXTI_Line0); void EXTI3_IRQHandler(void)int i=0;if(EXTI_GetITStatus(EXTI_Line3) != RESET) for(i=0;i<10;i+) GPIO_Write(GPIOF,0xffff);GPIO_SetBits(GPIOF, GPIO_

9、Pin_7);/* LED2 点亮 */Delay(0x5fFFFF);GPIO_ResetBits(GPIOF, GPIO_Pin_7);/* LED2 熄灭 */Delay(0x5fFFFF);EXTI_ClearITPendingBit(EXTI_Line3);void EXTI9_5_IRQHandler(void)int i=0;if(EXTI_GetITStatus(EXTI_Line8) != RESET)for(i=0;i<10;i+)GPIO_Write(GPIOF,0xffff);GPIO_SetBits(GPIOF, GPIO_Pin_8);/* LED3 点亮 *

10、/Delay(0x5fFFFF);GPIO_ResetBits(GPIOF, GPIO_Pin_8);/* LED3 熄灭 */ Delay(0x5fFFFF);EXTI_ClearITPendingBit(EXTI_Line8);4、试验现象中断优先级从高到低依次为:SW3,SW2,SW1原来5个LED灯都处于熄灭状态,按下SW1,LED3应当闪烁10次,当其闪烁5次后按下SW2,LED2也应当闪烁10次,当其闪烁4次后按下SW3,LED1也应当闪烁10次,则当LED1闪烁完10次后,LED2连续闪烁6次,之后LED1连续闪烁5次。5、试验总结通过本次试验,可以对LED状态实行中断嵌套,由以

11、上试验现象,得出以下结论:高中断优先级可以打断低优先级,中断系统正在执行一个中断服务时,有另一个优先级更高的中断提出中断恳求,这时会临时终止当前正在执行的级别较低的中断源的服务程序,去处理级别更高的中断源,待处理完毕,再返回到被中断了的中断服务程序连续执行,反之,低中断优先级不行以打断高优先级。试验五:TIM2的基本应用1、试验要求TIM2定时器将LED灯定时点亮和熄灭肯定的时间2、电路原理图3、软件分析TIM_Cmd(TIM2, ENABLE); /* TIM2 enable counter */ TIM_TimeBaseStructure.TIM_Period = 1999; TIM_Ti

12、meBaseStructure.TIM_Prescaler = 35999; /定时时间为1svoid TIM2_IRQHandler(void)TIM_ClearITPendingBit(TIM2, TIM_IT_Update); GPIO_WriteBit(GPIOF, GPIO_Pin_6,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOF, GPIO_Pin_6); 4、试验现象LED1灯依据1S的定时时间不断闪烁5、试验总结通过本次试验,可以实现对LED灯进行定时把握其闪烁,而不需要延时函数把握了,定时时间较为精准。试验六:TIM2,TIM3,TIM

13、4多定时器的应用1、试验要求利用TIM2,TIM3,TIM4定时器使LED灯以不同的频率闪烁2、电路原理图3、软件分析NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStructure.NV

14、IC_IRQChannel = TIM4_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;此处比上一个试验增加了2个定时器,同时又增加了一个优先级4、试验现象中断优先级从高到低依次为:TIM2,TIM3,TIM4首先LED1以1S的定时时间闪烁5次,之后LED2以2S的定时时间闪烁5次,最终LED3以3S的定时时间闪烁5次5、试验总结利用定时器可以同时使LED灯依据不同的频率闪烁,但是为了现象明显,可以加一个优先级,分别观看现象。试验七:串口USART1读取CPU的ID号1、试验要求通过USART1读取 C

15、PU 的 96 bit ID2、电路原理图图 开发板USART原理图3、软件分析void Get_ChipID(void)/*猎取芯片ID */ChipUniqueID0 = *( u32 *)(0X1FFFF7F0); /* 高字节 */ChipUniqueID1 = *( u32 *)(0X1FFFF7EC); ChipUniqueID2 = *( u32 *)(0X1FFFF7E8); /* 低字节 */void USART_Configuration(void) USART_InitTypeDef USART_InitStructure; USART_InitStructure.USA

16、RT_BaudRate = 115200; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode

17、= USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); USART_ITConfig(USART1, USART_IT_TXE, ENABLE); USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); USART_ClearFlag(USART1, USART_FLAG_TC); USART_Cmd(USART1, ENABLE);/* Enable USART1 */4、试验现象PA9连接的是USART1 Tx,PA10连接的是USART1 Rx,再通

18、过串口调试助手就可以在电脑上面显示出CPU的ID以及flash容量大小。5、试验总结本次试验实现了串口和PC机的传输,可以通过USART1将CPU的ID在电脑上显示出来。试验八:异步通信USART2的重映射1、 试验要求实现异步通信USART2的重映射,将数据传送到PC机上2、电路原理图图 开发板USART原理图3、软件分析void GPIO_Configuration() /* IO口初始化 */ GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; /* USART2 Tx -> PD05 */ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;/* PD05 -> JP7 WR */ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; /* USART2 Rx -> PD06

温馨提示

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

评论

0/150

提交评论