由于stm32f1系列的HAL库不完善,很多像我一样 第一次将一个f1系列产品项目的源码进行标准库转HAL库,在我成功移植成功HAL库后,特此记录项目经历的心得

1. 如果是自己写的代码,最好把它们放在类似这种HAL库指定的用户代码存放范围,以免下次配置工作台时导致,自己的代码被自动删除

2.f1的HAL库中,少了很多f4系列以上的HAL库API函数代码 ,例如

 DMAContinuousRequests() HAL_RTC_GetCounter()等等 同时呢 一些结构体也少了部分成员,所以大家在移植的时候需要多加注意 。

3.与标准库不同,HAL库有专门的初始化函数 和地处初始化函数 当你调用初始化函数时,就会自动执行底层初始化。形如

MX_ADC1_Init()初始化 当main函数调用时 就会自动调用 HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle),以此类推。

4.HAL库的中断在stmf1xx_it.c中打开(你也可以自己写,但按照HAL库的架构写方便以后移植)

当有中断发生后,会自动调用回调函数,你可以把自定义功能写在回调函数内部。 

weak是弱定义,你可以重写函数名称记住关键,打开中断的函数名和回调函数名不要改变,这是HAL库内部固定的函数名称 。

更多推荐