stm32初学者是应该学寄存器好还是学库函数好

发布网友 发布时间:2022-04-26 06:17

我来回答

2个回答

热心网友 时间:2022-06-24 14:53

1要看你个人基础,如果你是精通51或AVR单片机,对它们的寄存器非常了解,那么你可以触类旁通,那么可以从寄存器学起。

STM32的寄存器非常多,配置麻烦,官方为了方便编写了库函数来操作对应的寄存器,在实际工作中基本上都是使用库函数完成工作的。所以为了效率可以从库函数学起。

综合来看,建议从库函数学起。一般来说入门只需要学会操作:GPIO、时钟、简单的中断即可。你可以搜索参考资料:野火STM32、李想智芯STM32、正点原子stm32。

热心网友 时间:2022-06-24 14:53

这个是老早的话题了,用了这么久stm32了,详细给你解释一下,希望有用.
先说寄存器方式,编程的基本操作是寄存器,网上有些例程直接给寄存器赋值的程序简直是*的写法形如:ADC1->CR2|=1<<2; //开启AD校准 while(ADC1->CR2&1<<2); //等待校准结束
这样的写法没有手册对照是很难看懂的,其实寄存器的各个位在头文件里都有定义,都起好名字了干嘛不用啊,不用是傻瓜.另外很多的操作也都是用inline函数定义的,不会有任何额外的开销.寄存器操作可以用,原则上尽量使用头文件定义好的就是了.
另外就是库函数操作,一个库函数完成一个功能,初学看着有点懵,实际上这些库函数是有源码的,源码里都是用寄存器操作,具体怎么实现一看便知,改成寄存器操作轻而易举.库函数比较多,用到哪儿看哪儿就是了.另外再说几点1库函数有一定的操作顺序或者逻辑,这个有一定的道理,顺序不对有可可能出现意外的状况.2库函数只能帮你完成初始化或者比较简单的操作,更多的编程细节还是要自己去体会和实验.3库函数可能比寄存器费那么一点点函数调用的开销,这个在初始化阶段无所谓,如果实在不能接受参照源码改就行了.
另外现在st的cube软件支持所有stm32系列,可以用更简洁的图形化界面快速生成hal库代码.

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com