32中的外部中断

一、理解中断

关于32的中断

中断就是给cpu一个信号,cpu收到这个对应的信号再进行指挥

最常用的就是按键   key1按下是咩意思key2呢这样

中断信号线CPU要和对应的元器件连接

二、中断代码

代码编写

所有的0脚对应中断寄存器0,以此类推

引脚为n   EXTI_Line(n)  GPIO_PinSource(n)

GPIO映射如图

中断服务函数的映射关系

GPIO

IRQn

IRQHandler

GPIO_Pin0

EXTI0_IRQn

EXTI0_IRQHandler

GPIO_Pin1

EXTI1_IRQn

EXTI1_IRQHandler

GPIO_Pin2

EXTI2_IRQn

EXTI2_IRQHandler

GPIO_Pin3

EXTI3_IRQn

EXTI3_IRQHandler

GPIO_Pin4

EXTI4_IRQn

EXTI4_IRQHandler

GPIO_Pin5 — GPIO_Pin9

EXTI9_5_IRQn

EXTI9_5_IRQHandler

GPIO_Pin10 — GPIO_Pin15

EXTI15_10_IRQn

EXTI15_10_IRQHandler

EXTI输入线外部中断输入浮空输入或带上拉输入/下拉输入

三、示例代码

ps:我用的是外部中断,上拉输入(触发为低,本来是高电平),PB5

.c文件

 /*** @brief  配置嵌套向量中断控制器NVIC* @param  无* @retval 无*/
static void NVIC_Configuration(void)
{NVIC_InitTypeDef NVIC_InitStructure;/* 配置NVIC为优先级组1 *//* 提示 NVIC_PriorityGroupConfig() 在整个工程只需要调用一次来配置优先级分组*/NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);/* 配置中断源:按键1 */NVIC_InitStructure.NVIC_IRQChannel = GM10_INT_EXTI_IRQ;/* 配置抢占优先级 */NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;/* 配置子优先级 */NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;/* 使能中断通道 */NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure);}/*** @brief  配置 IO为EXTI中断口,并设置中断优先级* @param  无* @retval 无*/
void EXTI_GM10_Config(void)
{GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure;/*开启按键GPIO口的时钟*/RCC_APB2PeriphClockCmd(GM10_INT_GPIO_CLK,ENABLE);/* 配置 NVIC 中断*/NVIC_Configuration();/*--------------------------GM10配置-----------------------------*//* 选择按键用到的GPIO */	GPIO_InitStructure.GPIO_Pin = GM10_INT_GPIO_PIN;/* 配置为上拉输入 */	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_Init(GM10_INT_GPIO_PORT, &GPIO_InitStructure);/* 选择EXTI的信号源 */GPIO_EXTILineConfig(GM10_INT_EXTI_PORTSOURCE, GM10_INT_EXTI_PINSOURCE); EXTI_InitStructure.EXTI_Line = GM10_INT_EXTI_LINE;/* EXTI为中断模式 */EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;/* 上升沿中断 */EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;/* 使能中断 */	EXTI_InitStructure.EXTI_LineCmd = ENABLE;EXTI_Init(&EXTI_InitStructure);
}	
//中断函数	
void GM10_IRQHandler(void)
{int num;//确保是否产生了EXTI Line中断if(EXTI_GetITStatus(GM10_INT_EXTI_LINE) != RESET) {/*功能代码//中断里代码少写点*///清除中断标志位EXTI_ClearITPendingBit(GM10_INT_EXTI_LINE);     }  
}

.h文件

#ifndef __EXTI_H
#define	__EXTI_H#include "stm32f10x.h"
#include "uart1.h"
#include "LED.h"
//引脚定义  PB5
#define GM10_INT_GPIO_PORT         GPIOB
#define GM10_INT_GPIO_CLK          (RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO)
#define GM10_INT_GPIO_PIN          GPIO_Pin_5
#define GM10_INT_EXTI_PORTSOURCE   GPIO_PortSourceGPIOB
#define GM10_INT_EXTI_PINSOURCE    GPIO_PinSource5
#define GM10_INT_EXTI_LINE         EXTI_Line5   
#define GM10_INT_EXTI_IRQ          EXTI9_5_IRQn#define GM10_IRQHandler            EXTI9_5_IRQHandlervoid EXTI_GM10_Config(void);#endif /* __EXTI_H */

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/148954.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Unity :单例模式 + MonoBehaviour 是什么体验?

单例模式 与 MonoBehaviour的冲突点 单例模式 MonoBehaviour 保持单例的快速解决方案 就是自己创建一个空对象,然后把脚本挂在上去就行了,之后你就别自己挂载该脚本就行了 一般写法 public class AgentMoNo : MonoBehaviour {private static AgentM…

Python编码系列—Python观察者模式:实现事件驱动架构的利器

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

ComfyUI新版本提升效率小技巧(建议收藏)

原文链接:建议收藏!ComfyUI提升效率的小技巧,肯定有你不知道的 (chinaz.com) 本篇带来ComfyUI非常实用的9个小技巧,可以提升我们的ComfyUI工作效率,建议大家收藏起来哈 新版中文搜节点 点击设置 comfy→搜索框框架…

PHP判断微信或QQ访问

PHP判断微信或QQ访问 若是微信或者QQ打开&#xff0c;提示图会覆盖网页&#xff0c;但网页功能仍在运行&#xff01; <meta name"viewport" content"initial-scale1, maximum-scale1, user-scalableno, widthdevice-width"><style> .top-gui…

OpenCV目标检测(1)模板匹配函数matchTemplate()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 将一个模板与重叠的图像区域进行比较。 该函数在图像中滑动&#xff0c;使用指定的方法将大小为 w h w \times h wh的重叠块与模板 templ 进行…

基于python+django+vue的旅游景点数据分析系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

【Canvas与诗词】铁马冰河入梦来

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>金红圈铁马冰河入梦来</title><style type"text/css&q…

【linux经典工具】strace-就十分钟你也能成为性能调优专家

strace 是什么 strace是一款功能强大的 Linux 进程监控和诊断工具。主要作用就是&#xff1a;用于调试程序、解决问题、拦截和记录系统调用以及跟踪正在运行的进程。它能输出了程序如何与系统交互的过程&#xff0c;尤其是在无法获取源代码的情况下&#xff08;那些开源工具、…

召回04 离散特征的处理

推荐系统会将一个id映射成一个向量 Qne-Hot编码 Embedding(嵌入)&#xff1a; 把每个类别映射成一个低维的稠密向量

k均值算法 聚类算法 k-means

首先我们导入科学计算的库 import numpy as np import matplotlib.pyplot as plt直接我们生成一组数据&#xff0c;为了保证每次的数据是一致的&#xff0c;我们设置一个随机种子。 np.random.seed(0) Xnp.random.rand(100,2) print(X) 结果 然后我们就要开始写K-means算…

光控资本:红利税是什么?一万股票的红利税是多少?

盈利税&#xff0c;即股息盈利税&#xff0c;是投资者卖出分红的股票时&#xff0c;需求扣除的税&#xff0c;一般来说&#xff0c;投资者卖出分红股票之后&#xff0c;不会立马扣税&#xff0c;在投资者卖出股票的第2个生意日至31个工作日之间进行补缴。一万股票的盈利税盈利税…

VMware Workstation 17.5安装教程

目录 软件介绍 1、下载安装包 2、安装虚拟机 3、卸载虚拟机 软件介绍 VMware&#xff08;虚拟机&#xff09;是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统&#xff0c;通过它可在一台电脑上同时运行更多的Microsoft Windows、Linux…

LibJPEG库使用_通过LibJPEG将RGB数据保存为JPG图片存储到磁盘

一、前言 LibJPEG库是一个广泛使用的开源C库&#xff0c;用于处理JPEG图像的压缩和解压缩。该库由独立JPEG小组&#xff08;Independent JPEG Group, IJG&#xff09;开发&#xff0c;提供了功能强大的API&#xff0c;用于创建和读取JPEG文件。LibJPEG库支持JPEG的所有常见功能…

哈希——字符串哈希

回顾/本期梗概 上期我们学习了图论基础&#xff08;空降链接&#xff09;&#xff0c;本期我们将学习哈希中的字符串哈希。 1、什么是哈希 哈希算法是&#xff1a;通过哈希函数讲字符串、较大的数等转换为能够用变量表示的或者是直接能作为数组下标的数&#xff0c;通过哈希算法…

基于MT79815G CPE 板子上挂usb3.0的5G 模块,WIFI能跑多少速度呢

关于MT79815G CPE 板子上挂usb3.0的5G 模块&#xff0c;WIFI能跑多少速度的问题&#xff0c;我们以启明智显 ZX7981P智能无线接入型路由器&#xff08;CPE&#xff09;挂广合通5G模组为例说明&#xff1a; 一般来说&#xff0c;用 ZX7981P&#xff0c;通过软加速&#xff0c;U…

专业120+总分400+中国科学技术大学843信号与系统考研经验中科大电子信息通信工程,生物医学工程,苏医工,真题,大纲,参考书。

经过将近一年的复习备考&#xff0c;专业843信号与系统120&#xff0c;总分400&#xff0c;顺利上岸朝思暮想的中科大。总结一些自己的备考经验&#xff0c;希望能给大家一些参考&#xff0c;少走弯路。首先讲一下大家最关注的专业课&#xff1a;843信号与系统 中科大843专业课…

kafka集群架构与原理

前言 这次我们从消息队列开始讨论。生产者-消费者模型中间需要一个消息队列&#xff0c;以存储生产者的产品。对传统的消息队列来说&#xff0c;它支持点对点&#xff08;P2P&#xff09;和发布/订阅&#xff08;Pub/Sub&#xff09;两种消息模型。在点对点模型中&#xff0c;消…

OpenCV_自定义线性滤波(filter2D)应用详解

OpenCV filter2D将图像与内核进行卷积&#xff0c;将任意线性滤波器应用于图像。支持就地操作。当孔径部分位于图像之外时&#xff0c;该函数根据指定的边界模式插值异常像素值。 卷积核本质上是一个固定大小的系数数组&#xff0c;数组中的某个元素被作为锚点&#xff08;一般…

使用vite+react+ts+Ant Design开发后台管理项目(四)

前言 本文将引导开发者从零基础开始&#xff0c;运用vite、react、react-router、react-redux、Ant Design、less、tailwindcss、axios等前沿技术栈&#xff0c;构建一个高效、响应式的后台管理系统。通过详细的步骤和实践指导&#xff0c;文章旨在为开发者揭示如何利用这些技术…

SAP B1 认证考试习题 - 基础主数据(解析版)

感谢投喂*罒▽罒* 一、基础 1. 下列哪个产品不是以中小型企业为目标客户的 A. mySAP All-in-One B. SAP Business One C. mySAP Business Suite 答案&#xff1a;C 解析&#xff1a;SAP Business One -- 为小型企业定制的解决方案&#xff08;250人以下&#xff09;&…