学stm32的时候是直接学库函数还是底层寄存器也学?

2024-05-16 15:24

1. 学stm32的时候是直接学库函数还是底层寄存器也学?

我当年初学的时候也纠结过,后来选择了先学习寄存器操作,后来慢慢的把库函数也学会了,其实都不难。完全可以两个都学,只是你现在选一个先下手而已。
建议你先学寄存器操作,然后学库,以后工作中尽量使用库。
先学寄存器是因为你从51过渡过来,51也是直接控制寄存器,趁你还没有忘记怎么操作寄存器的时候趁热打铁。
用库函数用习惯了你会发现自己会越做越快,但是知其然不知其所以然的感觉很糟糕,这时你再去学寄存器会感觉非常繁琐,完全学不进去。
所以,先学寄存器操作,再学库函数操作。
两个都学是必要的,有时候做工业控制的项目有严格的实时性要求,你用库函数会使速度变慢,这时你得用寄存器。其他时候能用库尽量用库,开发周期短,可读性强,易于跟人配合。
 
寄存器操作就像手动挡汽车,库函数操作就像自动挡汽车。手动挡会了,自动挡自然也会了。

学stm32的时候是直接学库函数还是底层寄存器也学?

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

1要看你个人基础,如果你是精通51或AVR单片机,对它们的寄存器非常了解,那么你可以触类旁通,那么可以从寄存器学起。
STM32的寄存器非常多,配置麻烦,官方为了方便编写了库函数来操作对应的寄存器,在实际工作中基本上都是使用库函数完成工作的。所以为了效率可以从库函数学起。
综合来看,建议从库函数学起。一般来说入门只需要学会操作:GPIO、时钟、简单的中断即可。你可以搜索参考资料:野火STM32、李想智芯STM32、正点原子stm32。

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

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

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