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库代码.
stm32初学者是应该学寄存器好还是学库函数好
综合来看,建议从库函数学起。一般来说入门只需要学会操作:GPIO、时钟、简单的中断即可。你可以搜索参考资料:野火STM32、李想智芯STM32、正点原子stm32。
初学STM32是学用寄存器还是库函数好
都可以。其实二者没有本质区别,库函数只不过是在寄存器的基础上封装了一下。底层依然是对寄存器进行操作。学库函数版最终也要慢慢了解寄存器,这样才能真正弄懂单片机。学寄存器版也建议了解一下库函数,这样可以方便移植别人的程序,而且自己开发也方便 ...
初学STM32,先学寄存器操作还是库函数操作好呢???
如果有相关嵌入式开发基础,可以从寄存器开始学。如果是第一次接触单片机,建议从库函数开始学,这样上手快,等熟练后分析库函数,就可以学习各寄存器了。
学stm32的时候是直接学库函数还是底层寄存器也学?
建议你先学寄存器操作,然后学库,以后工作中尽量使用库。先学寄存器是因为你从51过渡过来,51也是直接控制寄存器,趁你还没有忘记怎么操作寄存器的时候趁热打铁。用库函数用习惯了你会发现自己会越做越快,但是知其然不知其所以然的感觉很糟糕,这时你再去学寄存器会感觉非常繁琐,完全学不进去。所以,...
学习STM32的寄存器版本好还是库函数版本好求大
我还是认为用寄存器版本比较好,比较灵活,有好多人说直接用库函数方便,方便是方便,当你搞大型程序的时候就知道了,问题一大堆你找都不知道去哪里找,因为你不懂库函数里面的东西,库函数不是你写的。有好多配置库函数是没有给修改入口的。什么ADC的缓冲呀!等等。所以建议你还是用寄存器版本为好 ...
各位高人 请问 STM32要调用库与操作寄存器各有什么优缺点?
个人经验而言,对刚接触STM32的菜鸟而言,最好多操作寄存器,因为寄存器更有挑战性一点,这样更有利于了解寄存器,然后将用寄存器所做的小项目或称小实验用调用库函数的方式再弄一遍,并且了解你所调用库函数背后所操作的寄存器和对应的数据位。也许你会问“难道都要学”,对,没错,都要学,他们只是开发...
单片机编程用库函数好还是寄存器好?
当然,用库函数有一定的缺陷,例如会导致代码量增大,影响程序运行速度等,但是现在stm32单片机的程序空间一般都足够大,并且每一系列里面都有pin-to-pin的型号可以互换,如果程序空间不够,直接替换另一个管脚兼容的,程序空间更大的即可,程序直接移植过来,几乎不用修改。二、从原理性学习来说,用寄存...
stm32的库函数与寄存器有什么不同
同于stm32功能强大,内部寄存器太多,直接操作寄存器比较复杂,因此生产厂商针对其功能,编写一系列子函数供调用,就是库函数,对于大多数使用者来说,使用库函数比直接操作寄存器要高效得多。
学习Stm32使用固件库和写寄存器有什么区别
如果你没有CortexM系列内核的开发基础,建议从固件库开始玩起。等有一定基础,或是特别需要时再用寄存器。使用寄存器,想要深入理解CortexM3内核或是需要为了获得更好的可移植性,学习寄存器编程会比较有帮助。但是从专业的角度上看,寄存器更贴近底层,对外设的工作原理和运行机理会有更深的理解。
STM32F系列微控制器基于库函数的程序设计与直接寄存器操作程序设计...
两者比较,前者的优点是库函数命名更直观易懂、对于初学者基本应用来说更简便、某些情况下标准化程度更高一点点,缺点是代码空间效率不高、不能实现非标准化的操作。库函数不是万无一失的。某些库函数bug重重还不如自己写……