总结大佬经验,如何学习STM32?(入门、进阶)

发布者:幸福时光最新更新时间:2023-01-13 来源: zhihu关键字:STM32  入门  进阶 手机看文章 扫描二维码
随时随地手机看文章

一、想快速入门进阶,面向工作时
先把工作中需要的东西学会,一项一项的来,比如先把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


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


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


关键字:STM32  入门  进阶 引用地址:总结大佬经验,如何学习STM32?(入门、进阶)

上一篇:一图搞懂单片机STM32的5个时钟源知识!
下一篇:STM32学习日志——主函数框架:时间轮

推荐阅读最新更新时间:2024-11-09 10:27

详解stm32的定时器8输出PWM
我在定时器3的例程上面改,改了很久都没改好,百度看别人说定时器1和定时器8需要额外的指令用于PWM输出,今天下午硬件的人来要东西了,来不及研究了,于是网上找了个定时器8的4个通道全部可以输出的例程记录一下,已经经过本人试验是OK的。 1.调用: TIM8_PWM_Init(1439 ,0); //不分频。PWM频率=72000000/1440=50Khz 2.函数源码: //TIM8 PWM部分初始化 //PWM输出初始化 //arr:自动重装值 //psc:时钟预分频数 void TIM8_PWM_Init(u16 arr,u16 psc) { GPIO_InitTypeDef
[单片机]
STM32_ BKP备份数据
今天讲解“STM32F103 BKP备份数据”,关于“BKP备份数据”这一块的知识不难,但还是需要注意几点。BKP顾名思义就是备份寄存器(见参考手册),主要用于备份数据使用的。 每天讲解的不仅仅是基础,而是重点,不起眼的重点,容易被人忽视的重点。关注微信公众号“EmbeddDeveloper”还有更多精彩等着你。今天提供并讲解的软件工程,基于前面的软件工程“TIM延时”修改而来。若有疑问,请关注微信公众号获取更多信息。 每天提供下载的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘。 今天的软件工程下载地址(360云盘): https://yunpan.cn/cP7FTUw4XCYNw访问密码 0ebe
[单片机]
STM32_ BKP备份数据
教你们STM32如何收发float类型数据
实际应用中,我们可能需要两个设备通过串口传输浮点数据: 本篇笔记为了方便演示,使用串口助手模拟其中一个设备,本篇笔记内容如下: 我们创建一个用于管理float类型数据的共用体: unionfloat_data { floatf_data; uint8_tby te ; }; 数据的流向如: 本次使用串口助手模拟发送设备,省略了第一步,主要看第②、③步。 创建两个共用体变量,用于发送与接收: unionfloat_datarx_float_data,tx_float_data; 收发相关代码: 左右滑动查看全部代码 // if(HAL_ UART _Receive(&huart3,rx_float_data.byte
[单片机]
教你们<font color='red'>STM32</font>如何收发float类型数据
意法半导体在 GitHub网站上开设 STM32 Hotspot社区
意法半导体在 GitHub网站上开设 STM32 Hotspot社区 发布内部项目的可信代码 2022 年 10 月 19 日,中国——意法半导体在GitHub网站上创建了 STM32 Hotspot社区,为开发者寻找专业开发的STM32 微控制器嵌入式软件项目提供了一个新场所。STM32 Hotspot 包含意法半导体内部工程师原本是为展品和概念验证模型等用途开发的非产品化代码。 意法半导体通常不会与外部分享此类代码示例。意法半导体已经为用户提供大量的 STM32 参考代码,现在STM32 Hotspot又将内部项目代码分享供给更广泛的开发者社区,助力他们创造更多的产品附加值。通过意法半导体GitHub社区获取软
[单片机]
意法半导体在 GitHub网站上开设 <font color='red'>STM32</font> Hotspot社区
定时器做PWM脉冲
简介 STM32 的定时器除了 TIM6 和 TIM7。其他的定时器都可以用来产生 PWM 输出。 高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。 通用定时器也能同时产生多达 4路的 PWM 输出, PWM 寄存器与功能原理 TIMx_CCR1~4,捕获/比较寄存器 该寄存器的值与 CNT 的值比较,可以控制 PWM 的输出脉宽 TIMx_CCMR1/2,捕获 / 比较模式寄存器 CCMR1/2:OCxM 位,用于设置 PWM模式1 ,只要TIMx_CNT CCR(计数值小于比较标准值)则为有效电平 PWM模式2 ,只要TIMx_CNT CCR(计数值小于比较标准
[单片机]
Keil MDK STM32系列(六) 基于抽象外设库HAL的ADC模数转换
配置 ADC 模式: 如果只启用了一个ADC, 这里只能配置为Independent mode 时钟分频: 这个选项是ADC的预分频器, 可设置为2/4/6/8, 决定了一个ADC时钟周期. 加入设置为2, 由于ADC是挂载在APB2总线(84M)上, 所以一个ADC时钟便是84 * M/2=42M 分辨率: 最高为12位分辨率, 分辨率越高转换时间越长 数据对齐方式: 如果选择12位分辨率, 右对齐, 得到的结果最大便是4096. 扫描模式: 转换完一个通道会不会继续转换下一个通道 连续转换模式: 使能的话转换将连续进行 不连续转换模式: 当使能多个转换通道时, 可单独设置不连续转换通道. DMA连续请求: 是否连续请求DMA.
[单片机]
I2C—读写EEPROM 实验
EEPROM 是一种掉电后数据不丢失的存储器,常用来存储一些配置信息,以便系统重新上电的时候加载之。EEPOM 芯片最常用的通讯方式就是I2C 协议,本小节以EEPROM的读写实验为大家讲解STM32 的I2C 使用方法。实验中STM32 的I2C 外设采用主模式,分别用作主发送器和主接收器,通过查询事件的方式来确保正常通讯。 硬件设计 EEPROM 硬件连接图 本实验板中的EEPROM芯片(型号:AT24C02)的SCL 及SDA 引脚连接到了STM32 对应的I2C 引脚中,结合上拉电阻,构成了I2C 通讯总线,它们通过I2C 总线交互。EEPROM芯片的设备地址一共有7 位,其中高4 位固定为:1010 b,低3
[单片机]
I2C—读写EEPROM 实验
AMD 机器人入门套件开启未来智慧工厂
2022 年 5 月 17 日,加利福尼亚州圣克拉拉 —(超威,纳斯达克股票代码:AMD)今日宣布推出 Kria™ KR260 机器人入门,这是 Kria自适应系统模块( SOM )和开发者套件 产品组合的成员。作为一款面向机器人的可扩展、开箱即用型开发平台,Kria KR260 协同现有的 Kria K26自适应 SOM,能提供无缝的生产部署路径。凭借对原生 ROS 2的支持、机器人应用开发的标准框架、为机器人及工业解决方案预构建的,这款新的 SOM 入门套件能实现快速开发机器人、和工业通信与控制的加速应用。 Kria KR260 机器人入门套件 AMD 工业、视觉、医疗和科学市场高级总监 Chetan
[机器人]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved