发新帖本帖赏金 0.08元(功能说明)我要提问
返回列表
打印
[STM32F1]

大家怎么看正点原子的代码?

[复制链接]
楼主: 千帆归尽
手机看帖
扫描二维码
随时随地手机跟帖
61
mmuuss586| | 2014-11-24 21:54 | 只看该作者 回帖奖励 |倒序浏览

我喜欢看官方的代码;
原子的和野火的,到现在一直没参考;

使用特权

评论回复
62
kseeker| | 2014-11-24 22:03 | 只看该作者
效率不是问题,现在片子速度很快了,顶多个别地方优化一下。用库的最大问题在于和参考手册配合太差。
如果把开发板的代码或者网上搜的代码直接拿来用倒是不错。可如果你想深究点什么东西,只能看参考手册,里面全是寄存器。
结果为了用库,需要先确定寄存器的用法,再反查库里的源代码,h文件和C文件切换半天才找到那个要用的参数。
有时候为了保险,需要把库里的源代码一行一行读通,确定都修改了哪些寄存器,真的很烦,干脆直接修改寄存器了。
反正这些代码大部分是初始化设备的,调通了以后就在也不用管了,可读性什么的就无所谓了。

官方库的另一个问题是,各函数之间的关系不明。光看那些函数无法确定哪个是配合哪个用的,也无法确定是不是考虑
全了。现在我经常对照参考手册里的寄存器列表逐一核对,一遍下来就可以确定“没有其他的东西了”。
另外,GPIO这东西需要频繁操作,可偏偏这一块官方的库封装的很恶心。现在自己用C++重新封装了一遍,用着
舒服多了。

顺便说一下,C++是个好东西,但不要用C++来玩杂技。我不用动态内存(不适合STM32,因此STL的各种容器全完蛋了)。
模板是个大杀器,但能不用还是不要用,容易玩过火。

即使只是函数重载,默认参数,随时定义局部变量这3条对C的增强就已经能让程序清晰不少。
使用类也不需要非得用多态,简单地封装几个Point,Rect之类的结构,或者把FIFO封装一下就很好用了。
很多时候我只是把类作为隔开名字空间的工具。
封装基本不是用来重用的,MCU上的代码很少会被重用。但是封装的过程让你思考每个模块的接口以及模块之间的关系。
设计一个简洁的接口非常有助于理解程序,对程序将来的维护有很大帮助。
其实本质上说,最后C和C++设计出来的接口基本上是一样的。
只是C++提供的语法能让程序看起来清楚不少。

使用特权

评论回复
评分
参与人数 1威望 +4 收起 理由
laosizhender + 4 赞一个!
63
千帆归尽|  楼主 | 2014-11-24 22:22 | 只看该作者
kseeker 发表于 2014-11-24 22:03
效率不是问题,现在片子速度很快了,顶多个别地方优化一下。用库的最大问题在于和参考手册配合太差。
如果 ...

这才是真正的大牛!!!!

使用特权

评论回复
64
misra| | 2014-11-24 22:22 | 只看该作者
开发板是卖硬件的 让读者快入门的。
怎么入门快 就怎么搞。

想学好怎么编程 就去读linnux去。多读即便就会了。
多看书 比如为什么linux说C++是粑粑?
楼主这种负数水平属于 什么都会 什么都不会那种。
就那么个库,写的够简单,没什么争论的。

使用特权

评论回复
65
lyl1011| | 2014-11-25 08:47 | 只看该作者
原子的教程还是不错的,不明白有些人干嘛把Android,C++扯进来,难道每个新学STM32的都得先学C++?能把寄存器玩好,用库就很容易了。能让人快速入门的应该算是好东西吧!

使用特权

评论回复
66
千帆归尽|  楼主 | 2014-11-25 09:15 | 只看该作者
lyl1011 发表于 2014-11-25 08:47
原子的教程还是不错的,不明白有些人干嘛把Android,C++扯进来,难道每个新学STM32的都得先学C++?能把寄存 ...

那不是安卓,是arduino

使用特权

评论回复
67
wuhaiduo| | 2014-11-25 11:50 | 只看该作者
sedatefire 发表于 2014-11-24 12:19
我说一下我自己的个人判断。

非静态栈式(M0/M3/M0)mcu的大量推广、使用,从长期上讲,指针等技术会大量运 ...

脱离了具体mcu的“纯软件层
正在努力

使用特权

评论回复
68
icecut| | 2014-11-26 20:12 | 只看该作者
kseeker 发表于 2014-11-24 22:03
效率不是问题,现在片子速度很快了,顶多个别地方优化一下。用库的最大问题在于和参考手册配合太差。
如果 ...

我一般是debug看他们用了哪个寄存器,然后再去看手册

使用特权

评论回复
69
1021256354| | 2014-11-26 20:34 | 只看该作者
1楼很愤世啊,怎么拿原子哥撒气啊,呵呵

使用特权

评论回复
70
小浣熊| | 2014-11-26 23:29 | 只看该作者
没用过

使用特权

评论回复
71
kevinliuwei| | 2014-11-27 10:32 | 只看该作者
本帖最后由 kevinliuwei 于 2014-11-27 10:35 编辑

原子的资料是不错的,楼主没看全就在这发表这种言论,有失偏颇啊!还有2楼的兄弟,搞技术的没必要用这么激烈的言论来表达自己的观点,任何事情,存在一定有它的道理

使用特权

评论回复
72
圣骑士by| | 2014-11-27 17:23 | 只看该作者
发表一下个人观点:

对于初学者:原子的代码和资料非常好。我就是看原子的资料学习STM32的。看原子的资料,理解很快。

对于精通STM32的人:我感觉这个讨论没啥意义。库和寄存器必然都非常熟悉。用哪个没啥区别了。

使用特权

评论回复
73
zghskh| | 2014-11-28 08:47 | 只看该作者
练习的时候用寄存器写,可以加深对MCU的理解,做项目的话当然用库函数了

使用特权

评论回复
74
曾經| | 2014-11-28 09:28 | 只看该作者
我觉得原子的开发板写得挺好的,支持原子!!

使用特权

评论回复
75
hlong0033| | 2014-11-28 14:51 | 只看该作者
楼主,原子哥的程序帮忙入门可以,如果工作了就用库函数实现

使用特权

评论回复
76
gaoxiaohui176| | 2014-11-29 16:03 | 只看该作者
原子的东西 还是很不错!我是野火的库函数 原子的寄存器放到一起学的!在时间要求严格的场合直接操作寄存器优势很明显,汇编更明显。

使用特权

评论回复
77
gonggu8181| | 2014-12-2 07:14 | 只看该作者
一直用原子的手册替代官方手册!源代码移植很方面,初始化用库函数,优化看寄存器版。顶原子

使用特权

评论回复
78
Xflyan| | 2014-12-2 09:29 | 只看该作者
习惯了用寄存器,从官方库里整理出来,方便自己看具体是怎么实现的...

使用特权

评论回复
79
wangtao478552| | 2014-12-4 14:33 | 只看该作者
原子的例程有寄存器和库函数两个版本,楼主何必跳出来

使用特权

评论回复
80
Leohot| | 2015-3-3 22:28 | 只看该作者
正点原子 发表于 2014-11-23 23:42
看来兄弟恨我不浅啊。。。

我们也有库函数版本例程,兄台是否有看到?

原子哥我支持你的

使用特权

评论回复
发新帖 本帖赏金 0.08元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则