HAL库(STM32CubeMX)之外部中断(STM32F103C8T6)

这篇具有很好参考价值的文章主要介绍了HAL库(STM32CubeMX)之外部中断(STM32F103C8T6)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录

HAL库(STM32CubeMX)——ADC学习总结(包含单次/连续模式下的轮询/中断/DMA)(蓝桥杯STM32G431RBT6)

HAL库(STM32CubeMX)——DAC学习(STM32G431RBT6)

HAL库(STM32CubeMX)——USART配置(中断接收/STM32G431RBT6)

HAL库(STM32CubeMX)——基本定时器、PWM、输入捕获、输出比较、互补式PWM等综合学习(STM32G431RBT6)

stm32下的IIC实现EEPROM代码-stm32G431RBT6(蓝桥杯嵌入式)

stm32f103c6t6下的HAL库搭建三种低功耗模式及实战分析(stm32通用)

HAL库(STM32CubeMX)之看门狗学习及实操(STM32F767IGTX)



外部中断配置

配置IO口为外部中断输入源
hal库外部中断配置,蓝桥杯STM32G4及HAL库学习,stm32,单片机,嵌入式硬件
在IO设置中配置好触发方式和默认拉低或拉高
hal库外部中断配置,蓝桥杯STM32G4及HAL库学习,stm32,单片机,嵌入式硬件
在NVIC中使能外部中断,并分配优先级。hal库外部中断配置,蓝桥杯STM32G4及HAL库学习,stm32,单片机,嵌入式硬件
实际的中断执行函数:
hal库外部中断配置,蓝桥杯STM32G4及HAL库学习,stm32,单片机,嵌入式硬件
和之前的一样,还是存在中断回调函数:
hal库外部中断配置,蓝桥杯STM32G4及HAL库学习,stm32,单片机,嵌入式硬件
仍然是weak定义的,可以自己重新定义编写该函数
这里的函数名字有些奇怪:EXTI15_10_IRQHandler
使能中断时:
hal库外部中断配置,蓝桥杯STM32G4及HAL库学习,stm32,单片机,嵌入式硬件
像10-15这几个外部中断线捆在一起
hal库外部中断配置,蓝桥杯STM32G4及HAL库学习,stm32,单片机,嵌入式硬件
如图,只有0-4是单独的

标准库

参考:【STM32标准库】【基础知识】外部中断

void GPIO(void)
{
	GPIO_InitTypeDef GPIO_Initstruct;						//声明GPIO初始化结构体
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);	//打开GPIO时钟
	GPIO_Initstruct.GPIO_Mode=GPIO_Mode_IN;					//输入模式
	GPIO_Initstruct.GPIO_OType=GPIO_OType_OD;				//开漏输入模式
	GPIO_Initstruct.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;			//引脚0,1
	GPIO_Initstruct.GPIO_PuPd=GPIO_PuPd_UP;					//上拉模式
	GPIO_Initstruct.GPIO_Speed=GPIO_High_Speed;				//高速模式
	GPIO_Init(GPIOB,&GPIO_Initstruct);						//初始化GPIO
}
//外部中断初始化
void EXTI_init(void)
{
	EXTI_InitTypeDef EXTI_Initstruct;								//创建外部中断初始化结构体
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);			//打开时钟
	SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB,EXTI_PinSource0);	//将GPIO与外部中断连接
	SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB,EXTI_PinSource1);	//同上
	EXTI_Initstruct.EXTI_Line=EXTI_Line0|EXTI_Line1;							//配置的是外部中断0,1
	EXTI_Initstruct.EXTI_LineCmd=ENABLE;							//使能
	EXTI_Initstruct.EXTI_Mode=EXTI_Mode_Interrupt;					//选择中断模式
	EXTI_Initstruct.EXTI_Trigger=EXTI_Trigger_Falling;				//下降沿模式
	EXTI_Init(&EXTI_Initstruct);									//初始化外部中断0,1
}
//配置NVIC
void EXTI_NVIC(void)
{
	NVIC_InitTypeDef NVIC_Initstruct;						//声明NVIC初始化结构体
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);			//选定NVIC分组
	NVIC_Initstruct.NVIC_IRQChannel=EXTI0_IRQn;				//配置的外部中断0
	NVIC_Initstruct.NVIC_IRQChannelCmd=ENABLE;				//使能
	NVIC_Initstruct.NVIC_IRQChannelPreemptionPriority=1;	//主优先级
	NVIC_Initstruct.NVIC_IRQChannelSubPriority=1;			//副优先级
	NVIC_Init(&NVIC_Initstruct);							//初始化外部中断0的NVIC
	NVIC_Initstruct.NVIC_IRQChannel=EXTI1_IRQn;				//配置的外部中断1
	NVIC_Initstruct.NVIC_IRQChannelCmd=ENABLE;				//同上
	NVIC_Initstruct.NVIC_IRQChannelPreemptionPriority=1;	//同上
	NVIC_Initstruct.NVIC_IRQChannelSubPriority=2;			//同上
	NVIC_Init(&NVIC_Initstruct);							//初始化外部中断1的NVIC
}
//初始化函数
void Init(void)
{
	GPIO();
	EXTI_init();
	EXTI_NVIC();
}
//外部中断0的中断服务函数
void EXTI0_IRQHandler(void)
{
	if(EXTI_GetITStatus(EXTI_Line0)!=RESET)			//标志位被值位(产生中断)
  	{
  		/*需要操作的内容*/
  		EXTI_ClearITPendingBit(EXTI_Line0);			//清除中断标志位
  	}
}
//外部中断1的中断服务函数
void EXTI1_IRQHandler(void)
{
	if(EXTI_GetITStatus(EXTI_Line1)!=RESET)			//标志位被值位(产生中断)
  	{
  		/*需要操作的内容*/
  		EXTI_ClearITPendingBit(EXTI_Line1);			//清除中断标志位
  	}
}

