当前位置: 首页 > news >正文

【【STM32--28--IO引脚的复用功能】】

STM32–28–IO引脚的复用功能

STM32的IO复用功能
何为复用?
我们先了解一下何为通用
IO端口的输入或输出是由GPIO外设控制,我们称之为通用
复用:
IO端口的输入或者是输出是由其他非GPIO外设控制就像经常说的USART 由 DR寄存器进行输出

STM32的IO复用功能
1.各个IO都支持什么复用功能
2.IO复用功能的冲突问题
在同一时间IO只能用作一种复用功能,否则会发生冲突
3,遇到IO复用功能冲突
我们的解决方法是可以考虑采用重映射功能,后续课程会讲解
我们知道芯片有许多外设,而引脚的资源是很有限的,为了解决这个问题,方法就是引脚
复用,这样使得引脚除了作为普通的 IO 口之外,还会与一些外设关联起来,作为第二功能使
用,而且一个引脚不单单只有一种复用功能,而是拥有多个第二功能,但是一次只允许一个外
设的复用功能,以确保共用同一个 IO 引脚的外设之间不会产生冲突。
AFIO 寄存器的作用就是复用功能 I/O 和调试配置的,STM32F103ZET6 共有 6 个 AFIO 的
寄存器,事件控制寄存器 AFIO_EVCR、复用重映射和调试 I/O 配置寄存器 AFIO_MAPR、外部
中断配置寄存器 AFIO_EXTICR1、外部中断配置寄存器 AFIO_EXTICR2、外部中断配置寄存器
AFIO_EXTICR3 和外部中断配置寄存器 AFIO_EXTICR4。

复用重映射和调试 I/O 配置寄存器 AFIO_MAPR 寄存器描述
在这里插入图片描述
在对 AFIO_MAPR 寄存器某些位进行写入实现引脚的重新映射,这时候,复用功能不再映射到它们原始分配上。例如 AFIO_MAPR 寄存器位 2 是对 USART1 的重映射,置 0: 没有重映像(TX/PA9,RX/PA10);置 1: 重映像(TX/PB6,RX/PB7)。默认情况下,PA9 和 PA10 是作为串口 1 的引脚使用,假如 PA9 和 PA10 被用作其他地方,但还是需要用到串口 1,那么就可以在 AFIO_MAPR 的位 2 置 1,把串口 1 的引脚重映射到 PB6 和 PB7。这个串口初始化的过程,就有点变化,需要初始化 AFIO 时钟,和对 AFIO_MAPR 的第 2 位进行置 1 操作,其他与普通串口配置没有区别。HAL 库已经把这些配置工作都定义好了,我们只需要去寻找这些复用的宏定义,这些关于端口复用相关的代码在 stm32f1xx_hal_gpio_ex.h 文件中可以找到。

相关文章:

【【STM32--28--IO引脚的复用功能】】

STM32–28–IO引脚的复用功能 STM32的IO复用功能 何为复用? 我们先了解一下何为通用 IO端口的输入或输出是由GPIO外设控制,我们称之为通用 复用: IO端口的输入或者是输出是由其他非GPIO外设控制就像经常说的USART 由 DR寄存器进行输出 STM32的IO复用功…...

CodeJock Active-X / COM v22.1.0 Crack

CodeJock Active-X / COM v22.1.0--这个支持 Unicode 啦, Unicode Unicode 创建专业应用程序,其中包含一整套高度可定制的用户界面组件,包括 Visual Studio 风格的对接窗格和 Office 风格的功能区、工具栏和菜单,为您的应用程序…...

mac通过docker搭建elasticsearch:8.9.2以及kibana:8.9.2

1.elasticsearch.yml配置修改: cluster.name: "docker-cluster" network.host: 0.0.0.0 http.port: 9200 #discovery.seed_hosts: ["172.17.0.2"]#----------------------- BEGIN SECURITY AUTO CONFIGURATION ----------------------- # # T…...

python实现排列组合代码

def combination(n, c, com1, limit0, per[]):for pos in range(limit, n):t per [pos]if len(set(t)) len(t):if len(t) c:yield [pos, ]else:for result in combination(n, c, com, com * pos, per [pos, ]):yield [pos, ] resultprint("排列:") …...

盲盒小程序开发方案

盲盒游戏作为一种富有趣味性和收藏价的虚拟盲盒产品,近年来在游戏市场中备受关注。本文将深入探讨盲盒游戏的开发方案,从市场趋势分析、用户体验设计、商业模式选择等多个维度,为开发者提供业且有深度的思考,以帮助他们在盲盒游戏…...

Mysql锁

文章目录 1. 概述2. 分类3. 全局锁4. 表级锁5. 行级锁 1. 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并…...

Kubernetes(k8s)安装NFS动态供给存储类并安装KubeSphere

