学习使用HAL库的时候发现 HALXXX_DeInit()的初始化定义,看着一脸懵逼,然后在https://blog.csdn.net/zcshoucsdn/article/details/55213616 文章中找到了答案。
根据HAL库的命名规则,其API可以分为以下三大类:
- 初始化/反初始化函数: HAL_PPP_Init(), HAL_PPP_DeInit()
其中反初始化就是解除初始化,HAL_xxx_DeInit()函数通过写复位寄存器,将所有模块复位。
HAL库结构中,在每次初始化前(尤其是在多次调用初始化前),先调用对应的反初始化(DeInit)函数是非常有必要的。某些外设多次初始化时不调用返回会导致初始化失败。