外部中断及脉冲计数实验

一、实验目的:

  1.按键作为外部中断输入控制LED(4个按键分别配置成不同的中断线,控制不同的LED)

  2.实现状态监测及脉冲计数(EXTI_Status、pulse)

二、实验器材:

安装有keli和STM32软件的笔记本或电脑。

三、实验内容:

使用keli和STM32软件实现外部中断,通过按键控制LED灯实验

    1.使用STM32配置STM32F407芯片

2.将STM32生成的main.c文件在keil软件中修改,编译。

3.设置符合芯片的各项设置,烧入硬件芯片。

4.硬件板插入12v电,打开开关。实现按下按键LED灯亮起。

四、实验过程及结果截图

(一)新建STM32文件。

1.选择STM32F407IGT6芯片。

2.查找芯片核心板模块,输出低电平有效。

3.点击对应的引脚,选择GPIO_output,选择要外部中断引脚GPIO_EXTI

4.设置优先级。

外部中断及脉冲计数实验_第1张图片

5. 配置项目,输入项目名称,Application Structure 选择Basic,IDE选择MDK 5

(二)创建完成并用keil打开。

1.打开main.c 

2.在main函数里面找到/*USER CODE BEGIN 4*/while循环,在循环体内部外部中断的代码

Void HAL_GPIO_EXTI_Ca;;back(uint16_t GPIO_Pin)

{ if(GPIO_Pin&GPIO_PIN_0){HAL_GPIO_TogglePin(GPIOF_GPIO_PIN_9);

EXTI_Status=1;

Pulsel++;

}

if(GPIO_Pin&GPIO_PIN_2){HAL_GPIO_TogglePin(GPIOF_GPIO_PIN_10);

EXTI_Status=1;

Pulse2++;

if(GPIO_Pin&GPIO_PIN_0){HAL_GPIO_TogglePin(GPIOF_GPIO_PIN_14);

EXTI_Status=1;

Puls3l++;

if(GPIO_Pin&GPIO_PIN_0){HAL_GPIO_TogglePin(GPIOF_GPIO_PIN_15);

EXTI_Status=1;

Pulse4++;

}

  1. 在main函数里面找到/*USER CODE BEGIN PD*/

加uint8_t EXTI_STATUS=1;

uint32_t pulse1,pulse2,pulse3,pulse4;

  1. 实验结果

    

外部中断及脉冲计数实验_第2张图片

按右面两个按键后对应灯熄灭,

外部中断及脉冲计数实验_第3张图片

再次点击亮起。

  

  • 心得体会

在本次实验中,我学习了外部中断和脉冲计数的相关知识,并通过实际操作进行了验证。以下是在实验中,我学会了如何设置外部中断的触发方式、优先级等参数。这些参数的设置对于正确使用外部中断非常重要,需要根据实际需求进行合理的配置,掌握外部中断的设置方法。在实验中,我学会了如何编写中断服务程序,包括初始化中断、处理中断事件等步骤。

理解脉冲计数的原理:脉冲计数是一种通过对脉冲信号进行计数来实现测量的方法。在实验中,我学习了如何使用外部中断来对脉冲信号进行计数,并实现了一个简单的脉冲计数器。通过实验,我深刻理解了脉冲计数的原理和应用。

通过本次实验,我深刻认识到实践操作的重要性。只有通过实际操作,才能真正理解和掌握知识。在实验过程中,我遇到了一些问题,但通过不断尝试和调试,最终解决了问题,并取得了预期的结果。总的来说,本次实验让我对外部中断和脉冲计数有了更深入的了解,并提高了我的实际操作能力。通过实验,我不仅掌握了相关理论知识,还培养了解决问题的能力和团队合作精神。我相信这些知识和经验对我的学习和工作都会有很大的帮助。

你可能感兴趣的:(嵌入式,stm32,嵌入式硬件)