搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
知新_RL
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
【智能家居】智能家居项目
2
AR眼镜——Vuzix Blade填坑笔记_vuzix blade链接手机
3
大模型训练资源评估_大模型算力评估
4
nginx和keepalived 集群实现在centos8简单部署命令_centos8 keepalived nginx
5
unity标准Shader之四大渲染模式_unity shadering mode
6
Git学习笔记(第8章):IEAD实现GitHub操作(VSCode)_vscode 登录github账号
7
数据结构 —— Dijkstra算法
8
chatgpt赋能python:Python波动方程介绍:掌握物理模型与实际应用_python在建立物理模型中的应用
9
Vue的学习之数据与方法
10
云知声小小智慧工牌,构建销售智慧管理“大格局”_智能分析管理后台管理首页
当前位置:
article
> 正文
STM32入门学习(一):STM32 简介与软件安装
作者:知新_RL | 2024-07-27 09:44:42
赞
踩
stm32
参考引用
STM32 入门教程-江科协
1. STM32 简介
1.1 STM32 套件介绍
1.2 STM32 简介
STM32 是 ST 公司基于 ARM Cortex-M 内核开发的 32 位微控制器
应用:嵌入式领域,如智能车、无人机、机器人、无线通信、物联网、工业控制、娱乐电子产品等
1.3 ARM 介绍
ARM 既指 ARM 公司,也指 ARM 处理器内核
ARM 公司是全球领先的半导体知识产权(IP)提供商,全世界超过 95% 的智能手机和平板电脑都采用 ARM 架构
ARM 公司设计 ARM 内核,半导体厂商完善内核周边电路并生产芯片
1.4 STM32F103C8T6
核心参数
系列:主流系列STM32F1
内核:ARM Cortex-M3
主频:72MHz
RAM:20K(运行内存,存储介质为 SRAM)
ROM:64K(程序存储器,存储介质为 Flash 闪存)
供电:2.0~3.6V
标准 3.3V,常用 USB 供电电压为 5V,不能直接给 STM32 供电,需要加一个稳压芯片降到 3.3V 再供电
封装:LQFP48
1.5 片上资源/外设(Peripheral)
主要学习的内容就是 STM 的外设,通过程序配置外设,来完成想要的功能
NVIC 和 SysTick 是位于 Cortex-M3 内核里面的外设
,其余都是内核外的外设
NVIC:内核里面用于管理中断的设备
比如配置中断优先级
SysTick:用来给操作系统提供定时服务
该 STM32 可加入 FreeRTOS 操作系统,如果要使用操作系统,就需 SysTick 提供定时来进行任务切换
还可用来完成 Delay 函数功能
RCC:对系统的时钟进行配置,使能各模块的时钟
在 STM32 中,其它的这些外设在上电的的情况下默认是没有时钟的,不给时钟的情况下操作外设是无效的,这样设计的目的是降低功耗,所以
操作外设之前必须先使能它的时钟
GPIO:通用 IO 口,用来点灯,读取按键等
AFIO:可以完成复用功能端口的重定义,还有中断端口的配置
EXIT:配置好外部中断后,当引脚有电平变化时,就可以触发中断,让CPU来处理任务
TIM:STM32 中最常用、功能最多的外设
分为高级定时器、通用定时器、基本定时器三种类型
通用定时器最常用,可以完成测频率、生成 PWM 波形、配置成专用的编码器接口等功能
ADC:该 STM32 内置了 12 位的 AD 转换器
可以直接读取 IO 口的模拟电压值,无需外部连接 AD 芯片
DMA:帮助 CPU 完成搬运大量数据等这样的繁杂任务
USART:平常用的 UART 更多是异步串口
I2C 和 SPI:常用的通信协议
STM32 内置了它们的控制器,可以用硬件来输出时序波形,也可用通用 IO 口来模拟时序波形
CAN:通常用于汽车领域的通信协议
USB:利用这个 STM32 的 USB 外设可以做一个模拟鼠标、模拟 U 盘的设备
RTC:在 STM32 内部完成年、月、时分秒的计时功能
还可接外部备用电池,即使掉电也能正常运行
CRC:一种数据的校验方式,用于判断数据的正确性
PWR:让芯片进入睡眠模式等状态,来达到省电的目的
BKP:这是一段存储器,当系统掉电时,仍可由备用电池保持数据
IWDG 和 WWDG:当单片机因为电磁干扰死机或程序设计不合理出现死循环时,看门狗可以及时复位芯片,保证系统的稳定
DAC:可以在 IO 口直接输出模拟电压
SDIO:用来读取 SD 卡
FSMC:用于扩展内存,或者配置成其他总线协议,用于某些硬件的操作
USB OTG:用 OTG 功能,可以让 STM32 作为 USB 主机去读取其他 USB 设备
1.6 芯片命名规则
1.7 系统结构
ICode 指令总线、DCode 数据总线、System 系统总线
ICode
:指令总线用来加载程序指令
DCode
:数据总线用于加载数据
AHB
:系统总线用于挂载主要的外设,AHB 意思是
先进高性能总线
APB
:先进外设总线,用于连接一般的外设
DMA
:辅助内核 CPU 处理一些简单且重复性高的事项,比如负责一些大量数据搬运的处理,通过 DMA 总线连接到总线矩阵上,拥有和 CPU 一样的总线控制权,用于访问外设
1.8 引脚定义
1.8.1 选项解释
类型
S 代表电源,I 代表输入,O 代表输出,I/O 代表输入输出
I/O 口电平
代表 I/O 口所能容忍的电压
FT 代表能容忍 5V 的电压
无 FT 则只能容忍 3.3V 的电压,若想解 5V 电平则需加装电平转换电路
主功能
上电后默认的功能,一般和引脚名称相同
如果和引脚名称不相同,则引脚的实际功能以主功能为准
默认复用功能
I/O 口上同时连接的外设功能引脚
配置 I/O 口时可选择是通用 I/O 口还是复用功能
重定义功能
作用:如果有两个功能同时复用在一个 I/O 口上,则可把其中一个复用功能重映射到其他端口上
1.8.2 引脚解析
1、VBRT
备用电池供电的引脚,可以接一个 3V 的电池,当系统电源断电时,备用电池可以给内部的 RTC 时钟和备份寄存器供电
2、I/O 口或侵入检测或 RTC
I/O 口可以根据程序输出或读取高低电平
侵入检测用于安全保障,比如:可以在产品外壳加装防拆触点,然后接上电路到该引脚上,若有人强行拆开设备导致触点断开,则这个引脚的电平变化就会触发 STM32 的侵入信号,从而清空数据保证安全
RTC 的引脚可以用来输出 RTC 校准时钟、RTC 闹钟脉冲或者秒脉冲
3、4 号引脚
I/O 口或者接 32.768KHz 的 RTC 晶振
5、6 号引脚
接系统的主晶振,一般是 8MHz,芯片内部有锁相环电路,
可以对这个 8MHz 的频率进行倍频得到 72MHz 的主频
,作为系统主时钟
7、NRST
系统复位引脚,N 代表它是低电平复位
8、9号引脚
内部模拟部分的电源,比如 ADC、RC 震荡器等
VSS 是负极,接 GND,VDD 是正极,接 3.3V
10-19 号引脚,21-22 号引脚
都是 I/O 口,PA0 可以用于唤醒处于待机模式的 STM32
20、PB2
I/O 口或者 BOOT1 引脚
BOOT 引脚是用来配置启动模式的
23、24号的 VSS_1 和 VDD_1 是系统的主电源口
另外,下面的 VSS_2、VDD_2、VSS_3、VDD_3 都是系统的主电源口
VSS 是负极,接 GND,VDD 是正极,接 3.3V
STM32 内部采用了
分区供电
的方式
25-33 号引脚都是 I/O 口
34-40 号引脚
I/O 口或者
调试端口
,用于调试程序与下载程序(
尽量不要把这几个都变成 I/O 口,因为这样就没有用于调试的端口了
,只能通过设置
启动配置 0 + 1
用于串口下载)
该 STM32 支持 SWD 和 JTAG 两种调试方式
SWD 需要 2 根线,分别是 SWDIO 和 SWCLK
JTAG 需要 5 根线,分别是 JTMS、JTCK、JTDI、JTDO、NJTRST
本文使用 STLINK 来下载调试程序,
STLINK 用的是 SWD 的方式
,只需占用 PA13 和 PA14 两个 I/O 口
41-43 和 45-46 号引脚都是 I/O 口
44号 BOOT0,和前面的 BOOT1 一样,也是用来做启动配置的
1.9 启动配置
启动配置的作用就是指定程序开始运行的位置
一般情况下,程序都是在 Flash 程序存储器开始执行,但是在某些情况下,也可以让程序在别的地方开始执行,用以完成特殊功能
下图中 X 代表任何接口,0 表示接地,1 表示接 3.3V 电源正极
X + 0
最常用的模式
0 + 1
用于串口下载使用
系统存储器中储存的就是 STM32 中的一段 BootLoader 程序
BootLoader 程序的作用就是接收串口数据,然后刷新到主闪存中
1 + 1
用来进行程序调试
1.10 最小系统电路
2. 软件安装
资料下载
软件安装
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
【wpsshop博客】
推荐阅读
article
四轴
飞行器
、
无人机
(
STM32
、
NRF24L01
)_
nrf24l01
无人机
接收器
...
此电路由
STM32
为主控芯片,
NRF24L01
、MPU6050为辅,当接受到信号时,处理对应的指令。_
nrf24l01
无...
赞
踩
article
【
STM32
】
飞控
设计_
aux3
飞控
...
【
垂直运动】当,此时做下降加速飞行当,此时做升高加速飞行当,此时垂直上保持匀速飞行。
【
偏航飞行】ω4 +ω2 ≠ω就会产...
赞
踩
article
【
STM32
】驱动库的选择:
CMSIS
Driver
、
SPL
、
HAL
、LL | 在
ARM
MDK
、S...
驱动库的选择:
CMSIS
Driver
、
SPL
、
HAL
、LL | 在
ARM
MDK
、
STM32
Cube
中如何选择?_ll...
赞
踩
article
STM32
合宙
Air780E
Air780E
G
阿里
云动态注册一型一密AT方式连接流程及问题点
_
a...
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入
阿里
一直到现在。深知大多数...
赞
踩
article
STM32
合宙
Air780E
/
Air780E
G
阿里
云
动态注册一型一密
AT
方式连接流程及问题点...
应该和
阿里
云
上的值相同,这地方只作演示,所以不相同。_air780egair780eg ...
赞
踩
article
【
STM32
物
联网
】
基础
AT指令与
基础
Wifi
功能AT指令_
stm32
at命令...
在
STM32
物
联网
应用中,与通信模块进行交互通常涉及到使用AT指令。本文将介绍两个重要的AT指令集:
基础
AT指令和
基础
W...
赞
踩
article
LuatOS
-SOC接口文档(
air780E
)--
bit
64
-
32
位系统上对
64
位数据的基本算术...
浮点
运算
结果是否要强制转成整数,true是,false不是,默认false,整形
运算
忽略。整形
运算
时是否按照无符号方式,...
赞
踩
article
stm32
at
指令_基于移远
BC28
的
STM32
+
NBIOT
的
OTA
案例分享...
随着互联网
的
发展和无线通讯网络
的
普及,低功耗窄带通讯为物联网带来了更多机会。凭借着其覆盖范围广、功耗低等特点,获得了广泛...
赞
踩
article
STM32
+
USB
串口通信+
printf
函数功能
HAL
库函数+cubemax配置+部分解释_stm3...
USB
虚拟串口
printf
,接受数据_
stm32
usb
通信
stm32
usb
通信 1....
赞
踩
article
STM32
学习笔记1-智能小车-基于
PWM
调速
的
电机
设置_智能车
电机
调节
的
步骤
有
哪些...
本文章主要介绍
STM32
电机
相关软件
的
配置,
PWM
的
相关介绍,这csdn上面
有
很多资料硬件:单片机:
STM32
F1...
赞
踩
article
stm32
+
mpu6050
+
四元
数
解算
_
stm32
四元
素姿态
解算
...
程序执行过程(1)读取数据,得到ax,ay,az,gx,gy,gz(2)
四元
数
解算
,得到q1,q2,q3,q4(3)计算...
赞
踩
article
【
STM32
】
标准
库
与
HAL
库
对照学习系列教程大全_
stm32
标准
库
hal
库
...
STM32
标准
库
与
HAL
库
对照学习教程系列大全_
stm32
标准
库
hal
库
stm32
标准
库
hal
库
...
赞
踩
article
【
STM32
标准库】
PWM
控制
电机
(开环
控制
)
_
pwm
波
控制
电机
...
使用
STM32
F103ZET6单片机输出2路
PWM
波
(方
波
),通过L298N驱动芯片放大后输入GM37直流减速
电机
中,实...
赞
踩
article
MPU6050
卡尔曼滤波
算法 四元数欧拉姿态解算
STM32
CubeMX
HAL
库 MDKkei...
3.移植代码 新建分别放到Inc Src。1.cubemx 设置好IIC 引脚。记得生成单个 c. h.文件。5. ma...
赞
踩
相关标签
stm32
嵌入式硬件
单片机
c语言
嵌入式
阿里云
云计算
物联网
mcu
iot
air780E
stm32 at指令
arm