STM32学习笔记(九)外部中断实验

本文详细介绍了如何使用STM32F103ZET6外设进行外部中断实验,包括原理图解析、中断配置步骤、关键代码段和实际操作结果。通过EXTI控制LED灯的亮灭,展示了中断服务函数的使用。适合STM32库函数学习者入门实践。
摘要由CSDN通过智能技术生成

STM32F103ZET6之外部中断实验



前言

对于STM32的学习可分为3个版本。
1.寄存器版本
2.库函数版本
3.HAL库版本
由于个人原因,选择库函数版本来进行STM32的学习。


提示:软件安装等问题,不进行讲解!!!

一、原理图

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二、外部中断配置步骤

在这里插入图片描述

三、程序源码

1.exti.h

代码如下:

#ifndef __EXTI_H
#define __EXTI_H

void EXTIX_Init(void);//步骤1-5

#endif

2.exti.c

代码如下:

#include "exti.h"
#include "led.h"
#include "key.h"
#include "usart.h"
#include "beep.h"
#include "delay.h"

void EXTIX_Init()
{
	EXTI_InitTypeDef EXTI_Initstr;
	NVIC_InitTypeDef NVIC_Initstr;
	KEY_Init();//初始化IO
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//开启IO口时钟复用
	GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource4);//设置IO口与中断线的映射关系
	
	EXTI_Initstr.EXTI_Line=EXTI_Line4;
	EXTI_Initstr.EXTI_LineCmd=ENABLE;
	EXTI_Initstr.EXTI_Mode=EXTI_Mode_Interrupt;
	EXTI_Initstr.EXTI_Trigger=EXTI_Trigger_Falling;
	EXTI_Init(&EXTI_Initstr);//初始化线上中断,设置触发条件等
	
	NVIC_Initstr.NVIC_IRQChannel=EXTI4_IRQn;
	NVIC_Initstr.NVIC_IRQChannelCmd=ENABLE;
	NVIC_Initstr.NVIC_IRQChannelPreemptionPriority=2;
	NVIC_Initstr.NVIC_IRQChannelSubPriority=2;
	NVIC_Init(&NVIC_Initstr);//配置中断分组
}
void EXTI4_IRQHandler(void)
{
	delay_ms(10);
	if(KEY0==0)
	{
		LED1=!LED1;
	}
	EXTI_ClearITPendingBit(EXTI_Line4);
}

3.main.c

代码如下:

#include "stm32f10x.h"
#include "led.h"
#include "delay.h"
#include "beep.h"
#include "key.h"
#include "usart.h"
#include "exti.h"


int main(void)
{
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
	delay_init();
    LED_Init();
	Beep_Init();
	KEY_Init();
	uart_init(115200);
	EXTIX_Init();
	while(1)
	{
		printf("OK\r\n");
		delay_ms(1000);
	}
		
}

四、实验结果

当按下KEY0按键,控制LED1亮灭。(中断服务函数)


总结

时间过得真快,大三上学期已经过去,即使放寒假了,但是还是感觉自己每天特别忙,一是要学习stm32,二就是要准备考研了,感觉大三和大一,大二真的不一样了,半点打篮球,打游戏的欲望都没有了,生怕自己的时间流逝一般,总之希望2022年考研能够成功上岸!加油

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小白正在努力

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

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

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

打赏作者

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

抵扣说明:

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

余额充值