stm32用库函数还是寄存器方式开发
51单片机学到什么程度才好学stm32?
51单片机学到什么程度才好学stm32?
不学51都可以学stm32啊,51是8位,还不如学习stm8,stm32和51有很大的区别,stm32的IO可以复用。stm32有IIC, spi,ADC,等,只要能理解stm32各种库函数,stm32也不是很难,再看看,stm32手册,理解stm32的结构,寄存器等,学会stm32很容易的。反正我觉得不用。
stm32程序会有多大?
单片机,通常指的就是8位单片机,比如51等,stm32是属于32位机,应该算是arm系列了,其实还是单片机,只不过要比8位单片机处理速度要快,功能要强,集成的资源也更丰富,其次就是编程的模式有改变,单片机通常直接对硬件资源进行操作,而stm32是在厂家提供的库上进行程序开发了,当然,它也可以直接对寄存器进行操作,可是在效率上,和库就差远了,除非对它的寄存器了如指掌。
从事单片机开发的人,再去学习stm32,很容易入门的。
stm32是用hal库,还是标准库?懂行的介绍一下?
标准库函数则是ST以前推出的,包括寄存器版本和库函数版本。寄存器版本使用较麻烦,每个设置都要去查看芯片datasheet,好处是可以让你熟悉芯片的寄存器配置。库函数是基于寄存器版本进行二次封装后
推出的,它的优势就是寄存器版本的劣势,方便了使用,不再需要手动去配置寄存器,使用更方便了。但是它的劣势就是HAL的优势,就是每次修改MCU功能,都需要手动去修改功能,而且自己修改也不能
保证正确性,程序代码在不同MCU之间的移植性不强。
HAL库,HAL是Hardware Abstraction Layer的缩写,中文名称是:硬件抽象层,HAL库工程一般使用Cube软件来生成工程。HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,
更方便的实现跨STM32产品的最大可移植性。优势就是不需要开发工程师再关注所用MCU型号,只需要专注所以要的功能软件开发工作。而且是未来主推的方向,正在不断的推出更新。
建议平时用的时候将自动更新关闭,否则会出现之前调试好的代码因为更新导致不能正常工作。设置方法点Cube软件的help,然后选择手动更新,详细见配图。
以我和公司工程师研发经历来看,最开始的时候都使用标准库函数,后来发现ST推出HAL库以后,慢慢都转到HAL库的开发。它的优势在于不同芯片间软件代码的移植性非常强,而且用Cube软件生成
的工程规定了自己的代码放置位置,如果不按规定写,重新用Cube生成工程时自己的代码会被覆盖,进一步加强了代码的移植性。
另外,如果需要修改MCU的功能,比如新添加GPIO或者串口,采用标准库函数的时候,需要复制其他串口的初始化代码,然后手动修改。而采用HAL库则不需要,只需要在Cube添加设置,然后生成即可,
Cube自动帮你把初始化代码生成。
综上所述,建议新手直接使用HAL库,这样更容易上手,更快的开发出所需要的软件功能。将繁琐的寄存器配置工作,交给Cube软件即可,这也符合未来开发的主流思想。