大二下学期开了一门单片机的课STM32,之前了解过51单片机,对STM32的了解仅限于知道有点难…
不过实际的去学去做发现,简单应用还是可以的,深入开发还是需要费点时间。
下面会对我学到的stm32知识进行总结。(参考了老师的ppt)
下面所使用到的安装包我都放到了个人网盘分享出来了,下载链接
(安装cubemx需要提前装java jdlk,其他安装都是傻瓜式安装)
可以称为微控制器,也可以称为单片机。
可以理解成在一片集成芯片上集成计算机的组成部分
与计算机的区别 :本质上就是计算机,更加偏向于控制系统的应用,是计算机发展中与通用处理器同样重要的另一个分支。
有输入输出设备和处理单元
我们学习使用的单片机
应用领域还是很广的 :
比如 家电玩具: 移动设备,平板电脑,网络设备,各种玩具等
物联网 :共享单车,智能家居设备,可穿戴设备等等
STM32CubeMX是ST意法半导体的主动原创工具,允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用。
(如果偏应用为主的建议直接使用cubemx开发,如果要深入学习32,建议使用之前经典的标准外设库来开发 先学习标准外设库,但有必要抽时间了解STM32CubeMX)
STM32CubeMX集成了一个全面的软件平台,支持STM32每一个系列的MCU开发。
创建新的工程可以对MCU型号直接进行选择,还可以指定系列 封装 外设等条件
安装元器件包
根据板子的型号进行安装,如果安装不正确或者没安装 就无法正常使用
可以根据型号选择在CubeMx里面安装(慢),或者是在网上下载好直接导入安装。
使用CubeMx配置模块
选择好对应的型号后 会出来图像化配置的界面
里面可以对 时钟,AD,GPIO口,串口,中断,定时器等进行直接配置 。
对GPIO配置(“通用可编程I/O端口)
根据实际场景需要配置相关模块,不同模块配置方式不同,不同场景下参数调整也不同。
生成代码
在生成代码之前需要将保存环境,以及接下来使用的编译软件选择好。否则生成代码会进度条会卡死。
填写项目名称(Project Name),所在位置(Project Location),打开软件(IDE)一般使用的是Keil5 选择 MDK-ARM v5.
这些都配置好之后,点击右上角 GENERSTE CODE 就会进行合成代码
然后会有一个进度条,跑完之后使用CubeMx的任务就完成了。
点击Open Project 的话就会使用之前配置的IDE进行打开该项目。
在项目文件夹中 直接点开ioc后缀的图标可以直接进行打开项目并修改
使用cubemx只是辅助更快捷的配置一些模块,真正的应用还是需要在合成代码基础上进行修改代码,而修改代码使用的编译器就是下面提到的keil5.
Keil C51是美国Keil软件公司(现已被ARM公司收购)出品的支持8051系列单片机架构的一款IDE(集成开发环境)。
支持的芯片有几百种,不仅支持51,也支持32.
当时记得有人说keil5也需要配置芯片包,不过我没配置也能使用。如果需要配置可以到官网下载,安装。链接地址
使用keil5打开cubemx合成的代码
可以在合成之后直接打开,也可以到项目文件夹下MDK-ARM文件夹下进行打开,双击uvprojx文件就可以打开这个项目
打开之后,一般是对main.c 里面的代码进行操作,当然也会用到其他代码。
根据项目的需要对代码进行添加,修改。然后就可以进行保存,调试,生成等操作
如果代码没什么问题的话就能够调试成功,并生成一个后缀为hex的文件
这个文件是要烧写到板子里面去的。
在电脑端写好的代码还是需要传到单片机上使用,讲写好的代码生成一个hex文件,通过烧写工具,对hex文件进行传输到单片机上。
需要配置的地方
下面那栏选择 DTR的低电平复位,RTS高电平进BootLoader (为什么选这个我不是很懂)
不然烧写会不成功
上面 开始编程 旁边,也可以配置一下 选择校验和编程后执行。(根据需要想应调整)
烧写程序
先选择好需要烧写的hex文件 可以文件夹打开或直接输入绝对路径
然后搜索串口
选择上传单片机所在的串口号
选择波特率 (一般是115200)
点击开始编程。
烧写结果
烧写成功会显示 一切正常
烧写失败也会有相应提示,
可以先清除芯片试试,或者按复位键 开关键调试
如果都不行,就要检查hex文件,烧写工具配置等等。
(以上使用的所有工具,安装包下载链接都在最上面网盘链接)