stm32 如何关闭所有的外设时钟

求助啊要做掉电存储怎样关闭所有外设或外设时钟芯片型号stm32f103vet6主要想问有木有简单的库函数可使用而不是一个一个的关闭如果是直接操作寄存器就更好了... 求助啊 要做掉电存储 怎样关闭所有外设或外设时钟
芯片型号stm32f103vet6 主要想问有木有简单的 库函数可使用 而不是一个一个的关闭
如果是直接操作寄存器就更好了
展开
 我来答
woshi88888deba
2014-11-07 · TA获得超过192个赞
知道答主
回答量:79
采纳率:0%
帮助的人:64.5万
展开全部
首先你需要知道程序运行到main函数之前都干了些什么:
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT __main
IMPORT SystemInit
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
从上面可以知道,到mian函数之前,运行了systeminit()函数
那么我们就可以到这个函数中看看它都做了什么?
原来在这个函数里程序对其时钟进行了初始化!!!对应你的问题,外设时钟,那么我们要问外设都挂在什么上?OK,从datasheet中可以知道外设都挂在APB1/和APB2先进外设总线上,那么是否不给APB1和APB2提供时钟外设就没有时钟呢?答案是否定的,发现配置寄存器中没有这项功能,呵呵。
那么我们只能用库函数来关闭自己想要关闭的外设时钟:
void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)
APB2总线上外设时钟使能
void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState)
APB1总线上外设时钟使能
void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState)管AHB总线时钟的
追问
关掉时钟 电流消耗应该会少点吧 主要是想关外设来减少电流消耗 还有更好的办法吗 谢谢!
追答
当然,datasheet后面都有介绍 Electrical characteristics章节,好好看看就知道了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
迪凯特科技(北京)有限公司_
2025-01-03 广告
单片机串口通信数据丢失的原因可能如下:1. 按键通过串口发送对应命令,第一次按按键串口发送的指令正确且能把数据正确的显示出来,在第二次按按键串口发送的指令出现丢失的状况,可能是因为串口通信的波特率设置不正确。2. 如果单片机和外部设备的波特... 点击进入详情页
本回答由迪凯特科技(北京)有限公司_提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式