Kubernetes安装NFS动态供给存储类并安装KubeSphere KubeSphere介绍环境准备KubeSphereNFS动态供给 安装NFS动态供给搭建NFS下载动态供给驱动修改驱动文件安装动态供给 安装KubeSphere下载KubeSphere的yaml资源清单文件安装KubeSphere 使用KubeSphere部署应用创建项目部署MySQL …...

机器学习笔记 - 【机器学习案例】基于KerasCV的预训练模型自定义多头+多标签预测

一、KerasCV KerasCV 是一个模块化计算机视觉组件库,可与 TensorFlow、JAX 或 PyTorch 原生配合使用。这些模型、层、指标、回调等基于Keras Core构建,可以在任何框架中进行训练和序列化,并在另一个框架中重复使用,而无需进行昂贵的迁 KerasCV 可以理解为 Keras API 的水平…...

Linux Debian常用70条经典运维命令和使用案例

一、前言 今天分享一些Linux Debian运维方法以及常用命令 二、运维方法 Linux Debian系统的运维涉及到各种任务,包括系统安装、配置、更新和维护,以及故障排查和性能优化等。下面是一些常用的运维命令: 1、以下是部分命令注释 1. apt-ge…...

【涵子来信】——步入中学,日积跬步,以致千里

大家好: 我是涵子,好久没有发文,今天发个文。 如果说,给你一次再入中学的机会,你会怎么想?对于刚刚步入中学的我,目前状况尚好,洛谷最近刷得紧,看看我的洛谷。 好的&…...

【sgCreateAPI】自定义小工具:敏捷开发→自动化生成API接口脚本(接口代码生成工具)

<template><div :class"$options.name"><div class"sg-head">接口代码生成工具</div><div class"sg-container"><div class"sg-start "><div style"margin-bottom: 10px;">接口地…...

数据库相关基础知识

第一章 概念 1、数据&#xff1a;描述事物的符号记录称为数据。特点&#xff1a;数据和关于数据的解释不可分。 2、数据库&#xff1a;长期存储在计算机内、有组织、可共享的大量的数据的集合。数据库中的数据按照一定的数据模型组织、描述和存储&#xff0c;具有较小的冗余度、…...

LeetCode刷题笔记【23】:贪心算法专题-1(分发饼干、摆动序列、最大子序和)

文章目录 前置知识贪心算法的本质什么时候用贪心算法?什么时候不能用贪心?贪心算法的解题步骤 455.分发饼干题目描述解题思路代码 376. 摆动序列题目描述解题思路代码 53. 最大子序和题目描述暴力解法动态规划贪心算法 总结 前置知识 贪心算法的本质 贪心的本质是选择每一阶…...

C++算法 —— 分治(2)归并

文章目录 1、排序数组2、数组中的逆序对3、计算右侧小于当前元素的个数4、翻转对 本篇前提条件是已学会归并排序 1、排序数组 912. 排序数组 排序数组也可以用归并排序来做。 vector<int> tmp;//写成全局是因为如果在每一次小的排序中都创建一次&#xff0c;更消耗时间和…...

Hadoop YARN HA 集群安装部署详细图文教程

目录 一、YARN 集群角色、部署规划 1.1 集群角色--概述 1.2 集群角色--ResourceManager&#xff08;RM&#xff09; 1.3 集群角色--NodeManager&#xff08;NM&#xff09; 1.4 HA 集群部署规划 二、YARN RM 重启机制 2.1 概述 2.2 演示 2.2.1 不开启 RM 重启机制…...

BBS+商城项目的数据库表设计

本文章是对于BBS商城项目的数据库的初步设计&#xff0c;仅供参考&#xff01; -- 创建用户表 CREATE TABLE Users (id bigint(20) PRIMARY KEY COMMENT 用户ID,username varchar(255) NOT NULL COMMENT 用户名,password varchar(255) NOT NULL COMMENT 密码,status int(1) DE…...

如何使用Savitzky-Golay滤波器进行轨迹平滑

一、Savitzky-Golay滤波器介绍 Savitzky-Golay滤波器是一种数字滤波器&#xff0c;用于平滑数据&#xff0c;特别是在信号处理中。它基于最小二乘法的思想&#xff0c;通过拟合数据到一个滑动窗口内的低阶多项式来实现平滑。这种滤波器的优点是它可以保留数据的高频信息&#…...

Nomad系列-Nomad网络模式

系列文章 Nomad 系列文章 概述 Nomad 的网络和 Docker 的也有很大不同, 和 K8s 的有很大不同. 另外, Nomad 不同版本(Nomad 1.3 版本前后)或是否集成 Consul 及 CNI 等不同组件也会导致网络模式各不相同. 本文详细梳理一下 Nomad 的主要几种网络模式 在Nomad 1.3发布之前&a…...

OpenCV项目开发实战--实现面部情绪识别对情绪进行识别和分类及详细讲解及完整代码实现

文末提供免费的完整代码下载链接 面部情绪识别(FER)是指根据面部表情对人类情绪进行识别和分类的过程。通过分析面部特征和模式,机器可以对一个人的情绪状态做出有根据的猜测。面部识别的这个子领域是高度跨学科的,借鉴了计算机视觉、机器学习和心理学的见解。 在这篇研究…...

