1.综述
-
1.1. 课程简介
手打代码是加入了实操,增加学习效果;
STM最小系统板+面包板的硬件平台;
配套0.96寸的显示屏,便于调试;
因为使用面板板,所以如果程序现象不出来也有可能是硬件连接的问题;
-
1.2. 硬件设备:
•STM32面包板入门套件
•Windows电脑
•万用表(检查接线)、示波器(虚拟和台式示波器都可以)、镊子、剪刀等 -
1.3. 编程软件
Keil 5 MDK (ARM)
参考资料链接: https://jiangxiekeji.com/download.html#32
安装参考: https://wenku.csdn.net/answer/5gyk1qirke -
1.4. STM32套件的介绍
面包板
STM32最小开发板
0.96寸OLED(4引脚版本)
电位器,薄膜按键
ST-LINK程序下载用并供电
串口模块
有源蜂鸣器模块
光敏电阻模块
热敏电阻模块
对射式红外模块
反射式红外模块
W25Q64 FLASH存储模块 SPI总线通讯
MPU6050 陀螺仪加速度计 I2C总线通讯
旋转编码器
直流电机 电机驱动模块
舵机 PWM控制
2. STM32简介
2.1. STM32简介
•STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器
•STM32常应用在嵌入式领域,如智能车、无人机、机器人、无线通信、物联网、工业控制、娱乐电子产品等
•STM32功能强大、性能优异、片上资源丰富、功耗低,是一款经典的嵌入式微控制器
高性能系列:F2,F4,F7
主流性能系列:F0,F1,F3(教程用STM32F1)
超低功耗系列:
无线系列:
-
2.2. ARM介绍:
•ARM既指ARM公司,也指ARM处理器内核
•ARM公司是全球领先的半导体知识产权(IP)提供商,全世界超过95%的智能手机和平板电脑都采用ARM架构,ARM提供设计,授权,不生产芯片;
•ARM公司设计ARM内核,半导体厂商完善内核周边电路并生产芯片
下图A系列用于高端产品领域(例如手机)(苹果M1芯片将ARM推入电脑领域)
M系列用于嵌入式领域较多
-
2.3. 本套课程使用的STM32F103C8T6
•系列:主流系列STM32F1
•内核:ARM Cortex-M3
•主频:72MHz
•RAM:20K(SRAM)
•ROM:64K(Flash)
•供电:2.0~3.6V(标准3.3V)(对比51单片机是5V供电)
•封装:LQFP48(48针引脚)
-
2.4. STM32F103C8T6的片上资源(片上资源/外设)
先了解后续再仔细学习;
下表是STM32系列的所有外设,具体到STM32F103C8T6芯片后4个外设(DAC~USB OTG)是没有的,具体需要参考芯片手册
英文缩写 | 名称 | 英文缩写 | 名称 |
---|---|---|---|
NVIC | 嵌套向量中断控制器(内核内外设) | CAN | CAN通信 |
SysTick | 系统滴答定时器(内核内外设) | USB | USB通信 |
RCC | 复位和时钟控制 | RTC | 实时时钟 |
GPIO | 通用IO口 | CRC | CRC校验 |
AFIO | 复用IO口 | PWR | 电源控制 |
EXTI | 外部中断 | BKP | 备份寄存器 |
TIM | 定时器 | IWDG | 独立看门狗 |
ADC | 模数转换器 | WWDG | 窗口看门狗 |
DMA | 直接内存访问 | DAC | 数模转换器 |
USART | 同步/异步串口通信 | SDIO | SD卡接口 |
I2C | I2C通信 | FSMC | 可变静态存储控制器 |
SPI | SPI通信 | USB OTG | USB主机接口 |
-
2.5. 命名规则
-
2.6. 系统结构
-
DMA数据搬运辅助,节省CPU的时间
-
2.7. 引脚定义(非常重要)
- 橘红色标记为电源相关引脚,S电源,I输入,O输出,FT容忍5V电压
- 蓝色标记为最小系统相关引脚
- 绿色为IO口相关引脚
- 1-VBAT备用电源3V
- 2-侵入报警
- 3,4-接晶振
- 5,6-接主晶振8MHz
- 7-复位N代表低电平复位
- 8,9-内部模拟部分的电源,VSS接GND或负极,VDD接正极
- 10~19为IO口
- 20-IO/BOOT,用于配置启动模式
- 21,22-也都是IO口
- 23-VSS主电源负极
- 24-VDD主电源正极
- 35-VSS主电源负极
- 36-VDD主电源正极
- 47-VSS主电源负极
- 48-VDD主电源正极
- 以上电源采用分区供电方式
- 34~40-IO或调试端口(默认调试功能为主功能)
- 教程用的ST-LINK方式,只占用PA13(24),PA14(37)两个口, 否则需要(34,37,38,39,40这5个口用于SWD调试)
- 44-BOOT0与BOOT1一样用于启动配置
- 2.8. STM32 启动配置
- BOOT0接0(接地)最常用
- BOOT1接地(0),BOOT0接电源(1),BOOT LOADER启动模式,串口下载程序
- BOOT1接电源(1),BOOT0接电源(1),主要用于程序调试,本套教程不涉及
- 表下注释的意思,机器复位或上电一瞬间,BOOT1引脚值锁存,之后恢复PB2的IO口模式。
- 至此,如果需要芯片正常工作,需要将电源与表格中蓝色的最小系统的部分连接好;
- 2.9. 最小系统电路
- 3.3V与GND之间的电源加的电容为滤波电容,用以保持电源稳定;
- VBAT备用电源接的时候需要注意,正极接VBAT,负极接地;悬空也可以;
- 晶振接8MHz,内部锁相环倍频后为72MHz,20pf的电容为起振电容;接5,6口
- 如果需要RTC功能,还需要接一个32.768KHz的晶振,电路同晶振电路,接3,4口,因为32768为2的15次方,内部电路分频后直接可以得到1s的时钟信号。
- 复位接NRST为低电平复位,按下K1信号接地复位,松开K1,C3充电,电阻R1上拉NRST信号
- 启动配置是通过最小开发板上面的跳线帽来实现的;
- 以下都包含在最小系统板上面了,最小系统板的原理图可在资料中找到《模块资料.zip》核心板原理图中