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,先学寄存器操作还是库函数操作好呢???
如果有相关嵌入式开发基础,可以从寄存器开始学。如果是第一次接触单片机,建议从库函数开始学,这样上手快,等熟练后分析库函数,就可以学习各寄存器了。
初学STM32是学用寄存器还是库函数好
都可以。其实二者没有本质区别,库函数只不过是在寄存器的基础上封装了一下。底层依然是对寄存器进行操作。学库函数版最终也要慢慢了解寄存器,这样才能真正弄懂单片机。学寄存器版也建议了解一下库函数,这样可以方便移植别人的程序,而且自己开发也方便 ...
单片机编程用库函数好还是寄存器好?
当然,用库函数有一定的缺陷,例如会导致代码量增大,影响程序运行速度等,但是现在stm32单片机的程序空间一般都足够大,并且每一系列里面都有pin-to-pin的型号可以互换,如果程序空间不够,直接替换另一个管脚兼容的,程序空间更大的即可,程序直接移植过来,几乎不用修改。二、从原理性学习来说,用寄存...
学stm32的时候是直接学库函数还是底层寄存器也学?
我当年初学的时候也纠结过,后来选择了先学习寄存器操作,后来慢慢的把库函数也学会了,其实都不难。完全可以两个都学,只是你现在选一个先下手而已。建议你先学寄存器操作,然后学库,以后工作中尽量使用库。先学寄存器是因为你从51过渡过来,51也是直接控制寄存器,趁你还没有忘记怎么操作寄存器的时候趁...
初学STM32是学用寄存器还是库函数
先学寄存器。学寄存器能让你掌握单片机的基本的系统架构。入门以后学用库函数开发就行了。
stm32学寄存器版还是库函数版好
库函数版本比较好,毕竟开发周期短,简单方便,便于维护。寄存器适合于学习。
学习STM32的寄存器版本好还是库函数版本好求大神解答
库函数版本的好读写,便于维护,寄存器版本的不如库函数的开发周期短,做项目的话还是推荐库函数版本。寄存器的是让大家学习的比较好
学习STM32的寄存器版本好还是库函数版本好求大
我还是认为用寄存器版本比较好,比较灵活,有好多人说直接用库函数方便,方便是方便,当你搞大型程序的时候就知道了,问题一大堆你找都不知道去哪里找,因为你不懂库函数里面的东西,库函数不是你写的。有好多配置库函数是没有给修改入口的。什么ADC的缓冲呀!等等。所以建议你还是用寄存器版本为好 ...