STM32单片机关于引脚复用和重定义问题

STM32F103定时器引脚重定义功能问题处理 在一个项目中,使用STM32F103RCT6单片机,定时器引脚使用的PC6,PC6默认复用定时器为TIM8_CH1,但是由于其他原因,不能使用TIM8_CH1,因此需要使用其重定义功能TIM3_CH1,本文分享了本人在该项目中定时器TIM3引脚复用功能重定义的一些问题及解决过程,希望对大家能有帮助。 阅读详情
AI摘要

本文介绍了单片机如何通过GPIO端口复用和重映射实现多个外设功能。讲述了复用的定义、配置步骤,以及重映射的定义、类型和配置方法,最后给出了代码示例。

1、说明

单片机引脚有限又想满足诸多外设功能就需要在一个引脚上集成多个功能,也就是复用和重映射。

2、端口复用

2.1、端口复用的定义

以STM32系列为例,GPIO可以重复使用外设的引脚,这个GPIO作为单片机内置的外设使用时,就叫做复用。

例如:

PB10引脚,一般情况下是普通IO口,可复用为I2C2的SCL引脚,也可以复用为串口3的发送引脚。

PB11引脚,一般情况下是普通IO口,可复用为I2C2的SDA引脚,也可以复用为串口3的接收引脚。

2.2、复用端口的配置

(1)配置GPIO的时钟

(2)配置复用的外设时钟

(3)配置GPIO结构体

(4)初始化

3、重映射

3.1、重定义的定义

在单片机说明手册中,有关于引脚配置的表格,除了复用功能以外,还有重映射(重定义)的功能。一个外设的引脚除了具有默认的端口外,也可以重新映射来把这个外设的功能映射到别的引脚上。在某个引脚被占用,而我们又需要它的外设功能时,就需要重映射功能了。此外,PCB布线时,通过重映射可以有效的方便布线,降低干扰。

例如:

PB6可以通过重映射,配置成串口1的发送引脚。

PB7可以通过重映射,配置成串口1的接收引脚。

而PB6和PB7默认的复用功能只有I2C和定时器的功能,串口1默认是由PA9和PA10所提供的。

3.2、重映射的类型

大体分为部分重映射和全部重映射。某个外设功能全部由重映射的引脚支持的,称为全部重映射;

而由部分默认复用功能加上部分映射功能提供的称为部分重映射。

3.3、重映射的配置

(1)使能GPIO引脚(重映射后的GPIO引脚)

(2)将GPIO的原来的功能引脚失能或将所映射的功能原来的引脚失能(若之前没有配置则忽略,简而言之,一个引脚只能配置一种外设功能,一个外设只能被一个引脚配置,不要引起干扰)

(3)使能功能外设

(4)使能AFIO时钟,重映射必须开启AFIO时钟

(5)开启重映射,调用函数,将某引脚重映射为某功能

4、代码示例

4.1 GPIO重映射

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);           //打开GPIOB的时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);             //打开复用时钟
	GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);        //重定义功能,将JTAG失能
	
	GPIO_InitTypeDef GPIO_InitStructure;                            //配置结构体
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);                           //初始化

4.2 GPIO复用

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);        //开启复用的功能时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);       //开启GPIO时钟
	 
	GPIO_InitTypeDef GPIO_InitStructure;                         //配置结构体
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);                        //初始化

注:上述代码只是一般流程示例,用具体外设时以具体功能配置

51 单片机和 STM32 引脚命名对照表与解析 在嵌入式开发中,51 单片机和 STM32 是两种非常常见的微控制器。它们的引脚命名方式有所不同,初学者可能会感到困惑。本文将详细对比 51 单片机和 STM32 的引脚命名规则,并提供对照表,帮助大家更好地理解和使用这两种芯片。51 单片机(如 STC89C52、AT89S52 等)的引脚命名相对简单,主要以功能命名为主。以下是常见的引脚命名规则:P3 端口的引脚通常具有第二功能,例如:STM32 的引脚命名相对复杂,因为它基于 ARM Cortex-M 内核,具有更多的外设和功能。以下是 STM32 引 阅读详情

相关推荐

STM32_基础入门(七)_端口复用和重映射

STM32_基础入门(七)_端口复用和重映射

weixin_50546241的博客 5016

STM32:吃透引脚、引脚复用与引脚重映射

由于STM32很多引脚支持“复用”和“重映射”功能,能将外设的功能从默认引脚“搬到”其他空闲引脚,完美解决引脚冲突问题。

weixin_62938013的博客 595

STM32单片机烧录失败汇总

电子攻城狮BUG日常 - STM32单片机 文章目录电子攻城狮BUG日常 - STM32单片机前言一、程序烧录问题1 单片机ADC参考电压引脚,VDDA引脚悬空导致程序不能烧录二、编程问题 前言 做开发也有几年了,平时遇到的问题要么记录在脑子里,要么记录在有道云笔记。今天突然觉得把他记录在博客吧,不光自己看也能分享给大家,希望和大家一起交流进步。 一、程序烧录问题 1 单片机ADC参考电压引脚,VDDA引脚悬空导致程序不能烧录 有一次在使用TL431的2.5V给VDDA做ADC的参考电压,焊完板子后

