stm32 用库函数操作和寄存器操作

之前用的51,现在买书,突然看到这个库函数和寄存器操作,脑子里面也没有什么概念,希望大神能够给我解释清楚。他们之间的关系和区别。是不是就是类似一个C语言一个类似汇编的关系... 之前用的51,现在买书 ,突然看到这个库函数和寄存器操作,脑子里面也没有什么概念, 希望大神能够给我解释清楚。 他们之间的关系和区别 。是不是就是类似一个C语言一个类似汇编的关系? 展开
 我来答
yibunihao
推荐于2017-10-04 · TA获得超过1463个赞
知道小有建树答主
回答量:451
采纳率:0%
帮助的人:299万
展开全部
首先,两个都是C语言。
从51过渡过来的话,就先说寄存器操作。每个MCU都有自己的寄存器,51是功能比较简单的一种,相应的寄存器也比较少,我们常用的就那么几个,像P0 P1 SMOD TMOD之类的,这些存在于标准头文件reg.h里面,因为少,所以大家就直接这么去操作了,每一位对应的意义随便翻一下手册就看得到,甚至做几个小项目就记的很清楚了。所以做51开发的时候大多数都是直接操作寄存器。
到了STM32,原理一样,也是有自己的寄存器,但是作为一款ARM内核的芯片,功能多了非常多,寄存器自然也就多了很多,STM32的手册有一千多页,这时候想去像51那样记住每个寄存器已经不现实了,所以ST的工程师就给大家提供了库函数这么一个东西。
这是个神器。
库函数里面把STM32的所有寄存器用结构体一一对应并且封装起来,而且提供了基本的配置函数。我们要去操作配置某个外设的时候不需要再去翻眼花缭乱的数据手册,直接找到库函数描述拿来就可以用,这样就能把精力放在逻辑代码的开发上,而不是去费力的研究一个芯片的外设要怎么配置寄存器才能驱动起来。
简单讲就是这些了,库函数是为了让开发者从大量繁琐的寄存器操作中脱离出来的一个文件包,在使用一个外设的时候让开发者直接去调用相应的驱动函数而不是自己去翻手册一个一个配置寄存器。
有人说用库函数掌握不到芯片的精髓,见仁见智了。熟悉一款芯片是在不断的开发使用中逐渐了解并掌握的,调试的过程中会遇到很多问题,会要求我们去跟踪相关寄存器的状态,在整个框架都已经建立起来的基础上再去对照手册做具体到寄存器每一位的分析,代码对照现象,很快就能积累起来经验,祝成功。
上海巴鲁图工程机械科技有限公司_
2022-05-15 广告
光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。光电编码器每转输出60(我们用老板没有说)个脉冲,五线制。其中两根为电源线,三根为脉冲线(A相、B相、Z)。电源的工作电压为 (+5~+24V)直流电源。光... 点击进入详情页
本回答由上海巴鲁图工程机械科技有限公司_提供
肥肥的爆米花
2013-11-02 · TA获得超过3771个赞
知道小有建树答主
回答量:910
采纳率:50%
帮助的人:624万
展开全部
寄存器操作:51就是寄存器操作,你用51需要自己写驱动。STM32如果不用库也是跟51一样直接操作寄存器的。
库函数操作:STM32的库已经帮你把驱动写好了,你要做的只是配置参数,然后使能。

寄存器的优缺点:速度快,但是可读性差,你要改动配置需要去查芯片手册。
库函数的优缺点:速度慢,但是可读性强,用GPIO_PIN_5这类可读性强的英文字母,去替代0x0101这类可读性差的数字。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式