STM32学习笔记(六)--引脚重映射详解

STM32F103C8T6引脚定义:

在STM32微控制器中,外设引脚的复用功能(Alternate Function,AF)有时会出现冲突,例如当USART2_CTS和TIM2_CH1同时需要使用相同的引脚时。此时,可以通过引脚重映射功能(Remapping)来解决这个问题。

引脚重映射(Remapping)详解

引脚重映射是STM32提供的一种功能,用于改变外设信号的GPIO引脚,以避免引脚冲突。具体操作如下:

1. 查找引脚重映射表

在STM32的参考手册(Reference Manual)和数据手册(Datasheet)中,有详细的引脚定义表,包含默认复用功能和重定义(重映射)功能。

2. 重映射步骤

以下是一个将TIM2_CH1从PA0重映射到PA15的示例:

初始化外设时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); // 使能AFIO时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); // 使能TIM2时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 使能GPIOA时钟

配置GPIO引脚

GPIO_InitTypeDef GPIO_InitStructure;// 配置PA15为复用推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);

重映射TIM2_CH1

// 使用AFIO来重映射TIM2_CH1到PA15
GPIO_PinRemapConfig(GPIO_FullRemap_TIM2, ENABLE);

配置定时器参数

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;TIM_TimeBaseStructure.TIM_Period = 999;
TIM_TimeBaseStructure.TIM_Prescaler = 71;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 499;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC1Init(TIM2, &TIM_OCInitStructure);TIM_Cmd(TIM2, ENABLE);

配置USART2_CTS引脚

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; // PA0配置为USART2_CTS
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);

注意事项

  1. 确认重映射功能支持:并非所有引脚都支持重映射,请参考具体型号的参考手册。
  2. 配置正确的AFIO寄存器:不同的引脚重映射配置需要修改不同的AFIO寄存器。
  3. 检查其他外设冲突:确保重映射后的引脚不会与其他已使用的外设产生新的冲突。

总得来说只需要注意如下代码即可,至于配置还是老一套。

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2, ENABLE);
//  下面这一行主要是观察该引脚的主功能是什么 如果是JTDI之类的加下面这句GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

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

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

相关文章

02-Git命令

1.初始化仓库: git init 2.查看文件状态: git status 3.添加到暂存区 :git add 文件名 git add . 4.提交到本地仓库: git commit -m "提交信息" 5.拉去远程最新代码: git pull 远程地址 分支 6.解决冲突 …

入门三.HTB--Dancing(6.18)

大佬 https://www.cnblogs.com/Hekeats-L/p/16535920.html 任务1 SMB 即Server Message Block(服务器消息块),是一种文件共享协议。当文件原件在你的A电脑上,而你想在局域网下用你的手机、iPad或是另一台电脑来访问A电脑上的该文…

nginx+keepalived高可用搭建的详细步骤

现在有2台机器,10.5.100.36 和 10.5.100.37,分别在这2台机器上面部署nginx和keepalived,然后利用keepalived对nginx做高可用。 1,安装好nginx,使用的是 yum install nginx -y2,修改nginx的配置文件nginx.…

【AI工具】探索创意与效率:xs.tools 网站介绍

在这个数字化时代,工具的创新和效率对我们的日常工作和生活至关重要。"xs.tools" 网站是一个汇集了众多有趣且实用的小工具的平台,它不仅帮助用户快速找到所需的工具,还能激发灵感,提升创造力。 一、网站概览 "xs.tools" 提供了一个简洁而直观的界面…

Centos7如何扩容未做lvm的GPT硬盘

背景:一台根分区为2.5T(已转换GPT格式)的虚拟机使用率达到97%,需要扩容,但是又没做lvm 通过平台新增容量1.5T,如下可看到 安装growpart准备扩容: yum install cloud-utils-growpart -y 执行命令growpart报错&#xff…

ChatGPT付费创作系统V3.0.2独立版 WEB+H5+小程序端 (H5端界面美化+Pika视频作品广场+SunoAI 文生歌)系统部署教程

播播资源GPT付费体验系统最新版系统是一款基于ThinkPHP框架开发的AI问答小程序,是基于国外很火的ChatGPT进行开发的Ai智能问答小程序。当前全民热议ChatGPT,流量超级大,引流不要太简单!一键下单即可拥有自己的GPT!无限…

Mac的m系列芯片安装虚拟机--简单流程

Mac安装虚拟机 工具是UTM 下载 下载utm:utm官网下 下载win11 arm:微软官网下 下载guest_tools-0.164:不好找:https://tips2fix.com/windows-11-mac-m1/ 安装 安装过程: https://wiki.eryajf.net/pages/3f19f0/#_1…

6.华为路由器与二层交换机连接单臂路由划分vlan实现互通

目的:华为路由器与二层交换机连接使用单臂路由使PC1 PC2不通vlan互通 AR1配置 [Huawei]int g0/0/0.10 [Huawei-GigabitEthernet0/0/0.10]dot1q termination vid 10 [Huawei-GigabitEthernet0/0/0.10]ip address 10.10.10.1 24 [Huawei-GigabitEthernet0/0/0.10]arp…

HarmonyOS开发日记 :自定义节点,实现 UI 组件 动态创建、更新

引言 UI动态操作包含组件的动态创建、卸载、更新等相关操作。 通过组件预创建,可以满足开发者在非build生命周期中进行组件创建,创建后的组件可以进行属性设置、布局计算等操作。之后在页面加载时进行使用,可以极大提升页面响应速度。 UI …

【CVPR2024】面向StableDiffusion的编辑算法FreePromptEditing,提升图像编辑效果

近日,阿里云人工智能平台PAI与华南理工大学贾奎教授团队合作在深度学习顶级会议 CVPR2024 上发表 FPE(Free-Prompt-Editing) 算法,这是一种面向StableDiffusion的图像编辑算法。在这篇论文中,StableDiffusion可用于实现图像编辑的本质被挖掘&…

河南水利乙级资质企业:引领行业绿色发展新潮流

河南水利乙级资质企业:引领行业绿色发展新潮流 一、引言 随着环保意识的日益增强,绿色发展已成为水利行业的重要趋势。河南水利乙级资质企业凭借其专业的技术实力、丰富的项目经验以及对绿色发展的深刻理解,积极引领行业绿色发展新潮流&#…

揭秘社群营销:小圈子的大智慧

在数字化时代的营销版图中,社群营销以其独特的魅力和效果,正逐渐成为品牌推广的宠儿。但究竟什么是社群营销?它是否真的能够带来预期的效果?今天,让我们深入探讨社群营销的本质,分析其优势与挑战&#xff0…

word常用的通配符大全

常用的Word通配符: 通配符描述示例?匹配任意单个字符c?t 匹配 “cat”、“cut” 等*匹配零个或多个字符colr* 匹配 “color”、“colour” 等[ ]匹配方括号内任意一个字符[aeiou] 匹配任意一个元音字母[!x-x]排除指定范围内的任意单个字符[!a-c] 匹配不包含a、b、…

28. 空间滤波器

导论: 几何光线追迹是光线传播的一种不完善描述。严格地说,光束传播是一个相干过程。当波前通过自由空间或光学介质时,波前会发生相干干涉。这种相干传播的建模包括物理光学领域。 物理光学传播(POP)是zemax的一项强…

基于springboot的实习管理系统源码数据库

近年来,信息化管理行业的不断兴起,使得人们的日常生活越来越离不开计算机和互联网技术。首先,根据收集到的用户需求分析,对设计系统有一个初步的认识与了解,确定实习管理系统的总体功能模块。 然后,详细设…

ssl证书能认证多少个域名

SSL证书能认证的域名数量取决于SSL证书的类型。不同类型的SSL证书支持不同数量的域名: SSL证书,作为网络安全的基石之一,起着至关重要的作用。它通过为网站提供加密连接,确保数据传输的安全性和完整性,同时验证网站的真…

IDM(Internet Download Manager)简介

IDM(Internet Download Manager)是一款知名的下载管理软件,它通过优化下载过程来提升下载速度和效率。主要优势: 下载速度显著提升:IDM采用分段下载技术和多线程下载,可以显著提高下载速度,减少…

“Docker操作案例实践“

目录 1. 下载nginx 2. Portainer可视化 1. 下载nginx 步骤: 搜索nginx:docker search nginx;下载镜像:docker pull nginx ;查看镜像:docker images ;后台运行 :docker run -d -na…

Ceph: vdbench 测试ceph存储rbd块设备

目录 2.搭建ceph 3.vdbench环境 准备 笔记本架构:x86 i5 8 代 虚拟化软件:virtualBox 7.0 操作系统:CentOS Linux release 7.9.2009 (Core) 测试虚拟机操作系统:CentOS Linux release 7.9.2009 (Core) 节点 外部网络 内部网…

qml实现界面的切换

自定义组件中是可以直接使用main界面中根节点这个层级中声明的所有id MyRect01.qml import QtQuick 2.0 import QtQuick.Controls 2.0 Rectangle{id:rec01width:450height: 200color: "green"Button{id:btn01text: "dian ji"onClicked: {yRec01.visiblefa…