嵌入式系统应用实验报告
姓名:学号:学院:专业:班级:指导教师:
f实验1、流水灯实验
11实验要求
编程控制实验板上LED灯轮流点亮、熄灭,中间间隔一定时间。
12原理分析
实验主要考察对STM32F10X系列单片机GPIO的输出操作。参阅数据手册可知,通过软件编程,GPIO可以配置成以下几种模式:◇输入浮空◇输入上拉◇输入下拉◇模拟输入◇开漏输出◇推挽式输出◇推挽式复用功能◇开漏式复用功能根据实验要求,应该首先将GPIO配置为推挽输出模式。
由原理图可知,单片机GPIO输出信号经过74HC244缓冲器,连接LED灯。由于74HC244的OE1和OE2都接地,为相同电平,故A端电平与Y端电平相同且LED灯共阳,所以,如果要点亮LED,GPIO应输出低电平。反之,LED灯熄灭。
13程序分析
软件方面,在程序启动时,调用SystemI
it函数(见附录1),对系统时钟等关键部分进行初始化,然后再对GPIO进行配置。
GPIO配置函数为SZ_STM32_LEDI
it(见附录2),函数中首先使能GPIO时钟:
RCC_APB2PeriphClockCmdGPIO_CLKLedENABLE然后配置GPIO输入输出模式:GPIO_I
itStructureGPIO_ModeGPIO_Mode_Out_PP;再配置GPIO端口翻转速度:
fGPIO_I
itStructureGPIO_SpeedGPIO_Speed_50MHz;最后将配置好的参数写入寄存器,初始化完成:GPIO_I
itGPIO_PORTLedGPIO_I
itStructure。初始化完成后,程序循环点亮一个LED并熄灭其他LED,中间通过Delay函数进行延时,达到流水灯的效果(程序完整代码见附录3)。实验程序流程图如下:
硬件方面,根据实验指南,将实验板做如下连接:
13实验结果
f实验二、按键实验
21实验要求
利用STM32读取外部按键状态,按键按下一次产生一次外部中断在中断处理函数中使按键所对应的灯亮起。
22原理分析
实验主要考察对STM32F10X系列单片机GPIO外部中断功能的使用。STM32F107VCT一共有5组GPIO,分别是PA150、PB150、PC150、PD150、PE150。STM32的所有GPIO都可以作为中断输入源,单片机通过复用的方式使其对处理器来说来自GPIO的一共有16个中断Px150。具体实现是PA0、PB0、PC0、PD0和PE0共享一个GPIO中断;PA1、PB1、PC1、PD1和PE1共享一个GPIO中断;……PA15、PB15、PC15、PD15和PE15共享一个GPIO中断。以下图片为以EXTI0为例的外部中断事件线路映像:
要产生中断,必须先配置好并使能中断线。根据需要的边沿检测设置2个触发寄存器,同时在中断屏蔽寄存器的相应位写‘1’允许中断请求。当外部中断线上发生了期待的边沿时,将产生一个中断请求,对应的挂起位也随之被置‘1’。在r