STM32库函数和寄存器的区别

库函数版和寄存器版的系统时钟设置的区别:
**1.**库函数的目的是让用户应用的,而寄存器更加原始

库函数的系统时钟是默认设置的,且放在启动文件里。而寄存器版的系统时钟是Stm32_Clock_Init(336,8,2,7);.

**2.**库函数的快捷的,但不是每个芯片都有的;寄存器是复杂的,但是每个芯片厂商都有提供系统的寄存器设置信息。

分别打开库函数和寄存器版的I/O口设置:
库函数:
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);gotoh后先通过assert_param();函数检查格式是否正确同时只要是ENABLE,RCC->AHB1ENR |= RCC_AHB1Periph;接着给对应的寄存器赋值。

寄存器:
RCC->AHB1ENR|=1<<0; //使能PORTA口时钟 (就一句赋值语句就行了)。

从这里也可以看出寄存器的第二个区别是(打个比方,做为嵌入式开发我们经常会用到电子元器件,这是我们有两个选择一是在淘宝直接买一个模块,二是在在淘宝买这个模块的对应的元器件然后自己焊接)这个就可以看出通过寄存器的设置确实有利于理解对应的工作原理,而且对于简单的应用来说,确实很快捷。但是随着你做的东西越来越多,越来越复杂,就无暇顾及每一个功能模块的具体运行情况,这时一般的话会在网上直接买对应的模块,然后利用串口,iic,spi等通信方式进行获取对应的数据即可。这时,我在想学习寄存器目的就是为了更快理解一个新的芯片,因为正点原子并没有所有的芯片的库函数。库函数不是凭空来的,也不是必须有的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章