PY32F003F18的中断线

news2024/11/26 8:31:31

PY32F003F18的中断线有30条,其中Line20~Line28保留不用,见下图:

 Line0~Line8需要配置,选择引脚和中断线连接,和GPIO引脚对应,Line9~Line15和PA9~PA15一一对应。见下图:

 

 

外部中断选择寄存器1(EXTI_EXTICR1)中bit1:0=00B,则选择"PA0连接到中断线Lin0"
外部中断选择寄存器1(EXTI_EXTICR1)中bit1:0=01B,则选择"PB0连接到中断线Lin0"
外部中断选择寄存器1(EXTI_EXTICR1)中bit1:0=10B,则选择"PF0连接到中断线Lin0"

外部中断选择寄存器1(EXTI_EXTICR1)中bit9:8=00B,则选择"PA1连接到中断线Lin1"
外部中断选择寄存器1(EXTI_EXTICR1)中bit9:8=01B,则选择"PB1连接到中断线Lin1"
外部中断选择寄存器1(EXTI_EXTICR1)中bit9:8=10B,则选择"PF1连接到中断线Lin1"

外部中断选择寄存器1(EXTI_EXTICR1)中bit17:16=00B,则选择"PA2连接到中断线Lin2"
外部中断选择寄存器1(EXTI_EXTICR1)中bit17:16=01B,则选择"PB2连接到中断线Lin2"
外部中断选择寄存器1(EXTI_EXTICR1)中bit17:16=10B,则选择"PF2连接到中断线Lin2"

外部中断选择寄存器1(EXTI_EXTICR1)中bit25:24=00B,则选择"PA3连接到中断线Lin3"
外部中断选择寄存器1(EXTI_EXTICR1)中bit25:24=01B,则选择"PB3连接到中断线Lin3"
外部中断选择寄存器1(EXTI_EXTICR1)中bit25:24=10B,则选择"PF3连接到中断线Lin3"

外部中断选择寄存器2(EXTI_EXTICR2)中bit1:0=00B,则选择"PA4连接到中断线Lin4"
外部中断选择寄存器2(EXTI_EXTICR2)中bit1:0=01B,则选择"PB4连接到中断线Lin4"
外部中断选择寄存器2(EXTI_EXTICR2)中bit1:0=10B,则选择"PF4连接到中断线Lin4"

外部中断选择寄存器2(EXTI_EXTICR2)中bit8=0,则选择"PA5连接到中断线Lin5"
外部中断选择寄存器2(EXTI_EXTICR2)中bit8=1,则选择"PB5连接到中断线Lin5"

外部中断选择寄存器2(EXTI_EXTICR2)中bit17:16=00B,则选择"PA6连接到中断线Lin6"
外部中断选择寄存器2(EXTI_EXTICR2)中bit17:16=01B,则选择"PB6连接到中断线Lin6"

外部中断选择寄存器2(EXTI_EXTICR2)中bit19=0,则选择"PA7连接到中断线Lin7"
外部中断选择寄存器2(EXTI_EXTICR2)中bit19=1,则选择"PB7连接到中断线Lin7"

外部中断选择寄存器3(EXTI_EXTICR3)中bit0=0,则选择"PA8连接到中断线Lin8"
外部中断选择寄存器3(EXTI_EXTICR3)中bit0=1,则选择"PB8连接到中断线Lin8"

 PA9~P15和中断线Line9~Line15一一对应连接。

GPIO通过外部中断线产生中断:

#include "KeyIntrrupt.h"
#include "LED.h"
#include "MyGPIO.h"

void Key1_Interrupt_Init(void);

