STM32中断程序(一个灯闪烁)

以下程序使用的开发板为"普中PZ6806L"
什么是中断?中断和轮询的区别?怎么使用中断?这些都是我们需要学习的内容。
下面是实战内容(以下为零基础教学为小白提供学习)
1.第一步先选择好自己使用的smt32的型号。
在这里插入图片描述
2将PC0设置为输出(我的板子PC0是LED),将PA0设置为EXTI0(我这里PA0是一个开关)你们需要根据自己的板子来设置对应的GPIO口。
在这里插入图片描述
3.将设置好的GPIO口PC0调至High(因为我的板子是低电平点亮),把PA0的设置为Pull-dow(下降沿触发)在这里插入图片描述
4.将RCC里的高速时钟调至Crystal模式。
在这里插入图片描述
5.将SYS里的Debug调至Serial Wire模式。
在这里插入图片描述
6.把中断打开(以上步骤不分前后)。
在这里插入图片描述
7.将时钟树设置好。
在这里插入图片描述
8.将存储路径和代码生成器设置好就可以点击GENERATE CODE生成代码了。
在这里插入图片描述
9.“KG0代表了PA0”(下面函数的意思)

#define KG0 HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)

GPIO输入检测函数
HAL_GPIO_ReadPin(GPIOx, GPIO_Pin);
GPIOx: GPIO端口,GPIOA~GPIOH
GPIO_Pin: 该端口对应的Pin脚数
#define  KG0     HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)//读取PA0的输入电平状态

在这里插入图片描述
10.下面是完成好的程序,把它下载进开发板就OK了(效果是按一下开关亮,按一下开关灭)

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)//中断回调函数
{
   if(KG0==1)//判断KG0是高电平还是低电平(1是高电平0是低电平)
  {
	  HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_0);//翻转PA0的电平状态
  }
}

在这里插入图片描述
恭喜你学会了一个使用中断的一个小程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值