一个网站做多有几种颜色wordpress安全锁
2026/4/18 15:49:57 网站建设 项目流程
一个网站做多有几种颜色,wordpress安全锁,东莞做网站it s,广东源江建设集团有限公司网站目录 本节主要学习了解时钟树的配置和部分模块的时钟开启操作。 1.时钟树的初始状态 https://www.bilibili.com/video/BV11X4y1j7si?t34.2p39 时钟树的初始状态#xff1a;即时钟树在单片机上电或者复位后的状态。 SYSCLK#xff1a;系统时钟#xff0c;有三种来源…目录本节主要学习了解时钟树的配置和部分模块的时钟开启操作。1.时钟树的初始状态https://www.bilibili.com/video/BV11X4y1j7si?t34.2p39时钟树的初始状态即时钟树在单片机上电或者复位后的状态。SYSCLK系统时钟有三种来源。初始状态来源为 HSI单片机内部高速时钟8MHZ具体初始状态HSISYSCLKHCLKPCLK1PCLK28MHZ分频器都为 1.验证初始状态Cortex-M3内核时钟来源为 HCLK这个决定了代码的执行速度。所以可以写一个延时闪灯函数 for 循环观察时间的变化来判断时钟的速度快慢。for 公式 0.5 秒/1/8MHZ* 10假设周期得到延时 500ms0.5s 需要执行的 for 循环次数 40W 次上图为 LED 初始化代码LEDPC13开漏输出open drain编译下载后发现闪灯速度很快。按理说是 500ms 翻转一下1HZ 的频率为什么看起来更快很多带着疑问往后学习2.标准库的启动代码https://www.bilibili.com/video/BV11X4y1j7si?t468.4p39上图为启动代码.s 位置这里面__Vectors中断向量表Reset_Handler单片机从此处开始执行的这个Reset_Handler先执行 SystemInit时钟频率初始化自动将时钟树配置成 72MHZ后执行 main用户在 main 中编写自己的代码上图为SystemInit时钟树配置成 72MHZ 的操作。HSE 直接锁相环 9 倍频时钟统一配置为 72MHZ所以闪灯明显加快。注释掉SystemInit不让时钟配置为最高的 72MHZ。然后编译下载发现灯闪烁变慢了点但是也没有达到想要的 500ms 一次为什么每个For循环消耗10个时钟周期这个 for 循环消耗的周期数是个不确定的值只是这里取了 10在当前的时钟树上图配置下每一个 for 消耗大约 6 个周期所以 40w 的 i 循环改为 66w就可以实现严格的 500ms 延迟了。编译下载后基本 1s 闪灯一次3.时钟树的编程接口https://www.bilibili.com/video/BV11X4y1j7si?t762.5p3910 个编程接口啊莫慌。上图左右基本配对而且基本用不到哈哈RCC_ 开头Reset And Clock Controller 控制复位和时钟树。上图右边颜色解释带颜色表示可开关。底色为灰色默认关闭底色为绿色默认开启API 函数解析RCC_HSE_Config高速外部时钟开关HSE 默认关闭RCC_PLL_Configphase lock loop锁相环配置俩参数输入源和分频。其他的大同小异看图理解即可。RCC_GetFlagStatus获取 RCC 状态。时钟配置需要消耗一定时间和串口发送完成标志等类似。4.配置时钟树https://www.bilibili.com/video/BV11X4y1j7si?t1217.1p39屏蔽掉 SystemInit直接 main 执行SYSCLKPCLK2PCLK1HCLK8MHZ如何写代码从上图左边的树变成右边的树四步上图左1.配置 HSE2.配置锁相环3.配置三个分频器4.配置 SYSCLK 来源自定义封装函数App_SystemClock_init步骤 1开启 HSE步骤 2配置锁相环选择 HSE9 倍频。上图中下面部分为具体配置代码步骤 3配置三个分频系数AHB、APB1、APB2步骤四切换系统时钟来源。把默认的 HSI更换成我们走 HSE 和锁相环的路径。来源切换需要消耗一定时间所以要用到 RCC_GetSYSCLKSource判断是否切换完成。上图为整个系统时钟配置代码具体实现5.配置Flash指令预取https://www.bilibili.com/video/BV11X4y1j7si?t1893.1p39配置完时钟树后并没有结束我们还要配置 flash 的指令预取和访问延迟上图为单片机内部一个结构框图。Flash 相当于硬盘当单片机运行的时候Cortex-M3 内核会从 flash 中一条条读代码然后在 CPU 中执行。但是 flash 读取的速度远远赶不上内核程序执行的速度所以实际运行 flash 会拖后腿。为了解决这个问题加入了缓冲区机制这种机制叫指令预取。在 Reset_Handler 的 SystemInit 中其实已经开启了指令预取但是我们做实验嘛把这个SystemInit 用“;”注释掉了。所以如何手动开启用到以下 APIFLASH_PrefetchBufferCmd指令预取开启要求 SYSCLK 小于等于 8MHZ所以放在上图代码地方。配置访问延迟flash 接口访问速度不能大于 24MHZ。72MHZ 时候需要等待两个周期。编译下载发现闪灯加快说明时钟配置成功手动把 SYSCLK 从 8MHZ 配置成 72MHZ6.片上外设开关和复位https://www.bilibili.com/video/BV11X4y1j7si?t2139.8p39通过时钟树对片上外设开关和复位。树上有很多树叶可以通过函数开关这些树叶片上外设的时钟。上图为开启外设示例IO 口串口按下和抬起复位信号 IIC1 模块就被复位了。总结屏蔽掉 SystemInit学了下时钟树的配置方法开 HSE配锁相环配三个分频系数配 SYSCLK 源和 flash 的配置方法执行预取访问延迟

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询