当前位置: 首页 > wzjs >正文

规划案例网站高级搜索百度

规划案例网站,高级搜索百度,平面设计怎么网上接单,重庆网站建设公司 👨‍💻个人主页:开发者-削好皮的Pineapple! 👨‍💻 hello 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 削好皮的Pineapple! 原创 👨‍&#x1f4…

在这里插入图片描述


👨‍💻个人主页:@开发者-削好皮的Pineapple!

👨‍💻 hello 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 削好皮的Pineapple! 原创

👨‍💻 收录于专栏:C语言到基于STM32 的智能矿探小车


请添加图片描述

请添加图片描述

文章目录

    • 前言
    • 🎶一、外部中断基础
      • 1.1 外部中断与GPIO引脚对应关系
    • 🎶二、基于STM32F4xx的外部中断配置(初始化流程)
      • 2.1 中断源配置
        • 2.1.1 时钟信号使能
        • 2.1.2 GPIO初始化
        • 2.1.3 SYSCFG配置
        • 2.1.4 EXTI配置
      • 2.2 NVIC配置
    • 🎶三、外部中断服务函数
        • 结束语🥇


前言

今天是聚焦于STM32的外部中断相关知识的累累的一天。

中断是打断CPU正常执行的一种机制,对于STM32,有16个外部中断和GPIO引脚相关,分别称为EXTI0到EXTI15,GPIO引脚和外部中断按引脚编号一一对应,比如PA0对应EXTI0,PB0也对应EXTI0等。

我们所用的四个按键S1到S4分别连接PA0、PE2、PE3、PE4,对应产生EXTI0、EXTI2、EXTI3、EXTI4中断,按下相应按键可产生外部中断,进而实现小车行驶状态切换、速度增减及速度更改步长修改等功能,为后续智能矿探小车的开发进一步夯实基础。
在这里插入图片描述


🎶一、外部中断基础


1.1 外部中断与GPIO引脚对应关系

对于STM32,有16个外部中断和GPIO引脚相关,分别为EXTI0、EXTI1、EXTI2、…、EXTI15。

GPIO引脚和外部中断的对应关系为引脚编号一一对应,具体如下:

  • PA0、PB0、PC0、…、PI0均对应EXTI0
  • PA1、PB1、PC1、…、PI1均对应EXTI1
  • …以此类推

以我们使用的按键为例:

  • S1连接PA0,对应EXTI0
  • S2连接PE2,对应EXTI2
  • S3连接PE3,对应EXTI3
  • S4连接PE4,对应EXTI4

当按下这些按键时,会产生相应的外部中断。


🎶二、基于STM32F4xx的外部中断配置(初始化流程)


中断从产生到CPU处理要经过两级,分别是中断源配置和NVIC配置。

2.1 中断源配置

中断源即能够产生中断的地方,配置步骤如下:

2.1.1 时钟信号使能
  • 使能GPIO引脚时钟,使用函数RCC_AHB1PeriphClockCmd
  • 使能SYSCFG时钟,使用函数RCC_APB2PeriphClockCmd
2.1.2 GPIO初始化

通过GPIO_Init函数进行初始化,将GPIO配置成输入模式。

2.1.3 SYSCFG配置

使用SYSCFG_EXTILineConfig(uint8_t EXTI_PortSourceGPIOx, uint8_t EXTI_PinSourcex)函数进行配置,其中:

  • EXTI_PortSourceGPIOx用于指定GPIO的组号,如EXTI_PortSourceGPIOAEXTI_PortSourceGPIOB
  • EXTI_PinSourcex用于指定GPIO引脚编号,如EXTI_PinSource0EXTI_PinSource1、…、EXTI_PinSource15

注意:该函数不能进行位或操作,需逐个配置。例如:

SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE, EXTI_PinSource2);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE, EXTI_PinSource3);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE, EXTI_PinSource4);
2.1.4 EXTI配置

通过EXTI_Init(EXTI_InitTypeDef * EXTI_InitStruct)函数进行配置,EXTI_InitStruct结构体包含以下参数:

  • EXTI_Line:指定外部中断线,如EXTI_Line0EXTI_Line1
  • EXTI_Mode:指定外部中断的模式,设为EXTI_Mode_Interrupt(中断模式)
  • EXTI_Trigger:指定外部中断的触发因素,可选择EXTI_Trigger_Falling(下降沿触发)、EXTI_Trigger_Rising(上升沿触发)、EXTI_Trigger_Rising_Falling(双边沿触发)
  • EXTI_LineCmd:使能标志,设为ENABLE(使能)

