Gmock使用(gmock doall)

Gmock使用(gmock doall)blockquote 超子物联网 HAL 库学习 汇总入口 超子物联网 HAL 库笔记 汇总 写作不易 如果您觉得写的不错 欢迎给博主来一波点赞 收藏 让博主更有动力吧 汇编的启动文件 s 结尾的那个 在每次复位时 都是先调用 SystemInit 函数去配置时钟 默认的最终时钟是 使用的是内部的 HSI 内部高速时钟 8MHZ blockquote

大家好,我是讯享网,很高兴认识大家。



 <blockquote> 

讯享网

超子物联网 HAL库学习 汇总入口:

超子物联网HAL库笔记:[汇总]

写作不易,如果您觉得写的不错,欢迎给博主来一波点赞、收藏~让博主更有动力吧!

汇编的启动文件(.s结尾的那个)在每次复位时,都是先调用SystemInit函数去配置时钟。 默认的最终时钟是 使用的是内部的HSI 内部高速时钟 8MHZ

  • SystemInit首先会设置CR寄存器(时钟控制寄存器)把位0置1(使用内部高速时钟)。
  • 然后会去设置CFGR寄存器,主要是设置路径,以及倍频之类的东西

我们可以调用 来把时钟输出8MHZ的方波到默认的PA8上验证一下。

在使用HAL库前要用HAL_Init()初始化一下。

main.c

讯享网

所以仅仅需要这两行就可以输出时钟了。示波器验证正确。

注意

  • APB1最大时钟为36MHZ
  • APB2最大时钟为72MHZ


讯享网

需要设置的。和路线,其实就是在函数中一步步设置。

代码如下

main.c

 

rcc.c

讯享网

结果如下(转换成10进制):分别为 64M 32M 64M

流程如下

只修改了rcc.c的文件

rcc.c

 

结果:

HAL_Init 是 HAL库要求我们调用的第一个函数。

下面是HAL_Init调用时 做的工作:

  1. 把指令预取功能打开
  2. 设置中断分组
  3. 将Systick作为时间基准,配置为1ms的中断
  4. 初始化底层硬件
  5. 返回 HAL_OK

标准库和HAL库的很大的一个区别:Systick

  • 每次进入Systick中断时 对32位全局变量uwTick累加1
  • 提供了HAL_GetTick 获取uwTick全局变量

Systick时基最常用的地方就是各个外设采用阻塞轮训处理数据时,做超时判断、阻塞延时、


小讯
上一篇 2025-04-18 18:28
下一篇 2025-06-14 11:05

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/165289.html