历史上的今天
返回首页

历史上的今天

今天是:2026年01月13日(星期二)

正在发生

2023年01月13日 | 总结大佬经验,如何学习STM32?(入门、进阶)

2023-01-13 来源:zhihu

一、想快速入门进阶,面向工作时
先把工作中需要的东西学会,一项一项的来,比如先把GPIO弄清楚,怎么初始化,怎么输入输出,然后定时器、串口、ADC、DAC、DMA、SPI等等先把用得着的一个一个地做,
都弄明白了再往一块整合,从简单到复杂,硬件操控起来了也就算对这种单片机入门了吧,软件方面,不管用什么单片机,用什么编译器,区别不大初学的最好还是买个开发板,不需要多高级的,有几个常用功能做出来,其它就容易了。--------hdxet
关于初学者是否需要弄清底层函数问题:
先玩起来再说底层函数,一般就用现成的库,绝大多数应用都没问题的,至于库里面是什么,先不管它,到了高级阶段再去看--------hdxet


二、进阶步骤
会点灯-入门;
会使用各个常见中断,能把项目做出来-熟练;
会DMA、PWM各种模式,能把项目熟练完成-精通;
会CAN,USB,RS232,RS485,SPI,I2C,运动控制,电机驱动,各种滤波算法,PID算法-非常精通。--------coleyao


三、经验分享
自己的体会,对不对不知道哈。我自己学MCU就是大学里学的51单片机,所有功能会用算是入门槛,后来学习和工作慢慢接触其他的PIC,Freescale,STM这些,慢慢发现其实
东西都是有相通的,但是一定要动手,不管是用例程还是自己写,都要带板子跑代码,过程中肯定有问题慢慢解决,才能有提高,而且现在的片子底层驱动库都有,项目用的时候就是参考一下手册会调用,底层驱动功能正常就可以了,很少项目里面从零开始写代码了。--------Lu.Shi


四、经验分享
建议:初入STM32的学习者不用记,直接用就行了,这个玩意,实践才能进步;边学边用才是正途,关键是用,不是学。------leicai05


五、经验分享
可以自己试着完成一个功能,比如简单的流水灯,逻辑肯定自己写,涉及到stm32的比如怎么初始化、怎么配置之内的不会的可以查资料,但是一定要要有自己的思想,完成了我觉得就算入门了。------Llinuxu


六、关于初学者是否要弄懂底层函数
初学者没必要弄懂底层函数。项目需要用到什么再去研究什么。比如你的项目只要点亮一个LED灯,那你只研究怎么配置GPIO就好了,没必要去研究什么PWM了。现在
有个神器叫STM32CubeMX,直接生成一些底层初始化代码,加上HAL库调用,哪里不会再查哪里。底层函数这玩意,你调用多了,自然会去研究怎么配置达到你要做的效果,
在项目中进击,没必要一上来就啃底层,专注你的算法才是真正有意义的事情。------oner


七、经验和观点的分享
我也有思考,如何清晰、系统地学习 STM32,建立整个 Cortex-M 知识体系,以及相应的理论支撑,并最终应用到 Cortex-M 内核 MCU。现有的教程也都没有构建这样的
知识体系,学习、成长路线,所以很多人(包括我自己在内)都会在某个阶段遇到瓶颈。到头来发现自己依旧停留在知道这个点,也会用,会面向百度编程,但一遇到问题需要
调试,需要更多的理论支撑的时候,就无从下手了。
另外,STM32 做项目的话,应该也少不了使用操作系统,所以 RTOS 还是需要学习的。RTOS 面又是比较多的,现在又有物联网操作系统的概念
(比如 RT-Thread【物联网相关的软件包非常多】,华为的 LiteOS【官方动作比较小】,阿里的 Aliosthings【WIFi 等模组支持的相对较好】)。
所以,有人能把这套内容整合出来一个学习路线和测试验证知识点,应该会非常好。-------MurphyZhao


