首页/新闻资讯/正文详情

stm32寄存器编程--AFIO、EXTI、NVIC

发布时间:2026/11/3 19:31:24 来源:云帆数科 栏目:资讯中心
stm32寄存器编程--AFIO、EXTI、NVIC
先讲讲AFIO,其实这个不难主要功能就是复用重映射引脚和链接外部中断引脚。1、先讲讲复用引脚重映射我们的板子上有许多引脚也有许多外设也有对应的外设引脚未免会有一些引脚拥有多种功能比如说定时器的引脚和uart的引脚共用如果我们需要同时用到可以使用AFIO将某一个引脚映射到其他引脚使用举个例子我们此时可以通过AFIO去将PA9,PA10映射到PB6,PB7这就是AFIO的其中一个作用。寄存器的话我建议自己去翻数据手册。记得先使能AFIO时钟。优先级这一块要了解NVIC:管理中断选择中断源设置优先级组中断仲裁(多个中断就绪的时候按照优先级来选择)一个demoNVIC的寄存器配置比较抽象一些要先配置SCB-AIRCR设置优先级组这边是一个极简写法详细在NVIC_Init函数实现里面其他寄存器对着手册配就好。#include stm32f10x.h // Device header #include Delay.h #include OLED.h void gpio_init(){ //开启GPIOA的时钟 RCC-APB2ENR | (1ul 2); //PA0浮空输入0100 GPIOA-CRL ~(0x0F (4 * 0)); GPIOA-CRL | (0x04 (4 * 0)); //PA5推挽输出0011 GPIOA-CRL ~(0x0F (4 * 5)); GPIOA-CRL | (0x03 (4 * 5)); } void afio_exti_init(){ //开启AFIO时钟 RCC-APB2ENR | (1ul 0); //AFIO_EXTICR1操作低四位EXTI0[3:0]然后选择PA0 AFIO-EXTICR[0] ~(0x0F (4 * 0)); //开放来自线0上的中断请求 EXTI-IMR | (1ul 0); //允许输入线0上的下降沿触发 EXTI-FTSR | (1ul 0); } void nvic_init(){ //优先级组2位抢占优先级2位子优先级 SCB-AIRCR | (0x5FA 16) | (1ul 10) | (1ul 8); SCB-AIRCR ~(1ul 9); //NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); /*设置优先级,抢占优先级2子优先级1这里是我本人知道优先级组22的情况如果是其他优先级组的话参考官方写法。 如果是31的话NVIC-IP[6] ((2 1) | 1) 4;抢占只左移一位4个位置占三个就有0~7可选子优先级只有1位只有0~1可选 */ NVIC-IP[6] ((1 2) | 1) 4; //开启EXTI0_IRQn中断注意查看中断号数组下标为中断号/32后面为中断号对32取余以此类推 NVIC-ISER[0] | (1ul 6); // NVIC_InitTypeDef NVIC_InitStruct; // NVIC_InitStruct.NVIC_IRQChannel EXTI0_IRQn; //中断响应函数 // NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority 1; //抢占优先级 // NVIC_InitStruct.NVIC_IRQChannelSubPriority 1; //子优先级 // NVIC_InitStruct.NVIC_IRQChannelCmd ENABLE; //使能中断 // // NVIC_Init(NVIC_InitStruct); } void led_toggle(){ if(GPIOA-ODR (1ul 5)){ GPIOA-BSRR (1ul 21); } else{ GPIOA-BSRR (1ul 5); } } void EXTI0_IRQHandler(){ if(EXTI-PR (1ul 0)){ led_toggle(); //清除中断标志位 EXTI-PR | (1ul 0); } } int main(void) { gpio_init(); afio_exti_init(); nvic_init(); while (1) { } }

相关推荐

【出海 ERP】「推一下、停一下」:海外 ERP 长停顿的同一模式与复工 SOP
【出海 ERP】「推一下、停一下」:海外 ERP 长停顿的同一模式与复工 SOP