//函数功能:Key1引脚初始化为外部中断输入
void Key1_Interrupt_Init(void)
{

  GPIO_InitTypeDef GPIO_InitStructureure;

  __HAL_RCC_GPIOA_CLK_ENABLE();  //GPIOA时钟使能

  GPIO_InitStructureure.Pin = GPIO_PIN_12;//选择第12脚
	GPIO_InitStructureure.Pull = GPIO_PULLUP;//引脚上拉被激活
//  GPIO_InitStructureure.Pull = GPIO_NOPULL;//引脚上拉和下拉都没有被激活
  GPIO_InitStructureure.Speed = GPIO_SPEED_FREQ_MEDIUM;//配置GPIO速度为中速
	GPIO_InitStructureure.Mode   = GPIO_MODE_IT_FALLING;//配置为下降沿检测模式
	HAL_GPIO_Init(GPIOA, &GPIO_InitStructureure);
	//根据GPIO_InitStructureure结构变量指定的参数初始化GPIOA的外设寄存器
	//因为使用了GPIO_MODE_IT_FALLING,所以使能了外部中断线

/*
	__HAL_RCC_GPIOA_CLK_ENABLE();  //GPIOA时钟使能
	Configure_Pin_Direction_mode(GPIOA,GPIO_PIN_12,GPIO_MODE_IT_FALLING);
	Activate_Pull_up_or_Pull_down_for_Pin(GPIOA,GPIO_PIN_12,GPIO_PULLUP);
	Select_External_Interrupt_Line(GPIOA,GPIO_PIN_12);
	Set_EXTI_line_X_InterruptSwitch(GPIO_PIN_12,GPIO_MODE_IT_FALLING);
//	Set_EXTI_line_X_EventSwitch(GPIO_PIN_12,GPIO_MODE_IT_FALLING);
	Set_Rising_And_Falling_Mode(GPIO_PIN_12,GPIO_MODE_IT_FALLING);
*/

	HAL_NVIC_SetPriority(EXTI4_15_IRQn,0x03,0);
	//EXTI4_15_IRQn表示外部中断线4~中断线15,EXTI4_15_IRQn
	//设置中断优先级为0x03,0无意义,注意:0<=PreemptPriority<=3,值越大,表示中断优先级越低
	//Enable and set Button EXTI Interrupt to the lowest priority

	HAL_NVIC_EnableIRQ(EXTI4_15_IRQn);
	//EXTI4_15_IRQn表示外部中断线4~中断线15,EXTI4_15_IRQn
	//使能EXTI4_15_IRQn中断
}

//函数功能:GPIO4~GPIO15外部中断服务程序
void EXTI4_15_IRQHandler(void)
{
	if(__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_12) != 0x00u)
  {//读"GPIO_PIN_12事件挂起标志位",当软件或者硬件产生上升沿/下降沿触发事件时,该位置位。
		MCU_LED_Toggle();//输出电平翻转
//		__HAL_GPIO_EXTI_CLEAR_FLAG(GPIO_PIN_12);//清除外部事件标志位
    __HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_12);//清除外部事件标志位
		//清除"GPIO_PIN_12外部事件标志位"
		//当软件或者硬件产生上升沿/下降沿触发事件时,该位置位;
  }
	NVIC_ClearPendingIRQ(EXTI4_15_IRQn);//清除EXTI4_15_IRQn中断源的中断标志位
}

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

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

相关文章

国际慈善日 | 追寻大爱无疆,拓世科技集团的公益之路

每年的9月5日&#xff0c;是联合国大会正式选定的国际慈善日。这一天的设立&#xff0c;旨在通过提高公众对慈善活动的意识&#xff0c;鼓励慈善公益活动通过各种形式在全球范围内得到增强和发展。这是一个向慈善公益事业致敬的日子&#xff0c;同时也是呼吁全球团结一致共同发…

Swagger简介

一.导语&#xff1a; 相信无论是前端还是后端开发&#xff0c;都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力&#xff0c;经常来不及更新。其实无论是前端调用后端&#xff0c;还是后端调用后端&…

尼尔森IQ :2023年中国商业养老服务供需洞察白皮书

核心观点 随着我国人口年龄结构发生巨大转变&#xff0c;老龄化问题成为未来较长时间内持续面临的挑战&#xff0c;积极应对老龄化已上升为国家战略&#xff0c;有效的、高质量的养老服务体系亟待建设。本章通过人口数据揭示我国老龄化进程&#xff0c;总结围绕养老领域出台的…

“银河护卫队总部”放大招!Milvus 核心组件再升级,主打就是一个低延迟、高准确度

熟悉我们的朋友都知道&#xff0c;在 Milvus 和 Zilliz Cloud 中&#xff0c;有一个至关重要的组件——Knowhere。 Knowhere 是什么&#xff1f;如果把向量数据库整体看作漫威银河护卫队宇宙&#xff0c;那么 Knowhere 就是名副其实的总部&#xff0c;它的主要功能是对向量精确…

linux 进程管理命令

进程管理命令 查看进程命令 ps命令 显示系统上运行的进程列表 # 查看系统中所有正在运行的系统ps aux# 获取占用内存资源最多的10个进程&#xff0c;可以使用如下命令组合&#xff1a;ps aux|head -1;ps aux|grep -v PID|sort -rn -k 4|head# 获取占用CPU资源最多的10个进程&am…

成本控制与电子元器件采购:实现效益的关键因素

成本控制在电子元器件采购中至关重要&#xff0c;它直接影响了组织的盈利能力和竞争力。以下是实现成本效益的关键因素&#xff1a; 供应商谈判&#xff1a; 成本控制的第一步是与供应商进行有效的谈判。这包括谈判价格、交货条件、质量标准和其他合同条款。有时长期合同可以帮…

【数学建模竞赛】优化类赛题常用算法解析

优化类建模 问题理解和建模&#xff1a;首先&#xff0c;需要深入理解问题&#xff0c;并将问题抽象为数学模型。这包括确定问题的目标函数、约束条件和决策变量。 模型分析和求解方法选择&#xff1a;对建立的数学模型进行分析&#xff0c;可以使用数学工具和方法&#xff0c;…

