STM32单片机实战开发笔记-EXIT外部中断检测

devtools/2024/9/18 12:31:49/ 标签: 单片机, stm32, 笔记, 物联网, 嵌入式硬件, arm开发

嵌入式单片机开发实战例程合集:

链接:https://pan.baidu.com/s/11av8rV45dtHO0EHf8e_Q0Q?pwd=28ab
提取码:28ab

EXIT模块测试

  1. 功能描述

外部中断/事件控制器由19个产生事件/中断要求的边沿检测器组成。每个输入线可以独立地配置输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿或者双边沿触发)。每个输入线都可以被独立的屏蔽。挂起寄存器保持着状态的中断要求。

  1. 主要特性

EXTI控制器的主要特性如下:

  1. 每个中断/事件都有独立的触发和屏蔽
  2. 每个中断线都有 专用的状态位
  3. 支持多达19个中断/事件请求
  4. 检测脉冲宽度低于APB2时钟宽度的外部信号。

外部中断/事件线路映像:

80通用I/O端口以下图的方式连接到19个外部中断/事件上:

另外三种其他的外部中断/事件控制器的连接如下:

  1. EXT1线16连接到PVD输出
  2. EXTI线17连接到RTC闹钟事件
  3. EXTI线18连接到USB唤醒事件

3、硬件电路

  1. 软件代码

/********************************************************************

* 文件 :EXTI.c

* 版本 :V1

* 描述 :STM32f103VCT6的中断配置

* 说明 :外部中断线6产生中断时,进入中断服务程序后让蜂鸣器响

********************************************************************/

#include"stm32f10x_lib.h"

void EXTI_Configuration(void)

{

       

        EXTI_InitTypeDef EXTI_InitStructure;

        GPIO_InitTypeDef GPIO_InitStructure;

        /* =======================开启时钟================*/

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE); // 使能APB2外设GPIOC时钟

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;                      //配置PB6为外部中断

        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;             //下拉输入

        GPIO_Init(GPIOB,&GPIO_InitStructure);

        GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource6);

        EXTI_DeInit();     //将EXIT寄存器重设置为缺省值

        EXTI_InitStructure.EXTI_Line = EXTI_Line6 ;              //中断线

        EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt ;  //中断模式

        EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;           //双边沿

        EXTI_InitStructure.EXTI_LineCmd = ENABLE;               //使能

        EXTI_Init(&EXTI_InitStructure);                             //初始化

}

void NVIC_Configuration(void)

{

        NVIC_InitTypeDef NVIC_InitStructure;

        #ifdef  VECT_TAB_RAM 

               NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);

        #else

               NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);  

        #endif

        NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel;

        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;

        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

        NVIC_Init(&NVIC_InitStructure);                

}


http://www.ppmy.cn/devtools/31191.html

相关文章

ElementUI从unpkg.com完整下载到本地的方法 - 解决unpkg.com不稳定的问题 - 自建镜像站 - 不想打包只想cdn一下

方法 方法1)随便弄个文件夹,根据官网npm方法下载包,提取即可 npm i element-ui -S cd /node_modules/element-ui/ ls src 安装npm方法:https://nodejs.org/en 方法2)不推荐 - 在github中搜索对应的库zip包&#xff0…

解决iview(view ui)中tabs组件中使用图片预览组件ImagePreview,图片不显示问题

同学们可以私信我加入学习群! 正文开始 前言一、问题描述二、原因分析三、解决方案总结 前言 最近在写个人项目的web端和浏览器插件,其中一个功能是base64和图片的转换。因为分成四个小功能,所以使用的iview的tabs来展示不同功能&#xff0c…

机器学习之基于Jupyter中国环境治理投资数据分析及可视化

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 机器学习之基于Jupyter中国环境治理投资数据分析及可视化项目是一个结合了机器学习和数据可视化技术的项目&#xf…

专业渗透测试 Phpsploit-Framework(PSF)框架软件小白入门教程(二)

本系列课程,将重点讲解Phpsploit-Framework框架软件的基础使用! 本文章仅提供学习,切勿将其用于不法手段! 继续接上一篇文章内容,讲述如何进行Phpsploit-Framework软件的基础使用和二次开发。 当我们同意许可协议之…

如何使用 Node.js 开发一个文件上传功能?

在 Node.js 中实现文件上传功能可以通过多种方式完成,但其中最常用的方法之一是使用 Express 框架和 Multer 中间件。Express 是一个流行的 Node.js Web 框架,而 Multer 是一个用于处理文件上传的中间件。 步骤 1: 准备工作 首先,确保你已经…

使用xshell工具连接ubuntu的root账户被拒绝的解决方法

问题描述: 我在使用xshell工具远程连接Ubuntu虚拟机的过程中,如果连接的是的普通用户则xshell工具可以正常连接,但是当我向连接ubuntu系统的root用户,即便是密码输入正确但还是不能连接成功。不能连接成功的截图如下: …

