对付MSP430来说,有一些芯片是有库函数的,大家喜好连续沿用寄存器开拓还是利用新的库开拓,还是二者都用?
有何想法见地,欢迎点击阅读原文跟帖回答谈论。对付精良的见地,我们将选择3名,赠予精美实用礼物。下面就一起看看网友们的精彩谈论吧!

freeelectron:

库函数,库函数更随意马虎上手,开拓更快。
石玉:
如果同时也供应了一些库函数的例程的话当然是用库函数开拓,怎么方便怎么快就用什么
先把要做的功能实现了再有韶光去仔细理解深层事理,有感性认识落后修也会快一些
zhang7309:
用库上手快,并且比较方便,不过对付寄存器的配置有时候还是须要用的,但是觉得有的库可能为了兼顾通用性不足精简,必要时可以自己简化一下。
电子微创意:
1.对付想快速理解并上手开拓还是用库比较方便,乃至不须要对芯片手册仔细研读就可以开拓。相对繁芜的如涉及到usb协议的还是要用库开拓更省劲!
2.想理解芯片还是用寄存器办法更好,尤其对付Debug更有利!
3.还可以两种方法混用,对付芯片的初始化事情可以调用库来完成其他内容就操作寄存器,我便是这样用ti的
lcofjp:
用库开拓是趋势,代码简洁,开拓效率高,缺陷可能是天生的二进制体积会略大,运行效率或许也有轻微影响,以是我以为容量小的单片机可以优先利用寄存器来开拓,由于容量小的功能相对大略,寄存器也少,用寄存器操作相对来说难度也会小。但是容量大功能繁芜的单片机,用库来开拓肯定是首选,或者至少也是须要库和寄存合营利用。
以上仅是个人不雅观点。
phwj2006:
430一样平常我还是利用寄存器操作。由于紧张是低功耗的内容,自己操作库更简洁。但是也有麻烦的地方。须要一定的开拓履历。
库函数我认为开拓大略适宜低级者开拓利用。一些开拓繁芜的内容,比如触摸按键还是用库比较得当。
汤权:
非常非常喜好这个问题,一贯想跟别人谈论关于库函数和寄存器的利害,实在不管是什么处理器都有这个问题,由于之前弄STM32和MSP430的时候都有这样的疑问,用库函数的话程序显得很去世板,而且编译出来的bin文件彷佛还大一点,最主要的是没有一种自己在操控处理器的觉得,而是利用库、库、库。以是一开始的时候开拓我都是执着于利用寄存器开直接开拓程序,觉得利用寄存器的位操作心里很舒畅。不过到了后来创造有的时候只利用寄存器是不太现实的,比如利用到了USB、以太网、SD卡的时候,光是这些个硬件的协议都能整去世人,别说是用寄存器来一点点调配这个外设的参数了。所往后来我还是利用了库函数来开拓,但是纯挚利用库函数会有一些问题,便是速率,毕竟调用函数的速率和直接操作寄存器的速率还是差了么点,有的地方例如高频率的中断处理函数中利用几行寄存器的操作就搞定利用一大堆库函数的任务了,速率和大小都会是最优的, 以是我还是将库函数和寄存器两者结合在一起利用,将一些常用的例如GPIO口的操作都利用宏来定义。末了我想说的是想要小打小闹的玩玩MSP430的话直策应用寄存器没问题,但是想要做工程,做繁芜,个人来看还是须要库函数,也可以适当加入一点寄存器的身分。(注:上面的寄存器是指“直接操作寄存器”)
Bingqi23:
做小项目的时候还是习气直接寄存器操作,在做一些大点的项目时候,优先选择库函数了
hjl240:
当对效率哀求不高的时候,利用库函数方便。对效率哀求比较严格的话,还是要用寄存器开拓。
clls2080000:
功能多的,容量大时,用库函数,功能少,容量小时,用寄存器
elvike:
楼上的都说了,容量大的用库,容量小的用寄存器。我想说的是除了看mcu本身存储器之外还要看系统功能,比如有一些韶光比较苛刻的代码,用库的后果是哭成海。除此之外还要看个人,如果是江湖高手那自然不用说了,新手还是从库入门然后看懂库的流程,修正成寄存器这个办法不错的。现在mcu的性能越来越高了,以前用个51的地方都想换个m3,我们队长说过一句话:水平不足,性能来凑。这句话哪个在前哪个在后,貌似都有理
shinykongcn:
两者都须要吧,库虽然方便快速,但是寄存器有时候更高效啊,操控感更强~
16号哨兵:
还是库方便点,把稳效率和器件性能限定的时候再用寄存器。队长的水平不足,性能来凑。真是如此
dageliu:
在学习STM32的固件库,比拟430我还是以为430直接配置寄存器比较大略,可能是习气了直接配置。但库还是必要的。就像楼上说的,二者各有各的优点,要根据实际情形决定是用库还是直接配置,这也得看个人喜好!
RCSN:
对付DIY或者个人开拓的,新手或者刚打仗TI的, 还是先用寄存器操作,毕竟寄存器开拓更能理解TI的MCU的寄存器,后续再利用库函数来进行开拓。
对付公司开拓的,可以用TI已经成熟的库函数进行开拓,这样有助于后期职员由于调动等缘故原由引起的不必要的交卸困难。
lansebuluo:
开始学习的话,用库函数,上手快,假如想明白事理,还是要细心心细看库内容。
这些库,是经由严格测试的,拿到产品上用,比自己编写可能更稳定
数码小叶:
要说MSP430编程办法选择,实际上估计没有多少人用库,个人以为这个就和TI有关了,库的通用性太弱,不是支持所有器件,参数太繁芜,和ST没法比,也可能和TI的库涌现不久有关吧。以是花韶光去适应库以为意思也不是很大,以是430一样平常更方向于寄存器操作,一是没那么繁芜,二是,每个模块都有例程,上手也不难。
其余,TI的Grace本来是个很不错的开拓工具,可惜貌似被放弃了,然而ST却推出了类似的CUBE
,让开发大大简化
zgf004494:
没有用过函数库,一样平常都是参考列程+ PDF , 调完程序,再也不转头看, 希望 有更多函数库这样参考性更多,通用性强
rowen800:
寄存器开拓缺陷:程序可读性差、开拓速率慢,但实行效率高点。库函数开拓是 趋势,代码易读,移植性好。
xunke:
用库比较方便,然后再优化。
DavidZH:
底层+库,必须的,搞起
huaiqiao:
1、针对楼主提出的问题,以前我也有此疑问?
为什么430要像51一样,如此麻烦的操作寄存器,没有更加大略的办法? 后来打仗到32我才创造,实在库函数的实质还是在操作寄存器。这个只是相称于“站的高”一些而已;
以前刚开始打仗430的时候是f149,属于比较经典的老款单片机了。写代码的时候,要一遍看用户手册,一遍在iar中敲代码。
实在如果是常常用430的工程师,可以将一些常用的寄存器的操作封装成函数。这样直接引用函数就好。这个思路实在我在最近学习2530的时候想到的,可能我自己比较笨,大概有更好的办法。
上次我跟一个网友互换说,现在比较新的430的电影有库函数了,不过我听了往后没有去穷究。
2、既然提到IDE,那么ti在430 这块的话,开拓环境据我理解还是以ccs和iar为主。说实话,ccs我没有碰。缘故原由是由于它很大,动不动就几个G。。。。听说它很强大,但是对付我来说,我不想摧残浪费蹂躏电脑空间。以是就选择了iar。。。。
3、当然从开拓的方便的程度来说,库函数开拓可能会更加随意马虎上手一些,或者说更加方便一些,这也便是我身边的几个同事都倾向于利用32,而非TI的430或者飞思卡尔,以及小日本的额瑞萨。如果ti能把这块做的像32一样俊秀(说实话,新的库我没有打仗过哦),从低功耗的角度来讲的话,会更加的受欢迎。
寄存器,这个最底层的东西。由于debug的时候,一看就知道,语句操作寄存器操作的对不对?
我是奔着插线板来的,评不到的话,其他奖品留给其他网友。哈哈,就这么“无耻”。O(∩_∩)O哈哈~
ketose:
用库函数,还是利用寄存器,这个话题常常看到在很多论坛都有谈论。喜好用寄存器的说:库函数效率低,不能理解低层。喜好用库函数的说:寄存器开拓代码看起来晦涩,开拓效率低,开拓繁芜。总之是公说公有理,婆说婆有理。
在我看来不能一概而论,首先任务事物的发展都要经历从低级到高等,从大略到繁芜的这么一个过程。单片机软件开拓也不例外。从最初的只能用汇编写,到现在可以利用C来写代码,再到可以利用C++来写代码,再发展到现在可以利用脚本(Python)来写.无不是多少软件硬件工程师努力的结果,其目的只有一个:便是希望简化单片机开拓难度,提高单片机开拓效率。
我们再来看单片机的发展,从最初的4位机,到8位机,到16位机,再到现在普遍利用的32位机,单片机的硬件也是超来超繁芜,寄存器也从原来的十几个到二十几,三十机到现在的近百个。刚开始编程可以利用寄存器,我们能记住那么区区几个寄存器,可是越到后面寄存器越来越多,我们已经无法记住所有寄存器的利用方法。但是我们人类是聪明的动物,我们会总结过去的履历,把一些比较模式化的寄存器操作封装成一个一个的函数,而且起一个比较直不雅观的名字。往后利用的时候,我们只须要调用一下以前总结的函数,不用一句一句的写寄存器了。库函数就这样出身了。哇,人类又向前迈进了一步。。。
接下来我们再来看看软件的发展,现在比较盛行的Arduino,为什么能火起来?ARM为会么要致力推广Mbed?为什么单片机也要跑操作系统?回答这个问题我们先得理解下Arduion和Mbed,利用过这两个别系的人都会为它们的大略而折服,我不须要有很深的单片机知识,我一样能让我的四轴翱翔器飞上天,一样能让两轮平衡车站起来,我只须要有数学知识和一点点电路知道就够了。这便是Arduion和Mbed努力的目标。便是由于软件工程越来越繁芜,一个人的能力是有限的,以是我们要分工互助,熟习低层的人可以来写低层驱动。熟习算法,但对低层不熟习的人可以来写上层业务算法,术业有专攻这样岂不更好。库函数是对寄存器操作的封装,而Arduion和Mbed在库函数的根本上更进一步抽象,使得单片机也面向工具,更符合人们认识事物的逻辑。哦还忘了说一个最主要的利用Arduion和Mbed写出来的程序,移植性更好。虽然现在MSP430还只是发展到库函数,但是总有一天也会像Arduion和Mbed看齐,我希望看到那一天的到来。
总结在单片机硬件越来越繁芜,性能越来越强的情形下,我们会优先选择开拓更为大略点的办法,在能知足哀求的条件下,我们该当优先选择Arduion和Mbed,然后是库函数,末了才是寄存器。当然利用Arduion和Mbed的同时我会穿插利用库函数,利用库函数的同时我也会穿插利用寄存器,也并不是那么绝对。既然人类已经进入了信息化工业时期,我们为什么非要回到石器时期呢?
jishuaihu:
个人实在更喜好用寄存器来操作各种MCU,430当然也不例外,好处嘛,当然便是能够更清晰的理解内部寄存器的构造,理解每一个制订的详细意义,这样基本上可以确保不会有多余的操作步骤,对付一些有严格操作顺序的寄存器,在学习寄存器的定义的时候肯定也就把稳到了,避免了误操作之后再去找缘故原由。同时,利用寄存器操作的代码文本量一样平常回小一些,实行效率一样平常也会高一些。不过呢,利用寄存器操作的缺陷就更多了,首先便是意义不明确,韶光轻微一长就记不清到底表示解释意思了,为理解决这个问题,不得不去写一大堆注释,或者弄一大堆宏定义来表示寄存器的意义。其次,利用寄存器操作在跨平台移植的时候也很麻烦,上述的事情又得重新来一遍,在更好新平台之前须要重新理解一遍寄存器,并且都变动了。
话说回来,喜好归喜好,但我现在大多时候也在用库函数,意义明确,利用方便,移植也方便,稳定性也比较好。至于效率低的问题,对付现在性能不断提升的MCU来说已经不算解释问题了。谁也不会把芯片的性能用到极致,否则升级的时候可能就麻烦了。
终极不雅观点,实际利用的话更推举利用库函数的办法,但喜好以学习为主的童鞋们多理解一下寄存器的知识,这样对理解芯片的核心部分有好处。
yaoyuanytu:
个人觉得还是库函数比较方便些 情由1.库函数比较直不雅观,方便大略集成度高 初学时候比较随意马虎节制各个须要的功能直接调用,省去了编写大量根本操作指令 情由2:库函数比较整洁简化,方便移植和交叉利用 情由3:寄存器指令虽然是最底层最核心的东西,但是须要的时候须要大量的根本操作,势必会增加事情量。
mark86739851:
如果哀求实时性比较严苛的地方直接操作寄存器是比较节省韶光的,如果这时候用一大堆库函数就不太得当了,但如果实时性哀求不高的地方,大可放心的用库函数,一来能减少事情量,而来能避免出错,可移植性也大大增强了
wudianjun2001:
个人还是比较喜好寄存器的,占用的存储空间少,但用库的话会省很多事情,阅读起来也方便,两者结合利用,效果更佳
woody_chen:
个人以为MSP430没必要用库编程。
1)430没有什么繁芜外设(如USB、Ethernet),寄存器配置起来还是比较大略的。
2)由于430存储空间小,不可能像M3一样寄存器都统一编址。这导致库不能统一。
我都是参考TI的示例寄存器代码轻微修正一下。
麻子照镜子,个人不雅观点。
飞行荷兰人号:
须要自己精确把控的一些内部资源,寄存器用起来还是比较顺手,但是一些繁芜外设,像UART、USB这些,直接用库函数也很好
LeoMe:
初学的时候从寄存器+技能手册开始会让你受益匪浅,430是这样,stm也是这样,这些大略的微掌握器实在寄存器布局和外设掌握办法都很相似的(不信你去比拟各厂商的timer的寄存器),这对你往后打仗学习其他处理器和找硬件bug是很有帮助的
那么到了实际运用中,对付大略掌握运用,寄存器+库函数结合起来效率更高,也可以考试测验模拟官方库函数自己去写一些外设驱动(学习如何标准化接口和通报数据),如上面的兄弟所说,纯寄存器编程有利于压缩代码体积和压缩430唤醒后运行的韶光,而碰着高等外设比如USB,函数库帮你跑赢deadline。
说到这个话题,从我打仗16位MCU开始创造大家都会去纠结这个问题,特殊是刚入门乃至还没入门的兄弟。实在这就跟论坛里问“现在是学stm32前景好还是学DSP好还是学FPGA前景好”这种问题差不多,有韶光你都学都打仗一下,自己找最适宜自己的,或者找你所在地最好就业的,去智联搜一下干系职位描述的关键词试试,会帮你找到自己的答案。
库函数和寄存器各自的有点恐怕是一言难以盖全的,恐怕详细到某一行代码详细谈论都不为过。大方向是你要权衡1实行效率 2编程效率 3可移植性 这三点。我也常常鼓励刚入坑的兄弟们多动手动脑,在过程中自己找答案,而不是碰着问题就开始乞助,主要的是办理问题的思路而不是办理问题的结果,前者才是你将来涨人为的基石。
笑鸟007:
还是,比较支持库函数,库函数随意马虎上手。易读性、移植性等会更高。其余现在单片机的运行速率,flash等都比以前有了很大的提高,所有利用库函数开拓也不要太担心实行效率的问题(当然分外的哀求还是利用寄存器)。当然再利用库函数的时候,一定要对寄存器有所理解,才能高效的开拓运用。
欢迎点击阅读原文参与谈论赢取精美实用礼品。
以上图文内容均是EEWORLD论坛网友:qwerghf原创,在此感谢。
欢迎微博@EEWORLD
如果你也写过此类原创干货请关注微信"大众年夜众号:EEWORLD(电子工程天下)回答“投稿”,也可将你的原创发至:bbs_service@eeworld.com.cn,一经入选,我们将帮你登上头条!
与更多行业内网友进行互换请上岸EEWORLD论坛。