绘制钻头芯厚变化图

import numpy as np import matplotlib.pyplot as plt posnp.array([0.05,0.5,0.97,3]) data_m1np.array([0.088,0.093,0.098,0.116]) data_m2data_m1-0.01 data_m3data_m1-0.02 fig plt.figure(figsize(5, 4)) plt.rcParams[xtick.direction] in # 将x周的刻度线方向设置向…

miners lamp

矿灯、头灯&#xff0c;夜间作业

嵌入式软件有限状态机的 C 语言实现

状态机模式是一种行为模式&#xff0c;通过多态实现不同状态的调转行为的确是一种很好的方法&#xff0c;只可惜在嵌入式环境下&#xff0c;有时只能写纯C代码&#xff0c;并且还需要考虑代码的重入和多任务请求跳转等情形&#xff0c;因此实现起来着实需要一番考虑。 近日在看…

Arduino驱动ML8511紫外线传感器(光照传感器篇)

目录 1、传感器特性 2、控制器和传感器连线图 3、驱动程序 ML8511传感器,可以用来检测室内或室外的紫外线密度。通过将光电流转化成电压的原理来检测UV强度,同时非常适合被被外部电路所采用。该模块还具备省电模式可达0.1uA,适合在智能可穿戴和手机等设备上使用。

横版武侠手游推荐,有什么武侠游戏好玩的手游?

武侠游戏是游戏市场上不可或缺的游戏类型&#xff0c;许多武侠手游沿用了经典武侠小说中的各种设置&#xff0c;为玩家创造了一个身临其境的世界。有什么武侠游戏好玩的手游&#xff1f;今天小编就为大家带来了横版武侠手游推荐&#xff0c;这些游戏的游戏性和操作感是同类游戏…

vue使用wangEditor

vue版本2.0&#xff1b;editor5.1.23版本&#xff1b;editor-for-vue&#xff1a;1.0.2版本 api文档入口 效果图 安装步骤入口 npm install wangeditor/editor --savenpm install wangeditor/editor-for-vue --save代码 <template><div><div style"bor…

字体排版小白也能Get!4个超简单技巧让你的文字焕然一新

文字排版设计不仅是指为Web或APP的界面选择正确的字体&#xff0c;排版中的文本层次结构、字体比例、空白、颜色对比和其他视觉效果也有助于传递品牌的特定信息。优秀的文字排版设计需要传达清晰有效的信息&#xff0c;始终把内容的可读性放在首位去考虑和权衡。今天就带大家梳…

自动化测试系列 —— UI自动化测试

UI 测试是一种测试类型&#xff0c;也称为用户界面测试&#xff0c;通过该测试&#xff0c;我们检查应用程序的界面是否工作正常或是否存在任何妨碍用户行为且不符合书面规格的 BUG。了解用户将如何在用户和网站之间进行交互以执行 UI 测试至关重要&#xff0c;通过执行 UI 测试…

装饰器模式:让你的对象变得更强大

在日常开发中&#xff0c;当需要给一个现有类添加附加职责&#xff0c;而又不能采用生成子类的方法进行扩充时。例如&#xff0c;该类被隐藏或者该类是终极类或者采用继承方式会产生大量的子类。这时候&#xff0c;我们该怎么办呢&#xff1f;我们可以使用装饰器器模式来解决这…

Xilinx ZYNQ 7000学习笔记三(小结)

1 启动模式&#xff1a; ZYNQ 7000的启动模式由外部引脚决定的&#xff0c;5个模式引脚MIO[6:2]用于配置NAND flash、并行NOR flash、Serial NOR (Quad-SPI)、SD flash以及JTAG 一共5种启动模式。具体而言就是复位时&#xff0c;zynq-7000 SOC对下述引脚进行连续3个时钟周期采…

从Overleaf提交到arxiv

1.文件结构注意避坑&#xff01;&#xff01;&#xff01; 前期在overleaf写论文时&#xff0c;为了使文件结构目录清晰&#xff0c;分别建了section, image等子文件夹&#xff0c;即 >project>image-XXx.pdf-xxx.pdf>sections-abstract.tex-method.tex>main.tex…

ProcessWindowFunction 结合自定义触发器的陷阱

背景&#xff1a; flink中常见的需求如下&#xff1a;统计某个页面一天内的点击率,每10秒输出一次&#xff0c;我们如果采用ProcessWindowFunction 结合自定义触发器如何实现呢&#xff1f;如果这样实现问题是什么呢&#xff1f; ProcessWindowFunction 结合自定义触发器实现…

基于YOLOv8模型的安全背心目标检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要&#xff1a;基于YOLOv8模型的安全背心目标检测系统可用于日常生活中检测与定位安全背心目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的目标检测&#xff0c;另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标检测算法训…