如何从Mac电脑恢复任何删除的视频

Microsoft Office是包括Mac用户在内的人们在世界各地创建文档时使用的最佳软件之一。该软件允许您创建任何类型的文件,如演示文稿、帐户文件和书面文件。您可以使用 MS Office 来完成。所有Microsoft文档都可以在Mac上使用。大多数情况下,您处理文档&…

从零开始学AI绘画,万字Stable Diffusion终极教程(一)

【第1期】SD入门 2022年8月,一款叫Stable Diffusion的AI绘画软件开源发布,从此开启了AIGC在图像上的爆火发展时期 率先学会SD的人,已经挖掘出了越来越多AI绘画有趣的玩法 从开始的AI美女、线稿上色、真人漫改、头像壁纸 到后来的AI创意字、AI…

django搭建一个AI博客进行YouTube视频自动生成文字博客

文章目录 一、生成Django框架二、项目代码(前端)1、编写前端代码(正文界面)1.1、生产html框架1.2、添加live preview扩展1.3、更改title元素中文本1.4、添加CDN(CSS)样式链接1.5、nav标签1.6、在body标签中…

git学习指南

文章目录 一.版本控制1.认识版本控制2.版本控制功能3.集中式版本控制4.分布式版本控制 二.Git的环境安装搭建1.Git的安装2.Git配置分类3.Git配置选项 三.Git初始化本地仓库1. git init/git clone-获取Git仓库2. 本地仓库文件的划分3. git status-检测文件的状态4. git add-文件…

PDF Shaper Ultimate 免安装中文破姐版 v14.1

软件介绍 PDF Shaper是一套完整的多功能PDF编辑工具,可实现最高的生产力和文档安全性。它允许你分割,合并,水印,署名,优化,转换,加密和解密您的PDF文件,也可插入和移动页&#xff0…

华为手机 鸿蒙系统-android studio识别调试设备,开启adb调试权限

1.进入设置-关于手机-版本号,连续点击7次 认证:有锁屏密码需要输入密码, 开启开发者配置功能ok 进入开发者配置界面 打开调试功能 重新在androd studio查看可运行running devices显示了, 不行的话,重启一下android …

苹果CEO对未来一代人工智能投资持乐观态度

尽管在动荡的第二季度,苹果的收入和iPhone销量有所下降,但其新兴的人工智能技术可能会带来急需的提振。 在5月2日的电话财报会议上,苹果公布季度收入为908亿美元,比去年下降4%。iPhone的收入也下降了10%,至460亿美元。…

Xamarin.Android项目使用ConstraintLayout约束布局

Xamarin.AndroidX.ConstraintLayout Xamarin.Android.Support.Constraint.Layout Xamarin.AndroidX.ConstraintLayout.Solver Xamarin.AndroidX.DataBinding.ViewBinding Xamarin.AndroidX.Legacy.Support.Core.UI Xamarin.AndroidX.Lifecycle.LiveData ![在这里插入图片描述]…

Linux——命名管道

管道特点 只能用于具有具体祖先的进程之间的通信,通常,一个管道由一个进程创建,然后该进程调用fork,创建子进程,关闭相应的读写端,然后父子进程就可以通信了管道提供流式服务一般而言,进程退出…

MySQL商城数据库88张表结构(46—50)

46、消息队列表 CREATE TABLE dingchengyu消息队列表 (id int(11) NOT NULL AUTO_INCREMENT COMMENT 序号,userId int(11) DEFAULT NULL COMMENT 用户id,msgTtype tinyint(4) DEFAULT 0 COMMENT 消息类型,createTime datetime DEFAULT NULL COMMENT 创建时间,sendTime datetim…

全面学习SpringCloud框架指南

要深入学习Spring Cloud框架,你需要系统地掌握其核心组件和概念,并了解如何在实际项目中应用这些知识。以下是一些关键的学习点和相应的学习内容: 一共分为10个模块包括: 1、微服务架构基础: 理解微服务架构的概念和…

Delphi10和12的FDConnection1.GetTableNames参数不一样了

FDConnection1连接excel文件,获取工作表的名字,10的时候一切正常, Delphi10: FDConnection1.GetTableNames(, , , ss, [osSystem], [tkTable], false); 换成Delphi12.1后,无论如何都不能显示工作表名,尝…

MYSQL从入门到精通(一)

1、概述 【1】使用率最高 2、数据库的重要性 【1】数组、集合、文件 【2】数据管理系统-MySQL 【3】持久化数据,容易管理、查询 3、相关概念 【1】DB database 数据库 【2】DBMS 数据库管理系统(MySQL就是其中一种) 【3】SQL 结构查询语…

[1702]java旅游资源网上填报系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java旅游资源网上填报系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql…