amo
发表于 2020-2-28 18:20:38
iffi123 发表于 2020-2-28 16:01
初始化后根据情况修改某些参数,比如极性,是非常正常的操作,没什么大惊小怪的,库本应该让人更方便使用 ...
库并没有限制使用。本身就是提供源码的API,当然可以绕过它,直接改寄存器。但是不推荐,为啥?Cortex-M这个系列,我从最早的流明诺瑞一路用来,各厂家、甚至同厂家的架构、寄存器都有差异,没有库的话,想要一份代码兼容N种芯片(碰到停产限产的就换),几乎是不可能做到的。
你举的GPIO_Init函数可能不是很恰当,这个函数本来只是用在初始化阶段,不存在性能瓶颈,多几个if-else没啥,也不要以为那就叫臃肿庞大,编译器会自动优化掉执行不到的的条件分支。能写成那样已经是最优的了,毕竟不同GPIO寄存器也不是都凑在一个里面……不信的话你可以挑战一下,自己写一个替换它。我敢肯定你是写不出的……
统一了接口,建立新工程就简单了,只要用excel或其它表格工具配置好IO,然后用脚本瞬间自动产生C和H代码,不用担心出错,也不用管这是哪个系列的芯片。
iffi123
发表于 2020-2-28 19:27:05
本帖最后由 iffi123 于 2020-2-28 19:48 编辑
amo 发表于 2020-2-28 18:20
库并没有限制使用。本身就是提供源码的API,当然可以绕过它,直接改寄存器。但是不推荐,为啥?Cortex-M ...
如果有一个GPIO口在低8位(pin0-7), 一个在高8位(pin8-15), GPIO_Init就得完整编译, 这种情况很常见
你把问题复杂化了跨平台使用大部分开发者都碰不到就算st 倒闭了 国内厂商照样有全兼容的产品 就算stm32不同系列移植 也不可能一字不改,毕竟片上外设配置都有差异 并不是核心相同就能直接移植
另外也别一口咬定我一定不会什么的我自己需要的函数, 照样编的好好的
amo
发表于 2020-2-28 19:49:52
iffi123 发表于 2020-2-28 19:27
你把问题复杂化了跨平台使用大部分开发者都碰不到就算st 倒闭了 国内厂商照样有全兼容的产品 就算stm ...
拿现成的产品对标喊口号,通常都是默认指标相当的吧?
例如指着一辆轿车说“这车没啥,咱自己能造还能比它更快”,别人肯定不会认为DIY一辆不能坐人不能拉货的电动模型飙一下起步加速就过关的
fxhfxh
发表于 2020-2-29 16:29:07
用C还是用汇编,用库还是用寄存器好像一直是千年之争,哈哈。我感觉每一个人因为自身的种种情况不同都会有自己的看法,是十分正常的。了解单片机的时间也不短了,一直想用STM32,但由于各种原因,一直没有很好的入门,这次准备下决心好好学一下STM32。
bis
发表于 2020-2-29 16:47:34
jingshanhou
发表于 2020-3-3 21:00:23
能调用库函数得绝不自己操作端口。:D
祥子陈
发表于 2020-3-4 01:21:34
用库可以很快出效果.配置寄存器简直太辛苦了.
peiguoqing
发表于 2020-3-4 13:46:12
我觉得用库函数是有好处的,一个重要原因是,底层的东西复杂了,或者,很难掌控,或者,底层变化很快。有了库函数,就是对底层的封装,就可以从指令集脱离出来了,把经历用在算法上了。应该对使用者简单了。现在windows下编程,不也是用库吗?
win32 api。函数调用的方法;又不过瘾,搞出个.net,封装成了对象调用。结果搞的浮肿了,如果不是有自动完成关键字功能,估计,都成了打字高手了。:lol
iffi123
发表于 2020-3-4 14:07:40
本帖最后由 iffi123 于 2020-3-4 14:24 编辑
peiguoqing 发表于 2020-3-4 13:46
我觉得用库函数是有好处的,一个重要原因是,底层的东西复杂了,或者,很难掌控,或者,底层变化很快。有了 ...
先了解库函数,再使用, 可以省走弯路,也省得花费时间去网上搜索
peiguoqing
发表于 2020-3-4 14:34:15
iffi123 发表于 2020-3-4 14:07
先了解库函数,再使用, 可以省走弯路,也省得花费时间去网上搜索
能请教一下,这种stm32f1xx,单片机,怎么学才能避免走弯路呢?
我刚看了一下,有库函数,很多文件。这样的话,是不是,应该买本stm库函数的书看了?没有操作手册的寄存器知识,能很好 的使用吗?
iffi123
发表于 2020-3-4 15:13:32
本帖最后由 iffi123 于 2020-3-4 16:53 编辑
peiguoqing 发表于 2020-3-4 14:34
能请教一下,这种stm32f1xx,单片机,怎么学才能避免走弯路呢?
我刚看了一下,有库函数,很多文件。 ...
如果你想要快速地使用, 在了解编译软件和库的常识后,集中看些常用库函数的介绍,和别人的程序,是可以的,
如果想深入,就只能慢慢把一些资料看完
dale
发表于 2020-3-4 16:06:57
amo 发表于 2020-2-28 18:20
库并没有限制使用。本身就是提供源码的API,当然可以绕过它,直接改寄存器。但是不推荐,为啥?Cortex-M ...
我有看到你在另一個論壇發的腳本文件, 是 V1.2.17, 不知道是否有新的版本?
peiguoqing
发表于 2020-3-4 16:14:47
iffi123 发表于 2020-3-4 15:13
如果你想要快速地使用, 在了解编译软件和库的常识后,集中看些常用库函数的介绍,和别人的程序,是可以 ...
谢谢费心。很好,我现在看stc的手册;现在看到stm的比stc的快多了,stm32,还是32位的。很想看看。业余不知道从什么地方下手。我先学习stc的再说啦。
如果对寄存器熟悉的话,应该操作寄存器简单,这东西和stc的差不多。如果专业用的话,有的是时间琢磨到极致的。
blc220
发表于 2020-3-4 20:58:21
近期在用国产的M0处理器HC32L130,可以低功耗运行,不到5元rmb,作为lpc824的备份,厂家给的sdk,例子驱动基本都有了,开发速度很快。
iffi123
发表于 2020-3-4 21:01:36
本帖最后由 iffi123 于 2020-3-4 21:03 编辑
blc220 发表于 2020-3-4 20:58
近期在用国产的M0处理器HC32L130,可以低功耗运行,不到5元rmb,作为lpc824的备份,厂家给的sdk,例子驱动 ...
国产单片机雨后春笋冒出来, 估计设计难度不大;P
不过器件我喜欢跟随主流,试错风险小,资源多