海外制造主体、订单量不算爆炸的 ERP 项目,我也见过 停两次、每次几周到几月。表面理由各不相同:财务口径、进口费用、集团调度邮件——拆到底,经常是 同一模式:外部确认没闭合 → 项目组 怕耽误工期 → 并行配 Odoo / 烧人天 → … · 2026/11/3 19:31:24

(推荐)openspec项目开发流程
(推荐)openspec项目开发流程

新模块开发: 根据提议skill, 按照模块写好规格文档供我审核。1)先更新下code clicodex update2)powershell下安装openspecnpm install -g fission-ai/openspeclatest3)桌面版安装openspec全局安装openspec, 针对所有项目都生效4)到项目中初始化,重新打开… · 2026/11/3 19:31:24

Windows syslog日志服务器搭建与模拟器对接
Windows syslog日志服务器搭建与模拟器对接

一 安装syslog软件1.下载visualsyslog 日志服务器软件2.双击进行安装3.选择安装路径4.在桌面生成快捷方式5.需要关闭防火墙6.点击安装开始安装7.安装完成8.默认软件是打开,但是还没有日志二 HCL 华三模拟器连接HOST直接让路由器接口UP2.1 组网与规划2.2 华三路由器配… · 2026/11/3 19:31:24

Tableau Server彻底卸载指南与残留清理技巧
Tableau Server彻底卸载指南与残留清理技巧

1. 问题背景:为什么Tableau Server卸载会不干净?Tableau Server作为企业级商业智能平台,其安装过程会深度集成到系统环境中。不同于普通桌面软件,它的卸载残留问题主要源于三个层面:服务组件复杂性:默认安装… · 2026/11/3 20:12:46

Windows共享文件夹配置与安全管理全指南
Windows共享文件夹配置与安全管理全指南

1. Windows共享文件夹基础概念与场景解析在办公环境和家庭局域网中,文件共享是最基础也最频繁的需求之一。Windows系统自带的共享文件夹功能,允许不同设备间通过SMB协议实现文件互通。相比第三方传输工具,原生共享方案具有无需安装、传输稳定… · 2026/11/3 20:12:46

PS手写签名提取:从抠图到光学重建的全流程指南
PS手写签名提取:从抠图到光学重建的全流程指南

1. 项目概述:为什么“PS提取手写签名”是高频刚需,且远不止于抠图那么简单“PS提取手写签名”这六个字,几乎每天都在设计群、行政办公群、自由职业接单群、甚至高校教务助理的聊天记录里反复出现。它表面看是个Photoshop基础操作——把一张带… · 2026/11/3 20:12:46

Linux命令速查表实战指南:高频操作与避坑技巧
Linux命令速查表实战指南:高频操作与避坑技巧

简介:面向Linux初学者与运维入门者的命令速查手册,聚焦日常系统管理与文件操作场景,帮助读者摆脱对图形界面的依赖、建立命令行操作的基本功。资源为单个PDF文档,压缩包约130KB,篇幅精炼、便于随身查阅与打印。内容按功… · 2026/11/3 20:12:46

OpenStack Nova Unexpected API Error 根因分析与实战排障
OpenStack Nova Unexpected API Error 根因分析与实战排障

1. 项目概述:一条错误提示背后的云基础设施真相“Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API”——这行看似普通的报错信息,我第一次在某高校云计算实验室的OpenStack管理界面上看到时&… · 2026/11/3 20:12:45

基于遗传算法的自适应PID控制在二阶系统中的应用
基于遗传算法的自适应PID控制在二阶系统中的应用

1. 二阶系统与PID控制的基础原理在工业控制领域,二阶系统是最常见的被控对象模型之一。这类系统的动态特性可以用二阶微分方程来描述,其传递函数通常表现为:G(s) K / (s 2ζωₙs ωₙ)其中,K为系统增益,ζ为阻尼比… · 2026/11/3 20:11:45

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码