之前跟着江科大的老师完成了51单片机的入门学习,对单片机的基本开发流程、GPIO控制、定时器、中断等外设的使用有了初步的认识。在掌握了51单片机之后,我决定进一步学习功能更强大、应用更广泛的STM32。本文记录了我从零开始学习STM32的过程,包括芯片的基础知识、命名规则、引脚定义,以及如何在Keil中从零新建一个完整的工程,希望能给同样从51单片机过渡到STM32的初学者一些参考。后续我也会持续更新STM32相关的学习内容,欢迎关注。
如果觉得有收获可以为我的文章点点小赞,这将激励我创作更好的内容!谢谢!
一、STM32
1. STM32简介
STM32是ST公司基于ARM CortexM内核开发的32位微控制器
STM32常应用在嵌入式领域,如智能车、无人机、机器人、无线通信、物联网、工业控制、娱乐电子产品等
STM32功能强大、性能优异、片上资源丰富、功耗低,是一款经典的嵌入式微控制器
2. ARM
ARM既指ARM公司,也指ARM处理器内核
ARM公司是全球领先的半导体知识产权(IP)提供商,全世界超过95%的智能手机和平板电脑都采用ARM架构
ARM公司设计ARM内核,半导体厂商完善内核周边电路并生产芯片
3. STM32F103C8T6
系列:主流系列STM32F1
内核:ARM CortexM3
主频:72MHz
RAM:20K(SRAM)
ROM:64K(Flash)
供电:2.0~3.6V(标准3.3V)
封装:LQFP48
4. 片上资源/外设
5. 命名规则
6. 系统结构
7. 引脚定义
其中表格标红色的是电源相关的引脚,标蓝色的是最小系统相关的引脚,标绿色的是IO口、功能口的引脚
类型中S代表电源,I代表输入,O代表输出
I/O电平代表I/O能容忍的电压,FT代表能容忍5V的电压,没有FT代表只能容忍3.3V的电压,如果没有FT的需要接5V的电平,就需要加装电平转换电路
8. 启动配置
9. 最小系统电路
二、新建工程
1. 型号分类及缩写
2. 新建工程步骤
建立工程文件夹,Keil中新建工程,选择型号
工程文件夹里建立Start、Library、User等文件夹,复制固件库里面的文件到工程文件夹
工程里对应建立Start、Library、User等同名称的分组,然后将文件夹内的文件添加到工程分组里
工程选项,C/C++,Include Paths内声明所有包含头文件的文件夹
工程选项,C/C++,Define内定义USE_STDPERIPH_DRIVER
工程选项,Debug,下拉列表选择对应调试器,Settings,Flash Download里勾选Reset and Run
3. 工程架构
4. 新建工程
在工程文件夹新建Start,Library和User三个文件夹
复制库函数等必要文件
(1)Start文件夹
(2)Library文件夹
(3)User文件夹
点击Keil5里面的三个小方格添加组以及组内文件:
Start的组里面可以只加这个.s文件(STM32F103C8T6)
进行定义和添加3个文件夹的地址,Debug设置:
使用main函数:
三、总结
本文围绕 STM32 嵌入式开发的基础知识展开,系统梳理了从芯片认知到工程搭建的完整流程。
在第一部分,我们认识了 STM32 的基本概念:它是 ST 公司基于 ARM Cortex M 内核开发的 32 位微控制器,广泛应用于智能车、无人机、物联网、工业控制等领域。以 STM32F103C8T6 为例,我们了解了其内核、主频、存储、供电和封装等关键参数,并学习了命名规则、系统结构、引脚定义、启动配置以及最小系统电路的组成,为后续硬件设计打下基础。
在第二部分,我们完成了从零新建工程的全过程:先建立工程文件夹并在 Keil 中新建工程、选择型号,再创建 Start、Library、User 三个文件夹并复制固件库文件,然后在工程中建立同名分组并添加文件,最后完成 Include Paths、宏定义和 Debug 等工程选项的配置。通过这一系列步骤,一个可编译、可下载调试的 STM32 工程就搭建完成了。
总的来说,掌握 STM32 的硬件基础与工程搭建方法是进入嵌入式开发的第一步。后续可以在此基础上进一步学习 GPIO、定时器、串口、中断等外设的使用,逐步深入 STM32 的应用开发。
都看到这了点点赞吧!