STM32失能时钟和复位外设的区别

发布时间:2024-08-01  

在STM32参考手册中,都有Reset and Clock Control(RCC)复位和时钟控制的章节。

在这一章节就可以看到有两类寄存器:

peripheral reset register(RSTR)外设复位寄存器。

peripheral clock enable register(ENR)外设时钟使能寄存器。

我们拿STM32F1参考手册为例,可以看到如下图寄存器:

wKgaomUD8YCAXiLmAASaLTuRZnU158.png

一种是控制外设时钟的寄存器,一种是复位外设的寄存器。

外设时钟使能和失能

我们都知道,配置STM32外设,会先开启对应的时钟(也就是使能外设时钟)。

比如使能USART1时钟:


RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);


失能USART1时钟:


RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, DISABLE);


前面分享过一篇文章《STM32为什么要先开启外设时钟?》,里面有说:为什么我们要先开启STM32外设时钟。

从时钟使能和失能来说,这里再简单总结一下:使能外设时钟,我们就可以操作(读写)对应的外设;失能外设时钟,则我们无法操作对应的外设。

所以说,我们要操作外设,就必须要先开启(使能)其外设时钟。

复位外设

复位外设相信大部分朋友都能理解,如果使用寄存器开发过的朋友,更应该明白。

简单来说,复位外设就是恢复外设所有寄存器为上电默认值,也可以说复位了我们的配置。

可能有些地方你会也会发现xx外设配置之前有“重新初始化”外设的操作,如:


USART_DeInit(USART1);DMA_DeInit(DMA1_Channel1);


这重新初始化代码里面,其实就是调用了复位外设代码。

失能外设时钟和复位外设区别

上面说了失能外设时钟,我们就不能操作外设了。那么复位外设,我们还能操作外设吗?外设的时钟也会被复位吗?

可能许多人没有深入分析过,我这里简单总结一下:

1、外设时钟未使能(失能状态),不能配置(读写)外设;

2、复位外设,会复位外设的所有寄存器,但外设时钟不会被复位;

3、外设时钟使能,复位外设,再清除复位外设,可以继续配置(读写)外设。如USART1重新初始化:


RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE);
RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, DISABLE);

USART_Init(USART1,  USART_InitStructure);


4、复位外设,但不清除复位外设,则不能继续配置(读写)外设。


RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE);

USART_Init(USART1,  USART_InitStructure);


在STM32的库函数中,外设复位和清除都是成对的,所以,我们用库开发的好处,就是相对不容易犯一些错误。

因为还有很多朋友使用寄存器开发,有很多细节问题可能没有深入研究过,就不知道问题到底处在哪里。

所以,建议用寄存器开发的朋友转向使用(SPL、HAL或CLL)库开发。如果你非要一步一步理解底层,建议使用SPL标准外设库。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    华大电子MCU-CIU32F011x3、CIU32F031x5复位和时钟系统;10. 复位和时钟系统(RESET/CLOCK) 10.1. 引脚复位(MCLR)功能 默认状态下华大电子MCU......
    文章的内容也能回答之前一位网友的问题,不知你会不会阅读本文。 Ⅰ RCC复位和时钟控制 RCC:Reset and Clock Control 相信大家都知道RCC是什么,主要就是讲述复位和时钟的章节。先来讲述一下复位......
    STM32F7系统配置控制器(SYSCFG)及复位和时钟控制(RCC);这篇文章带大家看一下STM32F7的系统配置控制器。系统配置控制器主要用于: 1、 选择以太网PHY接口; 2、 交换FMC......
    手册中,都有Reset and Clock Control(RCC)复位和时钟控制的章节。 在这一章节就可以看到有两类寄存器:peripheral reset register(RSTR)外设复位......
    STM32失能时钟和复位外设的区别;在STM32参考手册中,都有Reset and Clock Control(RCC)复位和时钟控制的章节。 在这......
    STM32复位来源 以及系统和内核复位区别;1STM32的复位和时钟控制 RCC:Reset and Clock Control 每一块STM32中都有这么一个RCC复位和时钟控制模块。 STM32......
    更好地满足设计需求。 STM32C0 系统架构 需要注意的是不带USB,CAN RCC STM32C0复位和时钟控制器管理系统和外围时钟• 两个内部振荡器• 高速内部48mhz RC振荡器(HSI48)• 低速......
    详解80C51单片机的复位电路和时钟电路;复位电路 在80C51中,最常见的复位电路就是下图的上电复位电路。 它能有效地实现上电复位和手动复位。RST引脚高电平有效。 其有效时间应持续24个振荡周期以上才能完成复位......
    书中也有说明,任何未实施的或者未使用的中断向量位置都会放一个默认中断处理程序,它包含一条RESET指令。 三.复位和时钟的关系 当器件复位时,其时钟状态是什么?一般来说它是由芯片配置位决定的。 图......
    应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。RTC模块和时钟配置系统(RCC-BDCR寄存器)处于后备区域,即在系统复位或从待机模式唤醒后,RTC的设置和时......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>