标准库还是需要自己明白许多外部中断线与IO口,时钟线对应关系的
不同IO时钟对应的总线:(简单利用HAL库找一下,具体的还要看stm32的参考手册)
hal库外部中断配置,蓝桥杯STM32G4及HAL库学习,stm32,单片机,嵌入式硬件
参考stm32参考手册:
hal库外部中断配置,蓝桥杯STM32G4及HAL库学习,stm32,单片机,嵌入式硬件文章来源地址https://www.toymoban.com/news/detail-742099.html

到了这里,关于HAL库(STM32CubeMX)之外部中断(STM32F103C8T6)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32F103C8T6的USART串口通信及中断

    一、串口通信 (一)串口协议和RS-232标准 1.串口通信协议 串口通信是指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。 串口通信协议是指规定了数据包的内容,内容包含了起始位、主体

    2024年02月02日
    浏览(59)
  • STM32F103C8T6(HAL库函数 - 内部Flash操作)

    STM32F103C8T6 内部Flash 为 64KB,本次将对他多余空间进行读写。 数据手册下载 STM32F103x8/STM32F103xB 数据手册 包含Flash Memory Page分布 STM32F设备命名 设备容量类型 中容量类型 内部空间介绍 Flash Memory 从 0x0800 0000 ~ 0x0801 FFFF 页分布1K每页, STM32F103C8T6 只有64KByte, 那就是64页 使用 controll

    2024年01月21日
    浏览(24)
  • STM32 HAL库 CubeMX配置 定时器学习 F103C8T6

    开发板: STM32F103C8T6最小系统板 编译环境: Keil5 MDK 辅助软件: STM32 CubeMX 课程教学: 基于正点原子HAL库学习教程 其余配件: 江科大STM32配件包 和 示波器一台 备注:  因为这块开发板没有基本定时器,所以本文也 没有基本定时器的内容             本文1.3和2.1部分的

    2024年04月26日
    浏览(15)
  • [STM32F103C8T6]W5500+Modbus TCP(HAL库)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 本章节是博主学习Modbus TCP所写的一篇文章 Modbus TCP是Modbus的一个分支,主要用到网口通信的,在工业上也用的很频繁,我们公司最近的项目就是用的W5500+modbus TCP来和PC端的上位机通信和交互的。虽然这个

    2024年02月15日
    浏览(15)
  • WS2812B彩灯 STM32HAL库开发:PWM+DMA(stm32f103c8t6)

    目录 一、摘要 二、WS2812B介绍 三、CUBEMX配置 四、程序介绍(KEIL编译器) 五、数据手册         1、本文使用示例单片机型号为 stm32f103c8t6 ,RGB型号为 WS2812B ;          2、主要实现功能是实现用 PWM+DMA 使RGB_LED亮起不同颜色的灯光;         3、目的:简单调通该型号

    2024年02月03日
    浏览(16)
  • STM32CubeIDE + HAL + STM32f103C8T6 系列教程1 ---板载PC13LED闪烁

    之前的系列教程都是基于Arduino的,但是公司招聘51和stm32的开发还是多些,所以特别开了一个stm32的系列。 这个系列特点是注重了 Arduino 编程思维和习惯下向STM32开发的过渡 。前期没有涉及到太多寄存器相关的知识,利用HAL库和STM32CubeIDE快速入手STM32的数字输入/输出、模拟输

    2024年02月16日
    浏览(15)
  • STM32F103C8T6基础开发教程(HAL库)—点亮第一颗LED灯

    STM32F103C8T6基础开发教程(HAL库)—开发环境配置 STM32F103C8T6基础开发教程(HAL库)—Keil添加注释的快捷键 STM32F103C8T6基础开发教程(HAL库)—点亮第一颗LED灯 STM32F103C8T6基础开发教程(HAL库)—LED灯交替闪烁 STM32F103C8T6基础开发教程(HAL库)—LED灯呼吸闪烁 STM32F103C8T6基础开发

    2024年01月18日
    浏览(29)
  • 2.基于正点原子STM32F103的定时器中断实验(HAL库实现)(cubeMX)

      基本上每一款MCU都会配备定时器这个外设,STM32 的每个通用定时器都是完全独立的,没有互相共享的任何资源。 同样,STM32F1系列的定时器功能也很强大,包括: TIM1和TIM8两个高级定时器; TIM2~TIM5是个通用寄存器; TIM7,TIM8,两个基本定时器。 由于本次实验适用于新手入门

    2023年04月26日
    浏览(137)
  • ESP8266与手机相互通信 透传模式(STM32F103C8T6 HAL库)有APP和完整代码

    一、目标         stm32f103c8t6用串口发送AT指令控制esp8266发送数据到手机APP上,同时手机也可以发送数据到stm32f103c8t6主控,控制LED的亮灭。          将esp8266模块的GND、VCC、TXD、RXD、CH-PD与单片机对应引脚连接,其中TXD与RXD要反接,模块在工作时CH-PD要处于高电平状态。 二、

    2024年02月16日
    浏览(19)
  • stm32f103VET6和stm32f103c8t6有什么区别?

    我来终结下这个问题。 这两款单片机我都用过,其中无际单片机特训营其中一款wifi报警主机项目就是用了stm32f103c8t6。  stm32f103VET6和stm32f103c8t6都是STMicroelectronics公司推出基于ARM Cortex-M3内核的单片机。 它们在硬件规格和性能上存在一些差异,下面我详细讲解下它们的差异之处

    2024年02月15日
    浏览(19)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包