八、经验分享(什么时候可以接触项目)(指导的很多方面)
会建立工程点灯就算入门
知道各个外设的基本特性就算基本熟练(定时器 SPI UART IIC SDIO FMC,有需要再看网络和USB) 知道怎么读取、控制外围设备(采样、显示、射频一类的),
会用现有库就算精通(RTOS/UI/存储/网络)剩下的都是工程经验,代码组织、排错、调试一类的,多做就行。
会用串口,能通过示波器看懂SPI/IIC的波形、能输出想要的波形,会输出PWM波,就可以开展项目了,另外是C语言要扎实,有一点总线知识,至少要明白
堆栈的含义,知道自己随手定义的变量处在什么section,熟悉数据的内存组织结构更好(这些最好是多做调试多看MDK的Call Stack+local窗口和Watch窗口,看看
数据对应的内存地址和组织方式,对你深入了解语言、CPU有很大好处)。
深入的逻辑、代码组织方式,需要你自己在实践中总结,看别人的源码也是比较不错的方式求快的话,不建议看视频,从PDF教程开始,配合官方的手册对照看。
一个月从0到会走路是没问题的。
关于学习方式:
视频的进度和内容不容易筛选,你只能跳着跳着看,或者1.5倍速完整拉完,跳着看容易遗漏看PDF方便反复查看仔细比对。先看设计大纲,自己理解一遍,
然后针对性地看自己不太理解的的地方,在具体技术细节上配合datasheet,全程都是干货。再自己拿板子跟着走一遍基本就OK了。--------barryxiao


九、经验分享
1.芯片只是一个底层工具,当然你只有完全了解你所使用的外设工作逻辑后才可能设计出可靠的底层系统。
2.底层熟悉后,剩下的就是项目的应用问题,算法,协议,应用逻辑等,这个就是行业属性,行业积累。
3.如果说入门,至少知道配置一个外设的完整流程,不一定每一个都要用一遍,只要你知道大概流程,用的时候知道看什么地方就入门了。------lingdianhao


十、学习心态方面(关于工作面对项目)
同意你的意见,我觉得搞技术心态很重要,就是蔑视他,不就是什么什么嘛,老子能搞定你。


如果遇到问题就是天大的事情,感觉自己不行,搞不定。这样即使解决问题了,也只是解决这样一个问题。-------梁皇山土匪


推荐阅读

史海拾趣

Hilscher Gesellschaft für Systemautomation mbH公司的发展小趣事

随着在高压电源领域的深入发展,HVPSI逐渐参与到行业标准的制定工作中。公司凭借其在技术上的深厚积累和市场经验,为行业标准的制定提供了宝贵的建议和数据支持。这些标准的出台不仅规范了市场秩序,也进一步巩固了HVPSI在行业内的领先地位。

德尔创(Dersonic)公司的发展小趣事

在激烈的市场竞争中,德尔创始终保持着对技术创新的追求。公司不断加大研发投入,引进高端人才和先进设备,积极探索新的技术路线和产品应用。通过多年的积累和创新,德尔创在电子元器件领域已经拥有了一批具有自主知识产权的核心技术,并在市场上取得了显著的优势。这些技术优势不仅提升了公司的竞争力,还为公司的未来发展奠定了坚实的基础。

Akustica(Bosch)公司的发展小趣事

在品质和品牌建设的基础上,德尔创开始积极拓展市场。公司首先在国内市场进行了深入布局,通过优化销售网络和提供优质的售后服务,逐渐赢得了客户的信任和支持。同时,德尔创也积极寻求国际合作机会,与多家国际知名企业建立了长期稳定的合作关系。这些合作不仅为公司带来了更多的订单和市场份额,还促进了德尔创在技术和管理方面的进一步提升。

DLP Design公司的发展小趣事

DLP联合科技公司,通过与国内外知名企业的技术合作,实现了技术的快速迭代和产品的升级换代。公司积极寻求与产业链上下游企业的合作机会,共同研发新技术、新产品。通过与合作伙伴的紧密合作,DLP联合科技在DLP技术领域取得了显著成果,为电子行业的发展做出了积极贡献。

General Microcircuits Corp公司的发展小趣事
对于温度敏感的电路,可以采用温度补偿技术来减小因温度变化引起的漂移。
Fenwal Controls公司的发展小趣事

