嵌入式系统实验报告77984.docVIP

  • 3
  • 0
  • 约6.64千字
  • 约 11页
  • 2020-03-08 发布于广东
  • 举报
PAGE PAGE 1 嵌入式系统实验报告 学 号: 姓 名: 班 级:13电子信息工程 指导老师: 苏州大学 电子信息学院 2016年12月 实验一:一个灯的闪烁 实验要求 实现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 -- 熄灭D3 */ Delay(1000000); 4、实验现象 通过对GPIOF8的操作,可以使LED3闪烁 实验总结 这是第一次使用STM32开发板,主要内容是对IO端口进行配置,点亮与IO端口相连接的LED灯,闪烁周期为2S。通过本实验对STM32开发板的硬件原理有了初步了解。 实验二:流水灯 1、实验要求 实现PF6-10端口所连接的5个LED灯顺次亮灭 2、电路原理图 图1 流水灯硬件连接图 3、软件分析 int main(void) { RCC_Configuration();/* 配置系统时钟 */ GPIO_Configuration();/* 配置GPIO IO口初始化 */ for(;;) { 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 -- 点亮LED5 */ } } 4、实验现象 LED1~LED5依次点亮,亮灭的时间间隔都为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_ReadInputDataBit(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、电路原理图 图4 SW1,SW2,SW3硬件原理图 3、软件分析 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel; //设定中断源为PA0 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriori

文档评论(0)

1亿VIP精品文档

相关文档