你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32中断原理

[复制链接]
flyingstar 发布时间:2025-10-10 19:29
1.搭载STM32的开发环境
1.安装jdk
2.安装STM32CubeMX
安装结果如下

115439zbjz3k7w7jfjwvjw.png

1.配置STM32CubeMX:安装HAL库

(1)选择自己想要安装的HAL库版本号

(2)下载HAL库,HAL库环境安装完成

安装结果如下

115439asjnh1amata0410v.png

3.安装MDK5
2.利用HAL库新建keil5工程
1.STM32CubeMX建项目
1.选择的单片机型号以及点击开始工程项目

2.配置时钟,进入上面的RCC,有两个时钟,一个是HSE和LSE,将HSE那里设为Crystal/Ceramic Resonator

3.进入GPIO选择引脚 并且配置其工作模式:

选择了三个GPIO:PA0,PA1,PA2设置为了GPIO_output;以及一个PB5设置为外部中断源:

4.在GPIO界面里面点击PB5,对PB5的进行中断配置:

5.在CLK Configuration中,进行时钟配置

6.进入Project Manager,进行工程设置点击生成工程与代码:

2.keil工程编写
1.点击刚刚生成的keil5工程文件,双击main.c文件,在main函数上方进行编写一个中断函数HAL_GPIO_EXTI_Callback()以及自定义一个中断的标识符号flag

输入以下代码

uint32_t flag=0;
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){
if(GPIO_Pin == SWITCH_Pin){
GPIO_PinState pinState = HAL_GPIO_ReadPin(SWITCH_GPIO_Port,SWITCH_Pin);
if(pinState==GPIO_PIN_SET)
{
flag=1;
}

  else if(pinState==GPIO_PIN_RESET)
  {
      flag=0;
  }
  }


}
2.在main函数里的while(1)里面写上如下代码:

if(flag1)
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_SET);
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_SET);
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_RESET);
HAL_Delay(1000);
}
else if(flag0)
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_SET);
}
3.程序烧录
实验结果如下

115439t6vu7tc0tj1p76tt.png

(三)proteus仿真
1.搭建固定项目
1.新建工程

结果如下

115438adjjxj8jndhp8hii.png

2.绘制系统电路
1.选择发光二极管,选择红、黄、绿三种颜色的led

2.分别拖入原理框内,并与对应的端口相连接

3.分别给3个LED配置电源

4.将开关拖入原理图内,与设置的外部中断端口相连,并配置电源

结果如下

115438uf67ha7qk5ee6fef.png

3.仿真运行
选对晶振频率,接入电网,开始仿真

结果如下

115437jxcgjojgvcgozjxj.png

收藏 评论0 发布时间:2025-10-10 19:29

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版