完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
1、时钟树
2、刨析 2.1、系统时钟(不配置默认内部8MHz,如寄存器版点亮LED) 3个时钟来源(HSI、HSE、PLL倍频) 2.1.1、HSI时钟 内部时钟8MHz(不稳定) 2个走向 1、到SW 2、经过2分频到PLLSRC 2.1.2、HSE时钟 外部晶振(4-16MHz) 4个走向 1、到PLLXTPRE 2、2分频到PLLXTPRE 3、到SW 4、128分频到RTCSEL CSS:时钟监视系统(外部时钟不工作,自动切换内部时钟) 2.1.3、PLL时钟 3个选择PLLXTPRE和PLLSRC(内部2分频,外部,外部2分频) 2.2、RTC和看门狗时钟 2.2.1、RTC时钟来源 1.高速外部HSE128分频 2.低速外部LSE 3.低俗内部LSI 2.2.2、看门狗时钟来源 3.低速内部LSI 2.3内部时钟输出(PA8) 1.系统时钟 2.高速内部 3.高速外部 4.PLL的2分频 3、库函数SystemInit()分析 3.1内部8MHz高速脉冲开启 3.1.1 RCC_CR RCC时钟基地址强制转换为TypeDef指针类型 因为结构体成员都是32位(4字节),所以字节从CR一直往下都是4个字节4个字节的分配,符合寄存器的地址 所以可以直接引用改地址内容 3.2条件编译 因为是HD的,所以不满足CL,跳过编译,编译else后面语句 个人感觉没什么用(&运算F不变,0清0) 因为复位值就是0 3.3PLL设置 1.CR寄存器16、19、24位清0,HSE振荡器关闭、时钟监测器关闭、PLL关闭 2.CR寄存器18位清0,外部4-16MHz振荡器没有旁路 3.CFGR寄存器16、17、18、19、20、21、22位清0,HSI振荡器时钟经2分频后作为PLL输入时钟、 3.4清除中断标志位 因为是HD,所以前面都不会执行,直接执行最后 CIR寄存器16、17、18、19、20、23位置1, 3.5函数SetSysClock() 条件编译直接进入函数 前面定义了72MHz(可以换成想要的时钟,换宏定义) 条件编译直接进入函数72MHz 3.6函数SetSysClockTo72(void) 1.定义2个32位的变量,CR寄存器16位置1,HSE振荡器开启。 2.等待17位外部3-25MHz时钟就绪 或 到定时时间结束,跳出while 判断外部时钟是否就绪,就绪变量赋1,否则赋0 3.判断是否打开就绪 闪存编程手册 1启用预取缓冲区。2清零。3两个等待状态 设置分频系数:HCLK=72,PCLK2=72,PCLK1=36(sysclk系统时钟72) 4.条件编译 设置PLL 9倍,系统时钟、HCLK、PCLK2 72MHz,PCLK1 36MHz 5.使能PLL 等待完成 设置PLL为系统时钟 等待设置完成 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1771 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1070 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1935浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
728浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
568浏览 3评论
593浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
551浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 13:09 , Processed in 0.901020 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号