在电子行业快速发展的同时,Fenwal Controls也面临着诸多挑战和危机。例如,随着环保法规的日益严格,公司需要不断升级产品以满足环保要求。此外,原材料价格的波动和劳动力成本的上升也给公司带来了不小的压力。然而,Fenwal Controls凭借其强大的研发能力和敏锐的市场洞察力,成功应对了这些挑战和危机。公司通过优化生产流程、提高生产效率、降低生产成本等措施,有效缓解了外部压力,保持了公司的稳定发展。

问答坊 | AI 解惑

汽车安全与维修~~有了问题,到这里来找找答案吧!

1. 汽车气囊注意事项 >> https://bbs.eeworld.com.cn/thread-715-1-51.html 2. 汽车转速传感器的维修 >>https://bbs.eeworld.com.cn/thread-455-1-51.html 3. 解析奥迪防盗器7位密码的秘密>>https://bbs.eeworld.com.cn/thread-432-1-50.html 4. ...…

查看全部问答>

求职英语(一):个人品质英语词汇大全

个人品质有用词汇able 有才干的,能干的 active 主动的,活跃的 adaptable 适应性强的 adroit 灵巧的,机敏的 aggressive 有进取心的 alert 机灵的 ambitious 有雄心壮志的 amiable 和蔼可亲的 amicable 友好的 analytical 善于分析的 ap ...…

查看全部问答>

单片机时钟电路中的数码管驱动电路

.系统板上硬件连线 (1. 把“单片机系统”区域中的P1.0-P1.7端口用8芯排线连接到“动态数码显示”区域中的A-H端口上; (2. 把“单片机系统:区域中的P3.0-P3.7端口用8芯排线连接到“动态数码显示”区域中的S1-S8端口上; 动态数码 ...…

查看全部问答>

开关电源中的电感

饱和电感是一种磁滞回线矩形比高,起始磁导率高,矫顽力小,具有明显磁饱和点的电感,在电子电路中常被当作可控延时开关元件来使用。由于其独特的物理特性,使之在高频开关电源的开关噪声抑制,大电流输出辅路稳压,移相全桥变换器,谐振变换器及逆 ...…

查看全部问答>

关于模电数电的问题

最近在疯狂学习模电数电,感觉数电还可以,就是逻辑设计。但是模电实在太让我头大了,各种放大电路太抽象了,原理倒是能搞懂,只是到底是干嘛的根本不清楚,还要用各种分析方法去分析,根本记不住。请教各位大大,各位学习模电数电的时候是如何学习 ...…

查看全部问答>

如何精确线程循环周期

有个线程 while(1) {     f1();     Sleep(100); } 本来初衷是使这个线程每100毫秒循环一次,但是由于Sleep函数的不精确,以及f1()的执行时间不确定,因此,次线程循环周期总是不能精确到100毫秒,有没有什么方法能使此线 ...…

查看全部问答>

求教:设备意外删除后收不到IRP_MN_REMOVAL_DEVICE?

为什么SURPRISE_REMOVE后没有REMOVE_DEVICE 小弟写的一个USB驱动程序在安装完成之后,插入设备,设备正常启动,然后直接拔出设备,有时候会出现收不到IRP_MN_REMOVAL_DEVICE的现象。 在log中,IRP序列为: 1)IRP_MN_QUERY_DEVICE_RELATION 连续 ...…

查看全部问答>

MC-1000中,如何对背光进行控制

在开发MC-1000中,想在程序一开启就把背光灯打开,用什么函数来控制打开背光呢,各位老大,请赐教。在线等。。。急。我用的时evc4.0开发平台。…

查看全部问答>

LM3S9B92烧写不成功及FLASH烧写次数限制

请问9b92 C1版本的FLASH是不是有烧写限制?是多少次?我在网上看到一些说是的100次左右,这说法是否正确? 同时能否解释下下面的问题?谢谢~~~ 我下载时提示“Could not power up debug port: Control/Status register reads 000000F0” 用JLINK ...…

查看全部问答>

430也能玩嵌入式:Contiki内核在IAR+MSP430下移植(八)

四、其他地方(1)loader-arch.hcpu/msp430/loader-arch.c文件中的#include \"loader/loader-arch.h\"改成#include \"loader/elfloader-arch.h\"。(通过逻辑判断)(2)FSSEL_SMCLKcontiki-2.5/cpu/msp430/rom.c文件中的FCTL2 = FWKEY | FSSEL_SMCLK | ( ...…

查看全部问答>