STM32 | STM32的复用时钟何时开启?

发布者:学富五车最新更新时间:2021-08-09 来源: eefocus关键字:STM32  复用时钟  开启 手机看文章 扫描二维码
随时随地手机看文章

STM32的AFIO时钟真的是在开启引脚复用功能的时候开启吗?其实并不是~


什么是复用?

我们知道,STM32有很多外设,这些外设的外部引脚都是与GPIO共用的。我们可以通过软件来配置引脚作为GPIO引脚还是作为外设引脚。当引脚配置为外设引脚时就叫做复用。如串口默认复用的引脚为:

======001

PA9、PA10引脚可配置为普通IO,也可配置为串口引脚(PA9为TX,PA10为RX)。


例子:串口1为例

关于外设的配置可查阅:《STM32参考手册》关于通用和复用功能I/O(GPIO和AFIO) 的章节,如串口引脚配置如下:

======002

最近看到一份代码(基于STM32F103ZET6)的串口配置如下:

======003

看到这里开启了AFIO时钟,让我疑惑了一下,为什么SPI相关的引脚也配置为复用但并没有开启APIO时钟也能正常工作。所以AFIO时钟应该什么时候开呢?


我们回顾一下,我们为什么要开启时钟呢?因为我们要对芯片内部的硬件进行控制(读写其寄存器),要控制哪一部分,就要开启那一部分的时钟。


本例中,使能GPIOA、USART1的时钟是因为我们要对GPIOA、USART1相关的寄存器进行操作。那么AFIO呢?其管理的寄存器有哪些呢?从参考手册关于通用和复用功能I/O(GPIO和AFIO)这一章节可以看到AFIO管理的寄存器如下:

======004

可以知道,本例对USART1进行配置,并没有涉及到AFIO相关的寄存器,所以并不需要打开AFIO时钟!


所以这里的第7行代码可以删掉。当然不删也可以正常工作,但是会白白增加能耗、写无用代码(白白浪费程序存储器空间)而已!


何时开启AFIO时钟?

按照上面分析的,当然是要操作AFIO相关的寄存器的时候才开启AFIO时钟。此处依旧以串口为例。我们看到AFIO管理的寄存器中有复用重映射和调试I/O配置寄存器(AFIO_MAPR) 这一寄存器,这个寄存器怎么用呢?


首先,我们要知道什么是重映射。

使用重映射功能可以把一些复用功能重新映射到其他引脚上,在某些时候可以方便板级硬件的布局设计。设置AFIO_MAPR寄存器实现引脚的重新映射。此时,复用功能不再映射到它们的原始分配上。 可以重映射到任意引脚吗?其实是有规定的,可查阅参考手册,如串口1的重映射:

======005

我们可以配置PB6、PB7作为串口1的TX、RX引脚,具体配置代码如下:

======006

这里得调用一个重映射配置函数GPIO_PinRemapConfig,可在这个函数在stm32f10x_gpio.c中,如下:

======007

其中第一个参数为要重映射的外设,可在stm32f10x_gpio.h中查看:

======008

其中重映射又分为部分重映射和完全重映射,区别就是要重映射全部的引脚还是部分引脚,这也是有规定的。比如定时器1:

======009

我们从GPIO_PinRemapConfig函数的实现中可以看到我们需要操控AFIO_MAPR寄存器,所以需要开启AFIO时钟。


综上,需要操控AFIO管理的寄存器才需开启AFIO时钟,否则不需要开启。

关键字:STM32  复用时钟  开启 引用地址:STM32 | STM32的复用时钟何时开启?

上一篇:STM32 | 在SRAM、FLASH中调试代码的配置方法
下一篇:STM32 | 硬件SPI主从通信

推荐阅读最新更新时间:2024-11-09 10:23

