STM32基础篇:AFIO × 查表重映射 × AFIO库函数

AFIO简介

AFIO,直译为:复用输入输出,是STM32上众多的片上外设之一;我们知道当IO引脚复用功能冲突时,可以通过重映射来解决这个问题,而AFIO就是专门用来执行"复用功能的重映射"的模块(可以看出其名字与功能并不一致)。

注意,IO重映射只是重映射的一种。


查表重映射(流程)

在STM32的芯片上有许许多多的片上外设,其中有一部分片上外设能够使用AFIO模块,对它的复用功能进行重映射。因此,在STM32的参考手册(RM0008)中,不同模块的重映射使用方法分别用一个小节来解释(共12小节,即12个模块的重映射功能),并且是我们编程AFIO的依据。

1、分配引脚功能

假如我们要同时使用定时器1与串口通信(如下图所示),在分配IO引脚时就会发现冲突:定时器1的四个通道(CH1、CH2、CH3、CH4)所对应IO引脚分别为PA8、PA9、PA10、PA11;而串口通信的Px、Tx所对应IO引脚为PA10、PA9,因此两组引脚冲突

此时要通过AFIO解决引脚冲突(重新分配引脚功能),分别查一下这两个片上外设的IO重映射表。如下图所示,为定时器1的重映射表。


2、定时器重映射表

可以看出有3个映射方案:

方案一无重映射重映射值=00使用默认(通用)情况下的IO引脚
方案二部分重映射重映射值=01对模块的一部分引脚重映射
方案三完全重映射重映射值-11对模块的所有引脚重映射

可以看出在此工程下,定时器1无法使用重映射:方案1、2不改变对应的IO引脚;方案3虽然能改变引脚,但对于C8T6芯片而言,不存在GPIOE,故无法使用重映射。


3、串口重映射表

其表格分为两列:

第一列REMAP=0,即无重映射,使用默认的IO引脚;

第二列REMAP=1,进行重映射,IO引脚被改变;

因此可以使用USART1的重映射,来解决引脚冲突的问题。


AFIO的标准库函数

AFIO的驱动程序

在STM32的标准库的文件夹中存在一个一个的模块(h和c文件),例如:GPIO模块的驱动就位于stm32f10x_gpio.h(头文件)和stm32f10x_gpio.c(源文件)这两个文件中。

值得注意的是,AFIO的编程接口同样放在stm32f10x_gpio.h和stm32f10x_gpio.c这两个文件中,也就是说和GPIO驱动放在了一块


AFIO编程接口

AFIO一共有4个编程接口(库函数),如下图所示:


GPIO_PinRemapConfig

要想实现上例工程,需要配置IO引脚的重映射,故使用GPIO_PinRemapConfig函数即可。对于GPIO_PinRemapConfig函数,有两个参数,第一个为需要配置重映射的具体模块和方案;第二个为开启/关闭选择

以定时器1为例:参数GPIO_PartialRemap_TIM1是指定时器1模块、方案2;GPIO_FullRemap_TIM1指定时器1、方案3。


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mac电脑上有什么好玩的肉鸽游戏推荐 苹果电脑怎么玩以撒的结合

Mac电脑尽管在游戏兼容性上可能不及Windows。但是,对于喜欢在Mac上游玩的玩家来说,依然有不少优秀的游戏可以选择,尤其是那些富有挑战性和策略性的肉鸽游戏。此外,对于经典游戏《以撒的结合》,Mac平台也提供了良好的游…

模拟考试小程序的设计

管理员账户功能包括:系统首页,个人中心,科目管理,复习资料管理,参考文献管理,用户管理,留言板管理,论坛管理 微信端账号功能包括:系统首页,复习资料&#xf…

2017年,我成为了技术博主

2017年9月,我已经大三了。 >>上一篇(爪哇,我初窥门径) 我大二学了很多java技术,看似我一会就把javaweb/ssh/ssm这些技术栈给学了。 这些技术确实不难,即便是我,我都能学会,…

C# Bitmap类型与Byte[]类型相互转化详解与示例

文章目录 一、Bitmap类型转Byte[]类型使用Bitmap类的Save方法使用Bitmap类的GetBytes方法 二、Byte[]类型转Bitmap类型使用MemoryStream将Byte[]数组转换为Bitmap对象使用System.Drawing.Imaging.BitmapImage类 总结 在C#编程中,Bitmap类型和Byte[]类型之间的相互转…

思维+数学,CF 1138B - Circus

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1138B - Circus 二、解题报告 1、思路分析 设第一组会小丑和杂技的人数分别为x1, y1 第二组会小丑和杂技的人数分别为x2, y2 显然根据要求有: x1 y2 > x1 x2 x2 y2 上式说明第二组每…

下拉框模糊搜索 输入框中的值映射不上去的问题

强制更新 Element-ui中el-select选择器实现输入和搜索&#xff0c;可显示输入值的详细讲解_el-select可输入可选择-CSDN博客https://blog.csdn.net/qq_63438013/article/details/134512480 <el-select keyup.enter.native"handleQuery" blur"selectBlur&qu…

HNU小学期BSP软件编程基础十道测试题

http://t.csdnimg.cn/Yv0R1 文章参考了这位大佬的代码&#xff0c;在他的基础上进行了纠错、完善等处理。 配置 编程前的准备工作按大佬的流程即可&#xff0c;稍有不同的是学习通课程网站的资料里没有头文件的整个压缩包了&#xff0c;但我们可以下载某个BSP版的工程文件&am…

