你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
STMCU小助手 发布时间:2023-2-26 15:01

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


640.jpg


外设时钟使能和失能
我们都知道,配置STM32外设,会先开启对应的时钟(也就是使能外设时钟)。
比如使能USART1时钟:
  1. RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);失能USART1时钟:
复制代码
失能USART1时钟:
  1. RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, DISABLE);
复制代码

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

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

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

  1. USART_DeInit(USART1);
  2. DMA_DeInit(DMA1_Channel1);
复制代码


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

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

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

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

  1. RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE);

  2. USART_Init(USART1, &USART_InitStructure);
复制代码

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

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

转载自:嵌入式微处理器



收藏 评论0 发布时间:2023-2-26 15:01

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版