Validate表单组件的封装

之前一直是直接去使用别人现成的组件库&#xff0c;也没有具体去了解人家的组件是怎么封装的&#xff0c;造轮子才会更好地提高自己&#xff0c;所以尝试开始从封装Form表单组件开始 一&#xff1a;组件需求分析 本次封装组件&#xff0c;主要是摸索封装组件的流程&#xff0c;…...

OpenClaw镜像体验报告:GLM-4.7-Flash云端部署3大优势

OpenClaw镜像体验报告&#xff1a;GLM-4.7-Flash云端部署3大优势 1. 为什么选择云端体验OpenClaw 上周我在本地笔记本上折腾OpenClaw时&#xff0c;经历了所有开发者都熟悉的"依赖地狱"——Node.js版本冲突、Python环境污染、系统权限问题接踵而至。当终于看到open…...

Huggingface模型离线加载失败?别慌,可能是.cache文件在捣鬼(附清理与修复指南)

Huggingface模型离线加载失败&#xff1f;别慌&#xff0c;可能是.cache文件在捣鬼&#xff08;附清理与修复指南&#xff09; 当你兴冲冲地在新环境部署好Huggingface模型&#xff0c;准备大展拳脚时&#xff0c;突然蹦出OSError: We couldnt connect to https://hf-mirror.co…...

java毕业设计基于springboot+vue的电影院座位管理系统

前言 该系统旨在实现电影院座位的高效管理&#xff0c;包括座位预订、售票、座位状态实时监控等功能。通过该系统&#xff0c;电影院可以提高售票效率&#xff0c;优化座位使用率&#xff0c;同时为顾客提供便捷的购票体验。 一、项目介绍 开发语言&#xff1a;Java 框架&…...

ComfyUI实战:如何加载基于Flux.1微调的LoRA模型并优化推理流程

最近在项目里用 ComfyUI 部署基于 Flux.1 微调的 LoRA 模型&#xff0c;踩了不少坑。从模型加载失败到推理时显存爆炸&#xff0c;问题层出不穷。经过一番折腾&#xff0c;总算梳理出一套比较稳定的流程&#xff0c;这里把实战经验记录下来&#xff0c;希望能帮到有同样需求的同…...

如何用ExplorerPatcher解决Windows 11界面不适问题提升工作效率

如何用ExplorerPatcher解决Windows 11界面不适问题提升工作效率 【免费下载链接】ExplorerPatcher 提升Windows操作系统下的工作环境 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher Windows 11带来的界面变革让许多用户感到操作不便&#xff0c;任…...

Ghidra二进制分析工具新手指南:从安装到高效逆向实践

Ghidra二进制分析工具新手指南&#xff1a;从安装到高效逆向实践 【免费下载链接】ghidra_installer Helper scripts to set up OpenJDK 11 and scale Ghidra for 4K on Ubuntu 18.04 / 18.10 项目地址: https://gitcode.com/gh_mirrors/gh/ghidra_installer 工具定位&a…...

Keil5实战:手把手教你制作自定义FLM插件(附完整驱动配置)

Keil5实战&#xff1a;手把手教你制作自定义FLM插件&#xff08;附完整驱动配置&#xff09; 在嵌入式开发领域&#xff0c;Flash编程算法&#xff08;FLM&#xff09;是连接开发环境与目标芯片闪存的重要桥梁。当我们需要支持非标准闪存芯片或特殊外设接口时&#xff0c;自定义…...

生物信息学避坑指南:你的热图聚类总乱?可能是数据标准化和样品注释没做对

生物信息学避坑指南&#xff1a;热图聚类混乱的根源与系统性解决方案 热图&#xff08;Heatmap&#xff09;作为生物信息学中最常用的数据可视化工具之一&#xff0c;广泛应用于基因表达分析、代谢组学、微生物组学等领域。然而&#xff0c;许多初学者在使用热图进行样品聚类时…...

别再踩坑PX4Flow了!实测优象LC-302光流模块,手把手教你搞定PX4无人机室内悬停

无人机室内悬停实战指南&#xff1a;优象LC-302光流模块深度评测与PX4调参技巧 当无人机从开阔的室外飞入复杂的室内环境&#xff0c;GPS信号的突然消失往往让飞手们手忙脚乱。这时&#xff0c;一套可靠的光流定位系统就成了"空中救生绳"。本文将带您深入评测市面上主…...

FLUX.1-dev开源镜像部署教程:像素幻梦免配置环境3步快速上手

FLUX.1-dev开源镜像部署教程&#xff1a;像素幻梦免配置环境3步快速上手 1. 像素幻梦简介 像素幻梦(Pixel Dream Workshop)是一款基于FLUX.1-dev扩散模型构建的像素艺术生成工具。它采用独特的16-bit像素风格界面设计&#xff0c;为创作者提供沉浸式的AI绘图体验。 与传统AI…...