数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 8084|回复: 48

[STM] stm32感觉好难啊,求推荐教程

[复制链接]
发表于 2021-6-28 12:07:47 | 显示全部楼层
本帖最后由 inthsunshine 于 2021-6-28 12:18 编辑

stm32开始确实有点难, 当你熟悉它的套路之后,就是阳光大道, 性能太强了,很好玩,. 玩了32,不想玩别的单片机

现在我想玩dsp功能,数字滤波,浮点运算,数学变换什么的

教程推荐<STM32库开发实战指南>, 对初次接触stm32的非常好, 极其详细介绍mdk的界面和配置以及编译过程, 标准库的结构和使用,最全面的入门资料,后面还有各种外设的调用方法(这部分不用全看,看一两个外设即可)

32的外设中,最复杂的是定时器了, 输入捕获,输出比较,.还有串连并联使用的主/从模式, 寄存器配置也最多, 函数也很多,有些函数间你不看源码还不能准确区分, 有些看起来不同的函数,实际上操作同一个寄存器-位
回复 支持 反对

使用道具 举报

发表于 2021-6-28 12:11:16 | 显示全部楼层
本帖最后由 inthsunshine 于 2021-6-28 12:18 编辑
飞向狙沙 发表于 2021-6-28 09:58
用的标准库吧,上手门槛高,各种外设配置开开关关的让人头大,试试stm32cubemx ...

寄存器操作才是乐趣所在, 我现在已经抛弃库, 直接玩寄存器,代码简单的要命, 无拘无束的感觉真好,会飞起来,没有一堆又长又臭的函数名和参数名
回复 支持 反对

使用道具 举报

发表于 2021-6-28 13:51:50 | 显示全部楼层
本帖最后由 inthsunshine 于 2021-6-28 14:20 编辑
飞向狙沙 发表于 2021-6-28 13:35
具体事情具体对待,就像有些人觉着arduino和模块化外设是惊人之作,有些人觉着c和打样才是真理,萝卜青菜 ...

arduino和模块化只是对一些不想深入的人比较友好, 做些慢悠悠的输入输出还可以,  当你熟悉之后想提升,比如提高效率时, 这种封装过的东西,反而成了拌脚石,  分别用c和arduino,刷个彩屏就知道其中差别, 更不要说其他对时间要求更高的应用

编译环境没搭好,是没找到合适资料,  当初我也碰到过
回复 支持 反对

使用道具 举报

发表于 2021-6-28 13:53:41 | 显示全部楼层
本帖最后由 inthsunshine 于 2021-6-28 14:52 编辑
lipeixian 发表于 2021-6-28 12:52
建议学习HAL库,不要学什么标准库,HAL帮你设置了所有的初始化函数,甚至启动文件、标志位、中断等都帮你弄 ...

ST为了统一跨平台移植(M0/M3/M4),硬是搞了HAL库, 可是强扭的瓜不甜,st也意识到HAL的臃肿和低效,后来又折腾出来所谓的底层库LL, 事情变的有趣了
当然HAL库移植性最好,开发产品还是比较适合,更换平台修改量最小,牺牲一些代码空间



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 1 反对 0

使用道具 举报

发表于 2021-6-28 15:12:40 | 显示全部楼层
本帖最后由 inthsunshine 于 2021-6-28 19:55 编辑
飞向狙沙 发表于 2021-6-28 14:55
所以这个帖子的核心是楼主的技术水平有限,又想开开心心的入门玩stm32,你给什么推荐方案呢 ...

51系应该能满足lz要求, 我建议还是不要玩32, 32虽好,但不是适合每个人,学32半途而废的不少 :lol:
回复 支持 反对

使用道具 举报

发表于 2021-6-30 23:08:45 | 显示全部楼层
freemancn 发表于 2021-6-30 16:27
我觉得ARM单片机比8051单片机简单好用多了,原因是8051的地址空间不是连续的,开发起来复杂又难受。ARM地址 ...

不要误导人,新手直接寄存器开发,难度更大, 寄存器的使用看起来很简单, 正确使用的前提是对这个外设的工作原理流程很清楚才可以, 标准库已经把一些复杂的底层设置封装起来,是降低难度

只有熟练了,才方便转寄存器开发
回复 支持 反对

使用道具 举报

发表于 2021-7-1 07:47:26 | 显示全部楼层
本帖最后由 inthsunshine 于 2021-7-1 07:50 编辑
freemancn 发表于 2021-7-1 00:30
人家8051已经玩的很溜了,直接寄存器开发和8051是最接近的,只要看着芯片的官方的开发手册去写代码就好了 ...

实际上做产品反而更应该用库, diy用寄存器更自由, cube最多的用户是开发产品,因为移植性很好,比如这次芯片涨价, 更换系列的话,cube就能发挥很大好处,改动很小, 如果是寄存器的话,呵呵,改死你; 另外这个开发人员走了,接手的很快就能继续,不然你自己弄的库,别人看的费劲,还不如重写一次,这样项目整体开发效率反而低了
回复 支持 反对

使用道具 举报

发表于 2021-7-1 12:10:17 | 显示全部楼层
freemancn 发表于 2021-7-1 12:00
好吧,每个团队的水平不一样,我们也不能统一标准.我们都是C++自建抽象层,这个抽象层不针对任何具体芯片或 ...

了解一下HAL库吧, 你想做的,厂家都已经做好了

回复 支持 反对

使用道具 举报

发表于 2021-7-1 14:35:56 | 显示全部楼层
freemancn 发表于 2021-7-1 12:20
你让HAL库兼容一下,新唐M032系列看看.HAL库的代码恶心至极,那个思想本应该用C++实现的.我是软件 ...

不好意思, 新唐的单片机我根本看不上, 这些杂七杂八的厂家不需要考虑

对我来说, 能熟练玩好32已经非常ok了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-21 19:36 , Processed in 0.156000 second(s), 10 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表