stm32h7xx_hal_conf.h 中需要注意的几个地方: $ n1 q3 L9 y2 |, U
- /*
! H% A3 \" g' t3 F - ********************************************************************************************************* . b6 p# R$ M. s; m. P* `9 f
- * 函 数 名: assert_failed
- {3 K+ M# K! a! l w! Z+ T8 J - * 形 参:file : 源代码文件名称。关键字__FILE__表示源代码文件名。
J6 W9 }$ N' r4 } - * line :代码行号。关键字 __LINE__ 表示源代码行号 1 T! K9 { F9 S$ O! P5 B) r
- * 返 回 值: 无 3 c! \* ?0 O4 V
- ********************************************************************************************************* % R4 N6 a) o6 Q4 Q- L: Z4 a
- */ 9 V7 {1 n# X- O
- void assert_failed(uint8_t* file, uint32_t line)
6 ]1 \/ C' g9 E, R+ e% O: p - {
; M( \: z' b F3 L - /*
, e1 w( Z( C, ~+ l- k - 用户可以添加自己的代码报告源代码文件名和代码行号,比如将错误文件和行号打印到串口 ( }+ Q t' v. f' ]0 G
- printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + U9 }( n L; g$ j; a* M
- */
; o1 z; @7 \ u& t1 ^2 {! `. Q5 l: d -
0 G1 S; @ t$ i- V1 d - /* 这是一个死循环,断言失败时程序会在此处死机,以便于用户查错 */ % @$ Z: @7 U, `$ L7 l
- while (1) ) Q) J# G! e% `; _! G. ?; Q8 N
- { 2 H" I1 c. r) ~4 j5 c$ m, P T
- } * S' G# ?" ~ }3 @% E4 m
- }
复制代码 0 E* u1 Z( Y# j+ e
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 更新系统滴答时钟。 % b# {- K0 j! Z
+ z" P7 n& x0 F& |% N1 F0 r# u
|