您的位置:首页 > 游戏 > 手游 > 站长素材网app免费下载_想做跨境电商_德阳网站seo_网络营销推广公司名称

站长素材网app免费下载_想做跨境电商_德阳网站seo_网络营销推广公司名称

2024/12/22 19:21:10 来源:https://blog.csdn.net/L_1068/article/details/144566543  浏览:    关键词:站长素材网app免费下载_想做跨境电商_德阳网站seo_网络营销推广公司名称
站长素材网app免费下载_想做跨境电商_德阳网站seo_网络营销推广公司名称

 1、复制03-流水灯项目,重命名06-按键点灯(中断法)

        在\Drivers\BSP目录下创建一个文件夹exti,在该文件夹下,创建两个文件exti.c和exti.h文件,并且把这两个文件加载到项目中,打开项目工程文件

         加载完新建的文件之后,找到exti.c文件双击打开,写入代码:

#include "sys.h"
#include "exti.h"

编译项目,编译通过,找到exti.h文件,双击打开,写入代码:

#ifndef __EXTI_H__
#define __EXTI_H__

#endif

2、代码

 exti.c

#include "sys.h"
#include "exti.h"
#include "delay.h"
#include "led.h"void exti_init(void)
{//使能GPIO时钟GPIO_InitTypeDef gpio_initstruct;//定义一个结构体gpio_initstruct//打开时钟-使能GPIO时钟__HAL_RCC_GPIOA_CLK_ENABLE();//设置GPIO输入模式//设置AFIO(开启时钟,IO口映射)//设置EXTI(屏蔽,上/下沿)//调用GPIO初始化函数gpio_initstruct.Mode = GPIO_MODE_IT_FALLING;//下降沿输出//结构体函数的四种类型,引脚模式、引脚、引脚上拉下拉、引脚速度gpio_initstruct.Pin = GPIO_PIN_0;//LED1对应的引脚gpio_initstruct.Pull = GPIO_PULLUP;//上拉HAL_GPIO_Init(GPIOA,&gpio_initstruct);//设置NVIC(优先级分组,设置优先级,使能中断)HAL_NVIC_SetPriority(EXTI0_IRQn,2,0);HAL_NVIC_EnableIRQ(EXTI0_IRQn);}
//设置中断服务函数
void EXTI0_IRQHandler(void)
{HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
}
//回调函数
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{delay_ms(20);if(GPIO_Pin == GPIO_PIN_0){if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0) == GPIO_PIN_RESET)led1_Toggle();}
}

 在设置优先级分组进入函数

把这里的4改成2,优先级分组只需要设置一次

exti.h

#ifndef __EXTI_H__
#define __EXTI_H__void exti_init(void);#endif

main.c

#include "sys.h"
#include "delay.h"
#include "led.h"
#include "exti.h"int main(void)
{HAL_Init();                         /* 初始化HAL库 */stm32_clock_init(RCC_PLL_MUL9); /* 设置时钟, 72Mhz */led_init();//初始化led灯exti_init();while(1){ led2_OFF();delay_ms(500);led2_ON();delay_ms(500);}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com