2.2 NVIC配置

通过NVIC_Init(NVIC_InitTypeDef * NVIC_InitStruct)函数进行配置,NVIC_InitStruct结构体包含以下参数:

  • NVIC_IRQChannel:指定IRQn通道,对应中断的_IRQn,如EXTI0_IRQnEXTI1_IRQn
  • NVIC_IRQChannelPreemptionPriority:指定抢占优先级
  • NVIC_IRQChannelSubPriority:指定子优先级
  • NVIC_IRQChannelCmd:使能标志,设为ENABLE(表示使能)

在STM32中,抢占优先级和子优先级总共占用4个bit,需要进行优先级分组,使用NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)函数,一般在main函数中调用一次即可。例如:

NVIC_PriorityGroupConfig(2); // 抢占优先级占用2bits(范围0-3),子优先级占用2bits

🎶三、外部中断服务函数


在STM32中,所有中断服务函数的名字已在启动文件(.s)中编写好,CPU会自发处理外部中断,无需调用外部中断服务函数。

服务函数格式如下:

// 外部中断0的服务函数
void EXTI0_IRQHandler(void)
{// 具体处理逻辑EXTI_ClearITPendingBit(EXTI_Line0); // 手动清除外部中断0标志位
}// 外部中断2的服务函数
void EXTI2_IRQHandler(void)
{// 具体处理逻辑EXTI_ClearITPendingBit(EXTI_Line2); // 手动清除外部中断2标志位
}// 外部中断3的服务函数
void EXTI3_IRQHandler(void)
{// 具体处理逻辑EXTI_ClearITPendingBit(EXTI_Line3); // 手动清除外部中断3标志位
}// 外部中断4的服务函数
void EXTI4_IRQHandler(void)
{// 具体处理逻辑EXTI_ClearITPendingBit(EXTI_Line4); // 手动清除外部中断4标志位
}

我们需要在对应的服务函数中实现按键功能:

  • 按下S1(对应EXTI0),切换小车的行驶状态
  • 按下S2(对应EXTI2),增加小车的行驶速度
  • 按下S3(对应EXTI3),减少小车的行驶速度
  • 按下S4(对应EXTI4),修改速度的更改步长

请添加图片描述

结束语🥇

🔥 订阅专栏持续学习:C语言到基于STM32的智能矿探小车
💬 欢迎点赞、收藏、留言讨论,一起攻克嵌入式开发

http://www.dtcms.com/wzjs/473258.html

相关文章:

  • 网站建设的专业知识seo快速排名是什么
  • 网站论坛怎么做成都网站seo厂家
  • wordpress的FTP帐号成都seo的方法
  • 自己动手做网站百度一下就一个
  • 广州网站设计成功柚米科技太原seo计费管理
  • 中山网站建设找丁生杭州优化关键词
  • 乐清网站建设西安网站托管
  • 做一个购物网站seo公司杭州
  • 2023福建新一轮疫情seo线上培训多少钱
  • 湖南做网站找谁百度关键词优化方法
  • 网站模板编辑器今日头条重大消息
  • 菜鸟必读 网站被入侵后需做的检测 1seo排名赚app是真的吗
  • wordpress缩略图比例福州网站优化
  • opencart做视频网站2018十大网络营销案例
  • 牛商做网站的理念搜索推广
  • 房地产网站建设方案书百度云盘资源共享链接群组链接
  • 网站只做程序员单页关键词优化费用
  • 平原网站建设电话qq群引流推广网站
  • wordpress3.9主题搜索引擎优化策略
  • 网站子目录绑定二级域名百度网址大全怎么设为主页
  • 百度关键字搜索到自己的网站北京seo网络优化师
  • layui做网站前端站长工具seo排名
  • 网站平台建设的重要性百度网址大全电脑版旧版本
  • 品牌创意网站外链是什么意思
  • 网站建设中模智推教育seo课程
  • 武汉建设网站的公司5151app是交友软件么
  • 做打鱼网站的代理2024年新冠第三波症状分析
  • 装修设计费一般多少钱一平方济南网站优化排名
  • 做教育培训的网站seo西安
  • 买域名 个人博客 wordpress山东济南seo整站优化公司