STM32 HAL和底层驱动API说明手册(官方手册)
要点:
1. MCU原厂与具体用户之间的需求,是不同的。
MCU原厂希望同一款 MCU,可以应用(满足)到最可能多的不同行业、不同场景的需求。
这使得 ST MCU需要很多的寄存器,通过不同的设置来满足不同场景的需求。对于一个具体的项目来说,并不需要那么多没有用的、额外的功能;ST MCU 的这种做法,无疑增加了具体用户在该 MCU上的使用难度。
有些国产 MCU,它们没有那么多的寄存器需要设置,寄存器很简单,因此,这类 MCU 原厂可能并不需要为用户开发一个图形化的寄存器配置界面。
2. HAL 库,目的是为了通过 CubeMx来配合使用的?而不是为直接编程服务的?
如果不使用 CubeMx,而是直接寄存器编程,那么,使用 HAL无疑是自找麻烦。
当然,也并非总是如此,比如需要自动生成带有 RTOS,图形界面库,TCP/IP之类的项目时,HAL库是方便的。
在使用 ST的 MCU时:
假如没有 CubeMx,那么,用户在选择 MCU的时候,当然会选择一种寄存器设置简单一些的 MCU吧?>> 不买 ST的MCU,ST 不干了。ST是以盈利为目的的公司,可不是公益慈善机构啊?
假如没有 CubeMx,开发一些复杂的应用,可能需要一位底层驱动开发工程师,和一位应用层开发工程师。>> 人工贵,为什么不使用设置简单的MCU?用户 不干了。为什么要多花钱?老子又不是钱多了没处花?
CubeMX 是处理 “ST 不干了” 与“用户 不干了” 的一种途径,一个桥梁?
——————————————————————-
STM32F1系列HAL库 源码注释汉化 stm32f1xx_hal_cortex.c & .h https://zhuanlan.zhihu.com/p/671707912
———
UM1725: Description of STM32F4 HAL and low-layer drivers https://www.st.com/content/ccc/resource/technical/document/user_manual/2f/71/ba/b8/75/54/47/cf/DM00105879.pdf/files/DM00105879.pdf/jcr:content/translations/en.DM00105879.pdf
HAL and low-layer drivers https://www.st.com/content/st_com/en/search.html#q=HAL%20and%20low-layer%20drivers-t=resources-page=1
UM3029: Description of STM32C0 HAL and low-layer drivers
UM1785: Description of STM32F0 HAL and low-layer drivers
UM1850: Description of STM32F1 HAL and low-layer drivers
UM1940: Description of STM32F2 HAL and low-layer drivers
UM1786: Description of STM32F3 HAL and low-layer drivers
https://www.st.com/content/st_com/en/search.html#q=UM1725-t=resources-page=1
==========================================
ST微控制器EMC设计指南 https://www.st.com/resource/zh/application_note/an1709-emc-design-guide-for-stm8-stm32-and-legacy-mcus-stmicroelectronics.pdf
STM32单片机系统内存启动方式 https://www.st.com/resource/zh/application_note/an2606-stm32-microcontroller-system-memory-boot-mode-stmicroelectronics.pdf
如何在STM32微控制器中获得最佳ADC精度 https://www.st.com/resource/zh/application_note/an2834-how-to-optimize-the-adc-accuracy-in-the-stm32-mcus-stmicroelectronics.pdf