打印
[应用相关]

(分享)stm32入门

[复制链接]
218|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
elephant00|  楼主 | 2023-5-16 14:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1 我的经历
我入门的单片机就是stm32。最初的想法是为了让导师知道我确确实实在学习并且是有成效的。因为之前一直学习的是模拟电路。模拟电路的学习难度高,又很难做出理想的实物。所以我希望通过单片机来达成这一目的。我入门编程比较早并且学习过Java,对计算机体系,编程思维,有一个比较形象直观的认识。所以在学习stm32开发时,我并没有在写代码感到有多困难。我入门用的开发板是正点原子的战舰f103板子,说实话我最开始听原子歌讲stm32也很痛苦。Stm32的知识体系比较庞大并且硬件功能繁多。很多时候就跟不上他的节奏,稀里糊涂就听完了。既不会写也无法理解为什么要这么做。之后我广泛搜集资料,说实话我觉得我搜集资料的能力还是很强的,这在我之后做示波器时也体现出来了。发现野火的视频不错,深入浅出,实践性极强。因为我手头上只有战舰的板子所以我只能把野火的程序移植到原子的板子上。正是这个强烈的需求和正确的方式方法,我在整个stm32的学习中,软硬件都有了独特,深刻的体会。在学完stm32后,我迫切希望做一个东西,展示自己的学习成果。闫老师让我去做示波器,具体名字叫模拟电路调试套装。简单说就是包含信号发生器和示波器的电路调试工具。当时并不知道这个东西有多难,只觉得一定要把这个东西做好。在野火的例程帮助下,简易的正弦,方波,三角波信号发生功能做出来了。后来又去学了ADC采集找了个串口示波器,东拼西筹总算是把老师要求做出来了。虽然结果上是达到了设计目的,但是我感觉整个制作过程几乎没有我自己的东西。说实话我并没有很兴奋。后来老师让我去学习电路板制作,这又是一个我从来没有接触过的东西。在学长提供资料和我后续又找的资料的推动下,我学习完了电路板制作,说实话没做过实物,心里没底。闫老师鼓励我动手去打板子,做板子需要学习,打板子也需要学习。我直接和制板厂的技术员沟通,虽然我什么都不懂,但是我对照下单流程一个一个询问。虽然第一次PCB做出来失败了,但是我对制作PCB的流程尤其深刻。为了把这个技能传递下去,老师让我写一个PCB制作文档。这个可以说的上是我人生中制作的第一个正式的学习文档。由于stm32学的不踏实,我在寒假时间,报名硬禾学堂的示波器制作活动,也是历经很多困难,最后成功制作完成被官方认可。后面可能会单独讲讲。有了以上这些基础,我完成第一个团队合作项目,我和学弟负责的制作物联网传感器的主从节点硬点电路制作。在这个过程中把PCB制作经验传递下去。学长负责物联网系统架构设计和软件开发。我感受到最重要的一点是,在正确的时间和正确的人完成重要且正确的事情,是极其有意义的。我的毕设是模拟信号发生器,老师并没有限制我应该怎么做,我对照我的学习经历和商业信号发生器的功能,去做的毕设,包含上位机控制软件,单片机信号发生和采集,底板信号调理电路组成。用到的技术,上位机软件开发,STM32程序开发,信号处理(FFT),模拟电路设计,电路板制作,图像处理,电路仿真。
实现的功能只有,函数信号生成,扫频功能,任意波形,串口通信,简易示波器。这个毕设可以说把我这三年的实验室学习经历全部用到了。
2 STM32的学习难点
经过这么多的困难与考验,我终于有底气来谈一谈STM32如何入门。零基础学习STM32的困难是STM32开发方式的简易和STM32知识体系繁杂之间的矛盾。要明确一点学习stm32不容易,不是因为它难而是因为它知识点多。那解决办法就很明确学习stm32时,不要指望听过一遍就全部掌握,要注重回顾知识点,串联知识点。更重要的是要多思考多动手,跟着教程一点一点写,不要怕麻烦,stm32的大量理论如果不能转化为实际的代码,就会让人产生畏惧心理。试图做一个完整的项目,最好包含软件和硬件,通过实践来体会单片机在其中发挥的作用。知行合一,方能无往不胜。
3 stm32的概括
就我自己而言,总体上我会看这几个方面。1.芯片的概要描述,有哪些外设,供电电压,主频。2.结构框图外设与时钟总线的关系,即每个外设的时钟来自哪里。不看时钟树是因为时钟树太复杂了。3.芯片的外设特征和数量。
局部我会看1.引脚的功能有哪些?2.不同型号芯片的引脚数量、编号3.外设的控制,数据,状态寄存器定义略看。
4.stm32快速应用
学会使用厂商提供的参考历程。比如战舰光盘资料、stm32固件库里的参考例程。另一个就是移植别人的代码在自己的开发板上。例如,多功能按键驱动、软件定时器、GUI菜单、滤波算法等。通过这些东西来快速熟悉嵌入式系统的开发。
利用仿真器去调试程序,单步执行、全速执行、打断点等。给程序加调试信息输出到串口。
动态的观察程序执行流程,与设计的是否一致。学会版本管理留下处于不同阶段的程序,以便回朔与救灾。同时也可在确定版本基础上进行不同方向设计想法的尝试。
5.工具链
STM32CUBEMX 图形化配置工具
understand代码解析工具
MDK 写程序
串口调试工具
STlink/Jlink仿真器
示波器/逻辑分析仪
其他到的工具与具体的细分领域有关,这里就不写了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

970

主题

2982

帖子

7

粉丝