飞奔的乌龟 1万+

7.STM32IO引脚的复用和映射

STM32IO引脚的复用和映射

qq_54674051的博客 5116

使用STM32的GPIO复用功能

通过配置GPIO引脚的复用功能,可以实现多种不同的功能和接口,提高系统的灵活性和扩展性。通过配置复用功能,可以在有限的引脚资源上实现多种不同的功能,提高系统的灵活性和扩展性。请注意,以上示例代码仅供参考,具体的GPIO复用配置取决于所使用的STM32型号和具体的功能需求。配置引脚的复用功能:使用寄存器来配置引脚的复用功能。配置引脚的工作模式:除了配置复用功能,还需要配置引脚的工作模式,比如输入模式、输出模式等。配置引脚的输出速度:对于输出模式的引脚,还可以选择输出速度,控制输出电平的上升和下降时间。

UbiSqlserver的博客 2024

【STM32】SWD复用功能重定义,救“芯”指南

本文主要讲述如何通过另一种烧录方式进行SWD配置重定义,以恢复SWD下载接口,即所谓之救“芯”,或者表述为swd接口解锁,本文将此过程记录,以供有需要的读者参考。

l64481000的博客 6815

第五步:STM32F4端口复用

第五步:STM32F4端口复用

dailin2012的博客 1494

【嵌入式】树莓派部署NCNN的YOLOv5模型

树莓派部署NCNN框架的YOLOv5模型

Ace_Spade的博客 3782

STM32引脚列表中主功能,默认复用功能和重定义功能的区别&STM32F103RCT6引脚功能及使用

STM32引脚列表中主功能,默认复用功能和重定义功能的区别&STM32F103RCT6引脚功能及使用 -------转载------ 1 主功能就是STM32基本IO口,与外设没有连接的,我们可以直接输出或读入高低电平 使用时采用要初始化GPIO结构体参数,并打开端口的时钟 2 默认复用功能是与外设连接的IO口,单片机通过控制IO口控制外设。 使用时采用要初始化GPIO结构体参数,IO口的工作模式要更具STM32中文参考手册中,IO口复用功能的设置工作模式,设置时,与主功能的唯一区别就是.

学海无涯的专栏 1万+

AI Agent在智能投研中的实战:多智能体信息整合与策略生成

本文将带你从0到1完整搭建一套基于LangChain和AutoGen的多智能体AI投研系统首先,我们会一起梳理智能投研的核心痛点、金融数据的独特性,以及为什么传统AI Agent,尤其是多智能体协同架构,是破局的唯一最优解;RAG检索增强生成(但这次是金融领域定制化的,包括向量检索+时序数据检索+知识图谱检索的“三元检索增强”)、AutoGen多智能体协同框架。

软件工程实践的博客 381

基于NXP1778的CAN自动波特率检测

一、概念 NXP1778芯片内部自带一个CAN控制器。CAN模块由两部分组成:控制器和验收滤波器。所有的寄存器和RAM都以32位字宽度来访问。 CAN自动波特率检测主要用于以一种CAN的转换的产品中。产品中CAN部分的波特率以前都是通过网页中修改然后配置下去的,依据实际情况的考虑,如果CAN部分的波特率能够根据客户设备的改变而自动改变,将会增加其灵活性。   二、原理 根据CAN控制器的

菜鸟的痕迹专栏 5271

如何理解STM32单片机引脚的复用功能?

