您好,欢迎来到纷纭教育。
搜索
您的当前位置:首页流水灯实验报告

流水灯实验报告

来源:纷纭教育
流水灯实验报告

ARM系统体系结构及接口技术

实验名称:实验一 GPIO的应用

专业班级:电子114姓名:沈拓学号:2011013906实验日期:2014.3.4

一、 实验目的

1. 了解STM32的GPIO的寄存器配置方法;

2. 熟练应用库函数GPIO的操作;

3. 学会在实验平台中对代码的识别、分析、修改和调试。

4、掌握STM32处理器的基本原理和调试程序,并且能够编写简单的程序

二、 实验内容

1、 验证流水灯。

2、 将实验结果用库函数调用方法实现

3、 用按键Key改变流水灯的流水速度,按键按下流水灯在经过一轮流水之后改变流水速度

4、 用按键Key改变流水灯的流水速度,按键按下流水灯立刻改变流水速度

三、 实验结果

1)按键按下流水灯在经过一轮流水之后改变流水速度

1、 主要源代码

主程序:

#include \"stm32f10x_lib.h\"

extern char i;

extern u16 t;

int main(void)

{

#ifdef DEBUG

debug();

#endif

RCC_Configuration();

SysTick_Configuration();

NVIC_Configuration();

GPIO_Configuration();

GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource9);

EXTI_InitStructure.EXTI_Line = EXTI_Line9;

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;

EXTI_InitStructure.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStructure);

for(;;)

{

if (i)

{

t=800;

}

else

{

t=200;

}

GPIO_Write(GPIOC,0x0040);

Delay(t);

GPIO_Write(GPIOC,0x0080);

Delay(t);

GPIO_Write(GPIOC,0x0100);

Delay(t);

GPIO_Write(GPIOC,0x0200);

Delay(t);

}

}

按键部分

#include \"stm32f10x_it.h\"

vu32 TimingDelay = 0;

extern void Delay(vu32 nTime);

char i=0;

u16 t;

void EXTI9_5_IRQHandler(void)

{

if(EXTI_GetITStatus(EXTI_Line9) != RESET)//中断部分

{

i=~i;

EXTI_ClearITPendingBit(EXTI_Line9);

}

}

2)按键按下流水灯立刻改变流水速度

1、部分主要源程序

主程序

#include \"stm32f10x_lib.h\"

extern char i;

extern u16 t;

int main(void)

{

#ifdef DEBUG

debug();

#endif

RCC_Configuration();

SysTick_Configuration();

NVIC_Configuration();

GPIO_Configuration();

GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource9);

EXTI_InitStructure.EXTI_Line = EXTI_Line9;

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;

EXTI_InitStructure.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStructure);

for(;;)

{

if (i)

{

t=800;

}

else

{

t=200;

}

GPIO_Write(GPIOC,0x0040);

Delay(t);

GPIO_Write(GPIOC,0x0080);

Delay(t);

GPIO_Write(GPIOC,0x0100);

Delay(t);

GPIO_Write(GPIOC,0x0200);

Delay(t);

}

}

按键部分

#include \"stm32f10x_it.h\"

vu32 TimingDelay = 0;

extern void Delay(vu32 nTime);

char i=0;

u16 t;

void EXTI9_5_IRQHandler(void)

{

if(EXTI_GetITStatus(EXTI_Line9) != RESET)//中断部分

{

for(;;)

{

if (i)

{

t=800;

}

else

{

t=200;

}

i=~i;

EXTI_ClearITPendingBit(EXTI_Line9);

}

}

2、 运行结果

验证符合实验要求,当按键按下时,流水灯速度立即改变。

四、 实验总结

这是本门课本学期的第一次实验,一开始虽然老师讲了很多理论知识,但是等自己动起手了就不知道该如何下手,只能靠自己不断摸索中找感觉,加上老师的提醒,最终顺利完成了实验。

总结本次实验,我认为学习只要还是得靠自己自学,老师讲的东西毕竟有限,有些东西还是靠自己不断实践研究出来的,总之,这次实验中我还是收获了不少东西。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- fenyunshixun.cn 版权所有 湘ICP备2023022495号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务