从零开始学习单片机16
STM32单片机
STM32和51单片机的区别
51单片机的外设资源少,寄存器少,运行速度慢,价格便宜,容易上手
STM32单片机的外设资源更多,寄存器多,运行速度相对快,价格相对贵,上手相对较难
STM32的寄存器寄存器非常多,更复杂,一般用库函数进行编程,也就是API接口,这是与51单片机编程时最大的区别
寄存器编程与库函数编程:
寄存器编程是直接操作寄存器的编程
库函数编程相当于是间接的寄存器编程,就是把寄存器的参数和配置封装成函数,可以调用函数进行外设初始化,厂家封装提供好的,只需要去操作厂家提供的函数,去初始化对应的一些外设,就可以完成对芯片的一些资源的使用
寄存器编程(直接对寄存器进行操作,是最接近底层的编程方式,也是运行效率最高的)
库函数编程(代码更好维护,开发过程更快,可移植能力强)
ST提供的3种库函数编程方式:标准库、HAL库、LL库
其中标准库是最早的,已经停止维护了,现在更多使用HAL库,LL库的效率更高,在特殊情况下使用,CubeMX现在里面只有HAL库和LL库
HAL库的优点:
最大可移植性
2.提供了一整套一致的中间件组件,如RTOS,USB,TCP/IP和图形等
3.通用的用户友好的API函数接口
4.HAL库已经支持STM32全线产品
学习STM32所需要软件:
Keil MDK用于编写代码,编译代码(与之前51单片机用的不同)
STM32CubeMX用于自动生成工程,减少手动重复工作
vscode用于更高效地编写代码