借助cubemx与hal库对stm32单片机进行编程之exti

我们在cubemx上首先配置我们需要的设置,首先对hse高速时钟配置为晶振/陶瓷发生震荡模式

然后再对我们的debug配置为serial wire, 这里出现了system wake up的红字提醒,不太清楚为什么。

  

 然后再配置我们需要的引脚

 PB0与PB1,PB5配置为推挽输出模式,用来控制小灯的亮灭,低电平点亮。

PA0与PC13配置为EXTI模式,原理图中,PA0和PC13分别连接了两个按键key1与key2,当有按键按下时,PA0或PC13电平发生变化,中断事件发生。

 既然配置了外部中断我们就要再NVIC处配置我们的中断,我偶们选择了分组5,把两个外部中断的优先级配置为抢占优先级7级。

接下来配置时钟

 直接把速度拉满就行了,这里做大72MHZ,那我们就拉到这么多。

然后继续配置一些杂项

 这里取一个项目名称,别忘了选择MDK-ARM选项

 这里我们选择只拷贝部分必要库和生成外设初始化文件,

就可以生成代码啦 

 第一行代码是自动生成的,其作用是用来检测是否是这个引脚引起的中断,因为从10到15引脚共用了一个中断句柄(中断服务函数),所以我们必须检测是否是我们需要的引脚引起的,然后用的是hal库的IRQHandler函数,一个引脚号参数,然后我们这里用了对gpio操作的写函数,对GPIOB进行置0操作(点亮led灯), 这个函数需要三个参数,第一个是GPIO*参数,第二个是引脚数参数,第三个是置0枚举变量。最后清除中断标志位,需要一个引脚号参数,否则将会一直执行中断服务函数。

那么最后的效果就是,当PA0连接的按键被按下时,触发中断事件,进入中断服务函数把小灯置1(关闭);当PC13连接的按键被按下时,触发中断事件,进入中断服务函数把小灯置0(点亮)。该小小小项目用到了led灯,按键,外部中断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

abgreat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值