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

【经验分享】stm32h7 hal 库的学习

[复制链接]
STMCU小助手 发布时间:2021-12-29 22:59

stm32h7xx_hal_conf.h 中需要注意的几个地方:

  • HSE_VALUE 这个外接晶振的频率

  • TICK_INT_PRIORITY 这个 tick 的中断优先级,因为 HAL_DELAY 这个函数是基于这个 tick 的中断的,所以如果有其他高优先级的中断中调用了 HAL_DELAY 函数,会造成 tick 的中断一直进不来。这样的话 HAL_DELAY 也会一直卡住,这个高优先级的中断也会一直卡在这里。

  • 断言的参考实现函数。) \; N" K1 c& {/ C6 A1 V1 w

+ J# a3 b0 ?) G7 k+ m
  1. /*
    1 M% v# ]& b, I; N6 A8 h! H
  2. *********************************************************************************************************
    5 ?  L, k  V, z: D, D, `0 Q
  3. *  函 数 名: assert_failed
    ' z+ U& B5 I/ d- m. L
  4. *  形    参:file : 源代码文件名称。关键字__FILE__表示源代码文件名。 2 H( s2 b  L2 H% K
  5. *        line :代码行号。关键字 __LINE__ 表示源代码行号 - M/ H8 `9 N3 b5 u; q  H% C! R
  6. *  返 回 值: 无
    * T: ]: [# y6 `1 S+ t
  7. ********************************************************************************************************* 8 Z: |4 ]# A. p. K1 G
  8. */ % t5 m: D. W4 a
  9. void assert_failed(uint8_t* file, uint32_t line) 2 p! ]6 \: k0 g3 {/ T5 o" }6 C" K
  10. {  
    & M1 c! Q& u: ?' W) G1 |( _
  11.   /*  
    : K4 D7 n6 n& l+ o: m# V
  12.     用户可以添加自己的代码报告源代码文件名和代码行号,比如将错误文件和行号打印到串口 . j1 ]+ C0 ]% S* C* T3 G- {. \
  13.     printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
    . l$ Z8 H4 T( p! D+ K1 X4 o9 C. l7 z1 o
  14.   */
    5 s( o& j, \; t* q
  15.    * Y4 }1 ?% B! ~, t  F& A* }/ S
  16.   /* 这是一个死循环,断言失败时程序会在此处死机,以便于用户查错 */ - R) `$ e3 b8 L% `4 b
  17.   while (1) ! @, Y# N5 K! N5 L+ w/ C/ z) @
  18.   {
    3 I  D  m0 R' L- w4 ?. g
  19.   }
    ' j6 w- t, m8 N  X1 n% ^
  20. }
复制代码
, v6 j# Y$ Y6 n" ]. _9 g2 o' A
  • HAL 库不像之前的标准库,在系统启动函数 SystemInit 里面做了 RCC 初始化,HAL 库是没有做的,所以进入到 main 函数后,系统还在用内部高速时钟 HSI,对于 H7 来说,HSI 主频是 64MHz。

  • HAL_MspInit 和 HAL_MspDeInit 在 stm32h7xx_hal_msp.c 里面做具体实现。

  • PA0_C 这类的引脚只有在 TFBGA240+25 ballout 这种封装上面才有。

  • LSE Bypass 和 LSE On 之间的切换,必须要先关闭 LSE 才行。同样 HSE Bypass 和 HSE On 之间的切换,也必须先关闭 HSE 才行。

  • HAL_RCC_OscConfig 会更新全局变量 SystemCoreClock 的主频值,并且会再次调用函数 HAL_InitTick 更新系统滴答时钟。

    % t8 A# f' I4 b

, a, I& c, ]3 q9 J2 G9 \
收藏 评论0 发布时间:2021-12-29 22:59

举报

0个回答

所属标签

相似技术帖

官网相关资源

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