意法半导体发布安全软件,保护STM32边缘AI设备连接AWS IoT Core的安全
新开发者软件为STM32H5设计,利用ST的Secure Manager安全软件,简化物联网设备与AWS平台的安全连接 2023年10月10日, 中国--服务多重电子应用领域、全球排名前列的半导体公司意法半导体(STMicroelectronics,简称ST;)日前在STM32Cube开发工具包内新增一款软件,以简化高性能物联网(IoT)设备与AWS云的连接。 意法半导体发布了X-CUBE-AWS-H5扩展包,让物联网设备能够无缝、安全地接入AWS云。在这个软件扩展包中有一套为专门终端设备STM32H5系列高性能微控制器设计的软件库和应用代码示例。 该解决方案基于FreeRTOS开源实时操作系统和意法半导体的Se
[嵌入式]
意法半导体发布安全软件,保护<font color='red'>STM32</font>边缘AI设备连接AWS IoT Core的安全
不用串口,如何打印STM32单片机log
本文主要介绍在嵌入式开发中用来输出log的方法。 最常用的是通过串口输出uart log,这种方法实现简单,大部分嵌入式芯片都有串口功能。但是这样简单的功能有时候却不是那么好用,比如: 一款新拿到的芯片,没有串口驱动时如何打印log 某些应用下对时序要求比较高,串口输出log占用时间太长怎么办?比如USB枚举。 某些bug正常运行时会出现,当打开串口log时又不再复现怎么办 一些封装中没有串口,或者串口已经被用作其他用途,要如何输出log 下文来讨论这些问题。 1输出log信息到SRAM 准确来说这里并不是输出log,而是以一种方式不使用串口就可以看到log。在芯片开发阶段都可以连接仿真器调试,可以使用打断点的方法调试,但是有
[单片机]
不用串口,如何打印<font color='red'>STM32</font>单片机log
汽车音响升级战开启,如何打造听觉盛宴?
伴随着全球汽车行业电动化、智能化的快速发展,以及消费者对汽车看得见、摸得着、听得到的品质升级诉求与日俱增,汽车驾乘体验正经历全方位的升级。从汽车三大件到内外饰、再到自动驾驶智能座舱,视觉+听觉+触觉的多维度消费升级正在进行。除了外观颜值、智能化配置、动力外,有分析认为,汽车声学系统有望成为车企差异化竞争的制高点之一,声学产品配置或将成为消费者购车时的重要考量因素。 1 高端车型喇叭越来越多 纵观今年以来发布或上市的高端新能源车型,无一例外都搭载了一套非常“堆料”的音响系统。其中,蔚来ET7采用杜比7.1.4音响,共有23个扬声器,总功率1000W;AITO问界M5搭载HUAWEI SOUND音响系统,配备19单元扬声
[汽车电子]
汽车音响升级战<font color='red'>开启</font>,如何打造听觉盛宴?
GD32与STM32兼容吗?
GD32与STM32是两个不同的微控制器系列,是由两个不同的公司设计和生产的。GD32系列是由国内的长沙国芯微电子设计和生产的,而STM32系列则是由欧洲的STMicroelectronics公司设计和生产的。 虽然GD32与STM32都是基于ARM Cortex-M内核的微控制器,但是它们并不完全兼容。由于两个公司的设计和生产流程不同,GD32系列和STM32系列的外设具有不同的寄存器映射和不同的寄存器位域。因此,任何在STM32上编写的应用程序不能直接在GD32上运行,需要对代码进行适当的修改。 在进行移植时,需要仔细研究两者之间的差异性,例如GPIO、串口、定时器等外设的差异,以及使用的库函数的不同。同时也需要检查时钟、中断
[单片机]
C语言面向对象编程的最佳实
一、前言 以STM32为例,打开网络上下载的例程或者是购买开发板自带的例程,都会发现应用层中会有stm32f10x.h或者stm32f10x_gpio.h,这些文件严格来时属于硬件层的,如果软件层出现这些文件会显得很乱。 使用过Linux的童鞋们肯定知道linux系统无法直接操作硬件层,打开linux或者rt_thread代码会发现代码中都会有device的源文件,没错,这就是驱动层。 二、实现原理 原理就是将硬件操作的接口全都放到驱动链表上,在驱动层实现device的open、read、write等操作。当然这样做也有弊端,就是驱动find的时候需要遍历一遍驱动链表,这样会增加代码运行时间。 三、代码实现
[单片机]
采用STM32单片机和EM310模块的无线终端设计及在SCADA系统中的应用
引言 在监测监控及数据采集系统(SCADA)系统中,采集数据的实时性和准确性对系统有很大的影响,合适的通信网络可以有效提高SCADA系统的效益,本文设计的GPRS无线终端在SCADA系统中的应用解决了上述问题,除满足数据实时性和准确性外,还具有建设成本低.结构简单.传输容量大.可远程控制等优势. 1 、终端简介 1.1、终端结构 无线终端由EM310GSM模块和STM32F103单片机构成,以STM32F103单片机为核心,STM32F103单片机有丰富的通信接口,用于连接EM310和现场仪表;还有丰富的I/O资源,可以扩展较大容量的RAM,一方面存储指令集,用于解读指令并作出相应的动作;另一方面用于暂时存储监测点采集到的数据
[单片机]
采用<font color='red'>STM32</font>单片机和EM310模块的无线终端设计及在SCADA系统中的应用
苹果公司在WWDC 2022开启前举办开放日接待开发者
苹果公司在WWDC开始的前一天举办了一次开发者聚会,前往Apple Park园区的客人们参观了新的开发者中心。周日,苹果公司为位于苹果园的开发者中心举办了一个开放日,与会者参观了该中心的一楼。迎接他们的是Caffe Macs的咖啡和甜甜圈,游客们被带着口罩的工作人员招手和欢呼带进了大楼。 在作者和开发者保罗·哈德森在Twitter上分享的一系列照片和视频中,参观者可以参观中心内的一些房间,房间的设计和参观本身都很有趣,隐藏了许多元素供游客发现。 建筑内的房间名称取自macOS版本,包括Panther、Tiger、Leopard和El Capitan。这些房间本身被哈德森描述为 专门为开发者设立的Apple Store ,里
[手机便携]
ch32单片机怎么样?ch32好用吗?ch32和stm32的区别
Ch32单片机是龙芯微电子推出的一种高性能、低功耗的32位嵌入式处理器。它集成了ARM Cortex-M4内核,配备了丰富的接口和外设,可满足不同领域、不同应用场景的需求。在性能、功耗和功能方面,Ch32单片机比部分同级别的单片机还会优秀。 Ch32和其他单片机相比,其最大的优势在于其先进的处理器核心。在安全性、性能、低功耗等方面有着极高的表现。Ch32单片机采用了ARM Cortex-M4核心,而该核心是具有全面DSP功能的ARM Cortex-M系列中的一种。ARM Cortex-M4核心集成了DSP指令集和浮点计算,可满足高性能、高精度的数字信号处理的需求。同时,该核心还支持多线程,方便开发人员实现复杂应用程的并行执行,提高
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved