stm32初学者是应该学寄存器好还是学库函数好
意法半导体(中国)投资有限公司
2023-06-12
展开全部
2018-09-06
展开全部
1要看你个人基础,如果你是精通51或AVR单片机,对它们的寄存器非常了解,那么你可以触类旁通,那么可以从寄存器学起。
STM32的寄存器非常多,配置麻烦,官方为了方便编写了库函数来操作对应的寄存器,在实际工作中基本上都是使用库函数完成工作的。所以为了效率可以从库函数学起。
综合来看,建议从库函数学起。一般来说入门只需要学会操作:GPIO、时钟、简单的中断即可。你可以搜索参考资料:野火STM32、李想智芯STM32、正点原子stm32。
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
STM32是一款广泛应用于消费类电子、汽车、工业和物联网领域的低功耗嵌入式系统芯片。ST公司推出了多个STM32系列,以满足不同应用需求。以下是ST公司主要的STM32系列:1. STM32WB系列:这是ST公司推出的第一款支持2.4GHz...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
这个是老早的话题了,用了这么久stm32了,详细给你解释一下,希望有用.
先说寄存器方式,编程的基本操作是寄存器,网上有些例程直接给寄存器赋值的程序简直是变态的写法形如:ADC1->CR2|=1<<2; //开启AD校准 while(ADC1->CR2&1<<2); //等待校准结束
这样的写法没有手册对照是很难看懂的,其实寄存器的各个位在头文件里都有定义,都起好名字了干嘛不用啊,不用是傻瓜.另外很多的操作也都是用inline函数定义的,不会有任何额外的开销.寄存器操作可以用,原则上尽量使用头文件定义好的就是了.
另外就是库函数操作,一个库函数完成一个功能,初学看着有点懵,实际上这些库函数是有源码的,源码里都是用寄存器操作,具体怎么实现一看便知,改成寄存器操作轻而易举.库函数比较多,用到哪儿看哪儿就是了.另外再说几点1库函数有一定的操作顺序或者逻辑,这个有一定的道理,顺序不对有可可能出现意外的状况.2库函数只能帮你完成初始化或者比较简单的操作,更多的编程细节还是要自己去体会和实验.3库函数可能比寄存器费那么一点点函数调用的开销,这个在初始化阶段无所谓,如果实在不能接受参照源码改就行了.
另外现在st的cube软件支持所有stm32系列,可以用更简洁的图形化界面快速生成hal库代码.
先说寄存器方式,编程的基本操作是寄存器,网上有些例程直接给寄存器赋值的程序简直是变态的写法形如:ADC1->CR2|=1<<2; //开启AD校准 while(ADC1->CR2&1<<2); //等待校准结束
这样的写法没有手册对照是很难看懂的,其实寄存器的各个位在头文件里都有定义,都起好名字了干嘛不用啊,不用是傻瓜.另外很多的操作也都是用inline函数定义的,不会有任何额外的开销.寄存器操作可以用,原则上尽量使用头文件定义好的就是了.
另外就是库函数操作,一个库函数完成一个功能,初学看着有点懵,实际上这些库函数是有源码的,源码里都是用寄存器操作,具体怎么实现一看便知,改成寄存器操作轻而易举.库函数比较多,用到哪儿看哪儿就是了.另外再说几点1库函数有一定的操作顺序或者逻辑,这个有一定的道理,顺序不对有可可能出现意外的状况.2库函数只能帮你完成初始化或者比较简单的操作,更多的编程细节还是要自己去体会和实验.3库函数可能比寄存器费那么一点点函数调用的开销,这个在初始化阶段无所谓,如果实在不能接受参照源码改就行了.
另外现在st的cube软件支持所有stm32系列,可以用更简洁的图形化界面快速生成hal库代码.
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询