如何更好的去学习STM32呢?(一)入门提示

简介: 如何更好的去学习STM32呢?(一)入门提示

  从大学开始自己学 STM32到现在工作已经,近四年了。从刚开始的看着看着就能睡着,到后来每天可以熬夜去渴望去学习。期间走了不少弯路,但是现在算是走出来了,所以交流哈我学习的历程,以及学习中各种门类的资源,希望可以对于初学者有些帮助。

 刚看STM32相信大部分人是初步从51转过来,甚至有部分是老师直接推荐过来。这时候大家对于C语言属于一个初窥门径的阶段,所以对于STM32这种函数封装会有些陌生。所以有个好的学习切入点会很舒服,才能找到写程序开发的快感、成就感。

4edc953e2c684bbe819ffa954c899c08.png

  初步介绍STM32:

    STM32是意法半导体公司开发的要求高性能、低成本、低功耗的嵌入式应用设计,CortexM系列内核的32位单片机。主要用于工业控制领域。目前在大学期间应用比赛项目比较普遍些。STM32有很多的系类,一般常用的为F1、F0系类,例如一般的开发板都是F103系类的芯片,而在Stlink以及Jlink上面的下载器的芯片大部分为F0。4edc953e2c684bbe819ffa954c899c08.png

一般学习STM32需要三件套:硬件环境、编译环境、软件编程

硬件环境:作为单片机的开发,我们需要一把趁手的武器

   目前我们常见的学习开发板厂家有正点原子、野火、安富莱、硬石、众想几家的开发板,而各个厂家又分了很多型号,针对于不同引脚外设数量分为高中低的配置。4edc953e2c684bbe819ffa954c899c08.png  其中对于我们乞丐级别的学习,可以在某宝上STM32F103C8T6的开发板,很便宜只有几块钱或者正点原子家的Mini版开发板。店家一样可以提供很多的学习资料。当我们选择稍微中等宽裕的时候,我们可以选择例如:正点原子的精英板或者野火的指南者。这两种开发板都是中等容量的芯片,外设基本也都有开发的模块,如果能把这样的板子学习调试OK则对STM32的各种外设配置控制已经很熟悉了。如果大家对于后续开发任务一些通讯学习,摄像头,或者GSM模块学习,则可以考虑正点的战舰开发板或者野火的霸道开发板,众想的大黄蜂也可以考虑下,大体都差不多。安富莱的程序架构对于我们学习程序编写比较好,硬石主要在于电机等的机电控制领域比较好。


编译环境:目前STM32编译环境有IAR、keil、Atollic TrueSTUDIO for STM32 、eclipse等。

4edc953e2c684bbe819ffa954c899c08.png4edc953e2c684bbe819ffa954c899c08.png4edc953e2c684bbe819ffa954c899c08.png4edc953e2c684bbe819ffa954c899c08.png

因为工作的原因,几种软件都有安装应用,软件详细说明未来会比较详细的说明,此次稍微简单说一哈使用的感悟。

keil是最常用的调试环境,各大开发板的提供商都是用keil教学的,所以keil属于入门必备,IAR属于经常调试的盆友们,并且IAR代码编译更加优化。eclipse属于在eclipse开发人员觉得不需要其他软件,只是在eclipse上面增加开发STM32的开发者所用,而Atollic TrueSTUDIO则是ST近些年依托eclipse架构开发的免费的软件,界面效果与eclipse基本一样。

软件编程:目前学习STM32编程有几种封装学习:1. 寄存器版 2. 标准库 3.HAL库  4.LL库  5、自行写库

1.寄存器版本,单片机的内存被划分为一个个小的寄存器片段进去操作为控制,而寄存器地址则由芯片厂家设定。本质上我们学习各种版本的 库最后面都是针对于寄存器的操作,所以学习寄存器的版本是核心,但是正因为寄存器利用位操作,以及STM32设置好多的寄存器,对于初学者来说很费劲,建议初学者不去进行深入学习,但是在后续学习中寄存器还需要继续掌握。针对于后续好多外设功能例如:Time输入捕获PWM输出等的实现很多的操作需要一个位一个位去确认。

4edc953e2c684bbe819ffa954c899c08.png

上图为STM32官方的英文手册中,寄存器位置的分配。目前全书大约有1096页。(上学的时候老师建议我们看纯英文的,后来工作发现好多Datasheet都是纯英文的,所以小伙伴们要开始试着中英文对照的看,然后慢慢接受全英文哈)

2.库函数,库函数是ST通过对底层寄存器封装为函数,方便操作者应用的函数文件包,可以在ST官网进行下载指定的芯片的包,里面也有不同的示例程序,大家也可以进行学习。

4edc953e2c684bbe819ffa954c899c08.png

    这就是大致STM观看学习的途径,此外你用开发板学习,除了一些单片机交流群,还可以在几大开发板的提供商建立的论坛上进行交流沟通问题,以及一个微信公众号上学习,此处推荐我黄工的微信号,都是干货,搜索微信公众号『strongerHuang』。只是一个粗浅的介绍STM32学习推荐。后续还有还会分享一些我在公司真实遇到的开发问题,以及学习介绍,希望能帮到大家。也欢迎大家关注我的公众号哈。


目录
相关文章
|
5月前
|
数据采集 IDE 编译器
STM32微控制器入门及应用实例
STM32微控制器入门及应用实例
|
3月前
|
传感器 编解码 API
【STM32开发入门】温湿度监测系统实战:SPI LCD显示、HAL库应用、GPIO配置、UART中断接收、ADC采集与串口通信全解析
SPI(Serial Peripheral Interface)是一种同步串行通信接口,常用于微控制器与外围设备间的数据传输。SPI LCD是指使用SPI接口与微控制器通信的液晶显示屏。这类LCD通常具有较少的引脚(通常4个:MISO、MOSI、SCK和SS),因此在引脚资源有限的系统中非常有用。通过SPI协议,微控制器可以向LCD发送命令和数据,控制显示内容和模式。
105 0
|
5月前
|
IDE 编译器 开发工具
学习STM32,该用哪款开发工具?
学习STM32,该用哪款开发工具?
113 1
|
5月前
stm32f4外设学习篇(代码集合)(三)
stm32f4外设学习篇(代码集合)
|
5月前
stm32f4外设学习篇(代码集合)(二)
stm32f4外设学习篇(代码集合)
|
5月前
|
芯片
stm32f4外设学习篇(代码集合)(一)
stm32f4外设学习篇(代码集合)
116 0
|
5月前
|
存储 C语言 芯片
C/C++ stm32基础知识超详细讲解(系统性学习day14)
C/C++ stm32基础知识超详细讲解(系统性学习day14)
|
5月前
|
存储 编译器 API
大神们分享STM32的学习方法
大神们分享STM32的学习方法
73 0
|
存储 Linux C语言
stm32cubeMX学习、USB DFU(Download Firmware Update)固件更新
stm32cubeMX学习、USB DFU(Download Firmware Update)固件更新
580 1
|
存储 算法 API
stm32cubeMX学习、SD卡虚拟U盘实验
stm32cubeMX学习、SD卡虚拟U盘实验
382 0
下一篇
无影云桌面