stm32h7xx_hal_conf.h 中需要注意的几个地方: ) E$ z9 ^2 q& U. Z: P+ U; s0 N
- /* 2 T1 I: B3 x' e# ~& F. f
- *********************************************************************************************************
$ i& N' s& @2 p3 |& K - * 函 数 名: assert_failed
) `8 E. v; B2 i6 { - * 形 参:file : 源代码文件名称。关键字__FILE__表示源代码文件名。
- u3 ?! }1 l) R& A$ J - * line :代码行号。关键字 __LINE__ 表示源代码行号
* b7 n, t5 N+ I - * 返 回 值: 无
+ F/ R: H* V% ?* H9 T+ Q% N - *********************************************************************************************************
9 a' _ g- a! ?' K - */
( K& x7 P4 ^9 S' O+ W2 H8 P - void assert_failed(uint8_t* file, uint32_t line)
+ a4 I, I* {4 _1 s - {
. l" q7 I& x# r% M - /*
, y' v' r( f$ L. J% i3 |$ t+ c - 用户可以添加自己的代码报告源代码文件名和代码行号,比如将错误文件和行号打印到串口
0 O5 [ e `" i6 z! g5 U* l$ e - printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
# f+ W3 K0 `! C4 e3 ^* ?& V - */
' _! ?% b) C f8 n- i -
# p4 @+ O; m$ d3 t - /* 这是一个死循环,断言失败时程序会在此处死机,以便于用户查错 */ 2 s0 Y$ e& q6 j$ X% W1 q; j/ x
- while (1) 4 ~' r; G9 W& X: C: E: P
- {
" L2 E& [8 D5 p- H7 a4 } b, U4 R/ | - }
; e) u, B; T+ O7 H, E - }
复制代码 3 V3 Q+ q9 `5 k
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 更新系统滴答时钟。 2 ^- G G) R" |5 {0 {- b
$ P U6 ^5 g% b* F# E5 Y
|