1、对于单片机而言,GPIO引脚的配置是很基础也是很重要的。错误的引脚配置非但不能实现想要的功能,而且出错时往往不容易查找,耽误调试的时间。这就需要编程调试人员对GPIO引脚的配置有很好的理解。今天这篇文章,我们就来谈谈STM32Fxx系列单片机引脚的复用功能(Alternate Function)。 2、STM32Fxx系列单片机的GPIO引脚可以配置为浮空输入(Input Floating)、上拉输入(Input Pull-up)、下拉输入(Input Pull-down...

weixin_45378136的博客 2万+

逆向分析踩坑记:当Frida在x86模拟器上‘看不见’ARM的so文件时,我们该如何手动定位与验证?

本文探讨了在x86模拟器上使用Frida进行逆向分析时,无法检测到ARM架构so文件的解决方案。通过分析内存映射、Frida的视觉盲区及手动定位技术,提供了兼容层、混合调试和原生ARM环境三种实用方案,帮助逆向工程师突破工具限制,实现精准定位与验证。

weixin_27697385的博客 221

STM32 引脚重映射

STM32单片机中片上外设的端口可以借指定GPIO口来输出,也就是引脚复用。但是当指定端口输出冲突了,没法同时使用时怎么办呢?本文介绍问题的解决办法:引脚重映射。

Echo_cy_的博客 1万+

从零配置ORB-SLAM3:TUM-VI数据集yaml文件参数调优指南

本文深入解析了ORB-SLAM3在TUM-VI数据集上的yaml配置文件参数调优方法。针对双目惯性模式,详细拆解了相机标定、IMU噪声模型和ORB特征提取三大模块的关键参数,解释了其原理与影响,并通过实战案例展示了如何通过调整特征点数量、FAST阈值及IMU噪声参数,有效提升系统在低纹理环境下的鲁棒性和轨迹精度。

weixin_29071809的博客 151

线性调频LFM脉冲压缩 连续波雷达仿真&线性调频信号仿真分析压缩matlab程序源码

13、线性调频信号(LFM)压缩感知的稀疏与重构算法(OMP)的matlab仿真程序(一个可以在matlab上运行的压缩感知实例;8、具有多普勒频移的线性调频信号(知道带宽、采样频率、T使用MATLAB仿真线性调频信号即LFM,同时具有多普勒频移时,匹配滤波后的波形变化。19、CW脉冲和LFM信号Matlab仿真(这是matlab仿真程序,实现了常规雷达信号CW和线性调频信号LFM的仿真)18、lfm信号模糊函数图 matlab(用matlab 实现的线性调频信号信号(lfm)的模糊函数图)

2301_77866396的博客 400

【STM32】STM32单片机入门

从外设开始学习STM32单片机

s_little_monster的博客 1万+

OsgEarth —— 笔记6 - 开发阶段加入漫游飞行(附源码)

效果      视频地址   源码 源码下载请私信   代码      代码相关内容:           OSG —— 笔记1 - 指令调用模型           OsgEarth —— 笔记1 - 创建地球的earth文件           OsgEarth —— 笔记2 - Qt窗口加载earth地球(附源码)           OsgEarth —— 笔记3 - 为地

1896

STM32端口复用和重映射

参考正点原子视频 端口复用 STM32有很多内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用 简单来说就是 咱们的板子上有很多的引脚,这些引脚本来是你作为普通的输入输出使用的(就是你自己这是这个引脚的功能),但是咱们芯片的内置外设也需要与外界进行信息交流啊啊,但是引脚就这么多(比如咱们mini板子只有51个外接引脚),如果每个内置外设都要占用引脚的话,普通的引脚就不够用了,所以这个时候伟大的人类想到

xuexiwd的博客 4334

PCL 贪婪投影三角剖分算法【2025最新版】

本博客在学习PCL中的贪婪投影三角算法的基础上,实现了使用彩色点云重建彩色模型的应用案例。博客长期更新,最近一次更新时间为:2025年7月6日。

点云侠的博客 37万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

STM32单片机必须掌握的八种IO口模式和引脚配置方式

八种IO口模式 STM32有八种IO口模式,分别是:模拟输入、浮空输入、上拉输入、下拉输入、开漏输出、推挽输出、复用开漏输出和复用推挽输出。 1、模拟输入 GPIO_Mode_AIN模拟输入,即关闭施密特触发器,将电压信号传送到片上外设模块(不接上下拉电阻)。 2、浮空输入 GPIO_Mode_IN_FLOATING浮空输入。浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该...

wusuowei1010的博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

stm32单片机引脚_单片机IO口不够用了,怎么办?

这几天公子比较闲,像看看手上有没有好玩的模块,于是,公子找到了一款OV系列的摄像头,于是翻了一下自己的2年都没有打开的盒子(公子专门来放开发板的)。可是找了半天,都没有找到开发板,费了九牛二虎之力,才找到一块STM32F103C8T6的,长这个样子,可是引脚不够呀!没关系,现在公子告诉大家该怎么解决。 1 IO口扩展:扩展的方法很多,锁存器;输出串并转换/输入并串转换;I²C总线等等……不过...

weixin_39520149的博客 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

STM32学习笔记(二)——STM32的GPIO和AFIO

介绍了STM32的GPIO外设和AFIO外设,包括点灯、按键程序等

m0_58326153的博客 3834

STM32引脚模式(默认,复用,重映射)详解与例程(基于STM32F10x系列)

为什么引脚会有三种模式?猜测:所有外设都配备自己的专属引脚,会导致引脚利用率过低,成本也会上升。单一的让多个外设用同一组引脚,又会导致资源严重冲突。一种合理的方式,还是多个外设用同一组引脚,但可以灵活切换匹配方案。就入STM所采用的那样。本质:引脚少,外设多,资源要合理分配。

qq_43298413的博客 4517

STM32单片机简介

在使用外部晶振时,需要在晶振两端连接两个起振电容,电容值一般在 10pF-40pF 之间,还可在晶振输入输出引脚之间加一个 1M 的电阻,产生负反馈,保证放大器工作在高增益的线性区,同时起到限流作用。不给时钟的情况下,操作外设是无效的,外设也不会工作,这样的目的是降低功耗。STLINK用的是SWD的方式,所以只需要占用PAB和PA14这两个IO口,在使用SWD的调试方式时,剩下的PA15、PB3、PB4可以切换为普通的IO口来使用,但要在程序中进行配置,不配置的华默认是不会用做IO口的。

2503_90270041的博客 1993
上一篇: STM32F103C8T6引脚功能整理
下一篇: C51单片机串口通信以及管脚配置
nolate_chen
博客等级 码龄3年 1万+粉丝 9原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值