北京大学长安汽车发布毫米波与相机融合模型RCBEVDet:最快能达到每秒28帧

Abstract 三维目标检测是自动驾驶中的关键任务之一。为了在实际应用中降低成本&#xff0c;提出了利用低成本的多视角相机进行3D目标检测&#xff0c;以取代昂贵的LiDAR传感器。然而&#xff0c;仅依靠相机很难实现高精度和鲁棒性的3D目标检测。解决这一问题的有效方法是将多视…

苍穹外卖--编辑员工和根据id查询员工信息

查询员工信息 编辑员工 package com.sky.controller.admin;import com.sky.constant.JwtClaimsConstant; import com.sky.dto.EmployeeDTO; import com.sky.dto.EmployeeLoginDTO; import com.sky.dto.EmployeePageQueryDTO; import com.sky.entity.Employee; import com.sky…

Instruct-GS2GS:通过用户指令编辑 GS 三维场景

Paper: Instruct-GS2GS: Editing 3D Gaussian Splats with Instructions Introduction: https://instruct-gs2gs.github.io/ Code: https://github.com/cvachha/instruct-gs2gs Instruct-GS2GS 复用了 Instruct-NeRF2NeRF 1 的架构&#xff0c;将基于 NeRF 的三维场景编辑方法迁…

IDEA如何创建原生maven子模块

文件 -> 新建 -> 新模块 -> Maven ArcheTypeMaven ArcheType界面中的输入框介绍 名称&#xff1a;子模块的名称位置&#xff1a;子模块存放的路径名创建Git仓库&#xff1a;子模块不单独作为一个git仓库&#xff0c;无需勾选JDK&#xff1a;JDK版本号父项&#xff1a;…

C++ 是否变得比 C 更流行了?

每年都会出现一种新的编程语言。创造一种新语言来解决计算机科学中的挑战的诱惑很难抗拒。一些资料表明&#xff0c;目前有多达 2,500 种语言&#xff0c;这并不奇怪&#xff01; 对于我们嵌入式软件开发人员来说&#xff0c;这个列表并不长。事实上&#xff0c;我们可以用一只…

【Linux】网络新兵连

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 引言 在上一篇博客中&#xff0c;我们简单的介绍了一些Linux网络一些比较基本的概念。本篇博客我们将开始正式学习Linux网络套接字的内容&#xff0c;那么我们开始吧&#xff01; 1.网络中的地址管理 大家一…

uniapp安卓端实现语音合成播报

最初尝试使用讯飞语音合成方式,能获取到语音数据,但是数据是base64格式的,在安卓端无法播放,网上有说通过转成blob格式的url可以播放,但是uniapp不支持转换的api;于是后面又想其他办法,使用安卓插件播报原生安卓语音播报插件 - DCloud 插件市场 方案一(讯飞语音合成) 1.在讯飞…

分享一个Typecho博客系统专用的CloudFlare缓存规则,优化加速一下下!

好久都没有更新Typecho博客了,最近几天明月测试了一套适用于Typecho博客系统的CloudFlare缓存规则,经过近一周时间的测试确定有效,并且加速效果特别突出,今天就无偿分享给大家,也算是为国内Typecho生态添砖加瓦了吧! 总结下来,这套CloudFlare缓存规则带来的好处就是可以…

华为机试HJ108求最小公倍数

华为机试HJ108求最小公倍数 题目&#xff1a; 想法&#xff1a; 要找到输入的两个数的最小公倍数&#xff0c;这个最小公倍数要大于等于其中最大的那个数值&#xff0c;遍历最大的那个数值的倍数&#xff0c;最大的最小公倍数就是输入的两个数值的乘积 input_number_list i…

tableau饼图与环形图绘制 - 5

饼图与环形图绘制 1. 饼图绘制1.1 饼图绘制1.2 显示标签1.3 显示合计百分比1.4 设置百分比格式1.5 添加说明1.6 图像导出 2. 环形图绘制2.1 选择标记为饼图2.1 饼图绘制2.2 双饼图绘制2.3 设置大饼图大小2.4 设置双轴2.5 设置小饼图属性 1. 饼图绘制 酒店价格等级饼图 1.1 饼…

作业/数据结构/2024/7/8

链表的相关操作作业&#xff1a; 1】 按值修改 2】按值查找&#xff0c;返回当前节点的地址 &#xff08;先不考虑重复&#xff0c;如果有重复&#xff0c;返回第一个&#xff09; 3】 逆置(反转) 4】释放链表 main.c #include "head.h"int main(int argc, con…

品牌文化五大维度,构建品牌竞争力的秘诀!

品牌文化对于企业的发展和成功至关重要。 品牌文化不仅是企业和消费者之间的纽带&#xff0c;也是企业内部员工的凝聚力。 在当今竞争激烈的市场环境中&#xff0c;建立一个有活力和影响力的品牌文化是每个企业都需要认真思考和实践的事情。 品牌文化的五大维度包括价值观、…

VMware vSAN替换存储解决方案如何选择?

What is vSAN &#xff1f; 是一款软件定义的企业存储解决方案&#xff0c;支持超融合基础架构系统。vSAN与VMware vSphere 完全集成在一起&#xff0c;作为ESXi Hypervisor内的分布式软件层&#xff0c;通过整合、池化ESXi各个主机上的存储资源&#xff0c;为vSphere虚拟化平…