STM32入门100步

2023-05-16

目录

1、C8T6引脚图

2、电路基础

1、IO口静态特性:

2、 上下拉电阻

3、STM32官网:

4、内核与存储器

5、时钟、复位和电源管理

6、低功耗和ADC

7、DMA和IO端口

8、调试模式和定时器

9、看门狗和滴答定时器

10、I2C和USART接口

11、SPI、CAN、USB接口

12、CRC校验和芯片ID

13、最小系统电路

14、如何烧录程序:

15、舵机

1、PWM

16、中断

17、步进电机

 18、I2C总线

 19、定时器功能


1、C8T6引脚图

2、电路基础

电源分正负极(不用区分大小写)

正极表示:Vcc,,Vdd,+,3.3V,5V等。

负极表示:Vss,GND,-,0V,

高低电平

高电平是1

低电平是0

TTL电平(单片机采用):小于0.4V是低电平;大于2.4V是高电平(STM32单片机2.0V~3.3V ,大于2.0V是高电平,低于0.4V是低电平),更加稳定。

CMOS电平:更接近于3~15V高电平;更接近于0V低电平        

输出电平

高电平表示:3.3V,H,高电平

低电平表示:0V,L,低电平

1、IO口静态特性

几乎所有的单片机周边芯片都是TTL电平

LED亮灯

用推挽输出驱动

GPIO输出电流:

GPIO吸收电流 :

线路

断路:本应该连接的断开了

短路:应该断开的连接了

短路-->如果电源正负极则电阻小电流大,会损坏电源

短路-->如果是几条数据线会导致线上电平混乱

2、 上下拉电阻

上拉:接到一个电源正极的电阻

下拉:接到一个 电源负极的电阻

下拉电阻:

下图按下唤醒键接通VCC电源,输入高电平,达到唤醒的效果,那么平时就需要低电平的状态,我们用一个电阻接地,由于电阻较大,那么就会提供 一个弱弱的的低电平,就会保持一个低电平的状态。按下按键后,直接接通VCC电源,下拉电阻那里提供的低电平很小,就可以忽略不计了。


 RAM:32位处理器

3、STM32官网:

STM32F103 | 产品 | STM32/STM8 | MCU单片机 | 意法半导体STM | STMCU中文官网https://www.stmcu.com.cn/index.php/Product/pro_detail/cat_code/STM32F103/family/81/sub_family/124/sub_child_family/142/layout/product

STM32F103VET6: ST(公司名) M(微控制器) 32(32位微控制器) F(通用类型)

类型:F(通用) S(简单) L(低功耗) H(高性能)

103子系列:0-精简 1、2、3-增强 4、7-高性能 00、01、02、03、05、07(子型号)

引脚数:C-48 R-64 V-100 Z-144 A-168 I-176 B-208 N-216

存储量:6-32K 8-64K B-128K C-256K D-384K E-512K G-1MB I-2MB

封装:H-BGA封装 T-LQFP封装 Y-WLCS64封装

工作温度:6(-40~85°C ) 8-(-40~105°C)

选项:xxx-已编程的器件代号 TR-卷带式包装


4、内核与存储器

SRAM:静态随机存储器 类型:RAM  存储运行中的数据 读写无延迟速度快,断电数据消失,可以写入无限次,没有写入条件,成本,容量

FLASH:闪存程序存储器 类型:ROM 存储用户程序 读写有延迟速度慢,断电数据保存,可以写入10万次,需要先清楚再写入,成本,容量


5、时钟、复位和电源管理

2.0~3.6V供电:一般用3.3V

PLL:分频器

RTC:实时时钟(计时等效果)

时钟:

 HSI:H-高速 S-晶振 I-內部

HSE:H-高速 S-晶振 E-外部

LSE:L-低速 S-晶振 E-内部

LSI:L-低速 S-晶振 I-外部


6、低功耗和ADC

低功耗

 ADC:模拟/数字转换器        

采集模拟电路数据


7、DMA和IO端口

DMA:解决CPU多任务的问题

GPIO:通用输入输出接口 --多数GPIO都与数字或模拟的复用外设共用。同时所有的GPIO都有大电流通过能力。

在需要的情况下,I/O引脚的外设功能可以通过一个特定的操作锁定,以免意外的写入I/O寄存器。

APB2上的I/O脚可达18MHZ翻转速度(高低电平转换)

GPIO_Mode_AIN 模拟输入 :用于ADC模拟输入,高阻,本身没有电流电压

GPIO_Mode_IN_FLOATING 浮空输入 :不加电阻

GPIO_Mode_IPD 下拉输入:下拉电阻

GPIO_Mode_IPU 上拉输入 :上拉电阻

GPIO_Mode_Out_PP 推挽输出 : 有驱动电流的输出

GPIO_Mode_Out_OD 开漏输出 : 没有很强的驱动电流输出,只是一个电平信号

GPIO_Mode_AF_PP 复用推挽输出 :

GPIO_Mode_AF_OD 复用开漏输出


8、调试模式和定时器

调试模式

- 串行单线调试(SWD)和JTAG接口

SWD:只需要两条线就可以完成调试

JATG: 需要更多的资源才可以

定时器

普通定时器:

TIM2、TIM3、TIM4定时器:每一个定时器都有一个16位的自动加载递加/递减计数器、一个16位的、预分频器四个独立的通道,每个通道都可用于输入捕获、输出比较、PWM和单脉冲波模式输出,在大的封装配置中可提供12个输入捕获、输出比较或PWM通道。

任意标准定时器都能产生PWM输出。每个定时器都有独立的DMA 请求机制。

高级定时器:

TIM1定时器:可以看作是6通道的三相PWM发生器


9、看门狗和滴答定时器

看门狗

两个看门狗(独立的和窗口型的):检测单片机,如果单片机出现错误,就会进行复位。

本质就是定时器,每隔一段时间就需要给看门狗喂骨头(复位),即定时器清零,让狗继续啃骨头,如果单片机程序跑起来出错,不能定时给看门狗喂骨头,狗就会叫,单片机就会复位。

独立看门狗(LWDG):基于一个12位的递减计数器和一个8位的预分频器,它由一个内部独立的40KHz        的RC振荡器提供时钟;因为这个RC振荡器独立于主时钟,可以运行于停机和待机模式。(给出复位信号)

可以作为复位的定时器,也可以作为普通的自由定时器。

窗口看门狗(WWDG):有一个7位递减型计数器,可以设置为自由运行。由主时钟驱动(给出中断/复位信号)

滴答定时器

滴答定时器:专用于实时操作系统,也可当作一个标准的递减计数器。

24位的递减计数器

自动重加载功能

当计数器为0时能产生一个可屏蔽系统中断

可编程时钟

10、I2C和USART接口

I2C总线接口:能够工作于多主模式或从模式,支持标准和快速模式。

每一个I2C从设备有一个地址,所有设备与单片机都需要供公地。      

USART:通用同步/异步收发器

UART:异步收发器

最常用的是异步。

USART只是一种协议方式,根据不同的电平方式分为RS32 和 RS485等。

11、SPI、CAN、USB接口

SPI:两个SPI,有主从模式,可全双工和半双工,最大速度18M/s ,用3个预分频器来设置8种频率,支持SD卡的读写模式,支持DMA。 

特点:通信协议简单稳定,速度快

通过I/O来控制SPI设备开关。

CAN:有一个CAN总线,位速度最高1M/s,11位标识符,29位扩展帧,3个发送邮箱,2个FIFO,3级14个滤波器        

特点:通信速度快,距离远,稳定,自动查错。                                                                        

每一个CAN都可以是主设备

USB:设备控制器,有待机和唤醒功能,时钟必须由外部高速晶振产生。

12、CRC校验和芯片ID

CRC:用于数据正确性的校验,对于要加载的数据进行处理得到一个计算结果,再将这个数据和计算结果一起发送过去,接收端的数据通过CRC再进行处理,再将处理的计算结果和发送端CRC的结果比较,如果两者相同则数据正确,否则数据错误。

96位的芯片唯一代码:24位十六进制数,每一个芯片的编码是唯一的

  • 用来作产品的序列号
  • 用来作为密码,提高安全性
  • 用来保护程序的不可复制性

13、最小系统电路

内核;

存储器;

时钟电路:

复位电路:

电源电路:

14、如何烧录程序:

将电脑的接收/发送端和单片机的发送端/接收端;

RX/RXD:接收端;

TX/TXD:  发送端;

单片机:PA9(发送端),PA10(接受端);

同时需要GND共地;

启动模式的设置:

BOOT0/BOOT1:电平变化组合来决定启动模式

 固件库安装:

 用户程序存放在FLASH中

固件库:底层驱动程序

*STM32的程序编写方式: 

按键:

 蜂鸣器:

 

MIDI音乐 :

USART驱动程序:

FT232可以直接将USB转成USART串口,也可以将USART转成USE串口,可以实现电脑和单片机的直接连接;

5V转TTL电平

USART发送数据:

15、舵机

1、PWM

CNT:计数值

CCRx;设定的值

ARR:溢出值

16、中断

什么是中断?

中断是指一个突发事件,终止了CPU当前的工作,转而处理突发事件,处理完成后,再回到当前的工作继续执行。

STM32允许多种多样的中断,如外部IO、ADC、USART、I2C、RTC、PVD等。

  • STMF1支持所有的GPIO设置为中断输入
  • 外部IO可由上沿、下沿、高低电平的三种方式触发
  • 可选择中断或事件触发

上沿:电平从低电平瞬间变为高电平

下沿:电平从高电平瞬间变为低电平

高低电平:电平从低到高或者从高到低都会产生中断

 NVIC:嵌套向量中断的控制器

EXTI:  外部IO中断事件控制器

 优先级

优先级分组:

17、步进电机

通过高低电平控制磁性:com输入高电平

 18、I2C总线

 19、定时器功能

定时器:

捕获器:

 

 输出 比较器:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32入门100步 的相关文章

  • 如何在 Cortex-M3 (STM32) 上从 RAM 执行函数?

    我正在尝试从 Cortex M3 处理器 STM32 上的 RAM 执行函数 该函数会擦除并重写内部闪存 所以我肯定需要在 RAM 中 但我该怎么做呢 我尝试过的是 使用 memcpy 将函数复制到 RAM 中的字节数组 检查它是否正确对齐
  • 以字符串形式接收数字(uart)

    我正在尝试通过 uart 接收一个包装为字符串的数字 我发送数字 1000 所以我得到 4 个字节 空字符 但是 当我使用 atoi 将数组转换为数字并将整数与 1000 进行比较时 我并不总是得到正确的数字 这是我用于接收号码的中断处理函
  • CMSIS 库是否应该包含在版本控制中? [复制]

    这个问题在这里已经有答案了 通常 我曾经在版本控制中包含芯片供应商 ST 提供的设备特定标头和源以及 CMSIS Core 标头 数量不多 也没有更新的习惯 我使用STM32微控制器 但我不使用立方体框架 or the 标准外设库 最近 我
  • 当数据大小较小时,内存到内存 DMA 传输是否需要权衡?

    我正在学习 STM32 F4 微控制器 我正在尝试找出使用 DMA 的限制 根据我的理解和研究 我知道如果数据量较小 即设备使用DMA生成或消耗少量数据 则开销会增加 因为DMA传输需要DMA控制器执行操作 从而不必要地增加系统成本 我做了
  • rt-thread studio中新建5.0不能用

    文章目录 一 版本对比 二 文件和文件夹打斜杠 在使用RT Thread studio创建新工程5 0版本的时候 结果发现新建完成之后程序不能正常运行 但是创建4 10版本的时候却能运行 那肯定是新版本出现了BUG 一 版本对比 首先对比了
  • 毕业设计 江科大STM32的智能温室控制蓝牙声光报警APP系统设计

    基于STM32的智能温室控制蓝牙声光报警APP系统设计 1 项目简介 1 1 系统构成 1 2 系统功能 2 部分电路设计 2 1 stm32f103c8t6单片机最小系统电路设计 2 2 LCD1602液晶显示电路设计 2 2 风
  • SHT10温湿度传感器——STM32驱动

    实验效果 硬件外观 接线 3 3V供电 IIC通讯 代码获取 查看下方 END
  • 硬件基础-电容

    电容 本质 电容两端电压不能激变 所以可以起到稳定电压作用 充放电 电容量的大小 想使电容容量大 使用介电常数高的介质 增大极板间的面积 减小极板间的距离 品牌 国外 村田 muRata 松下 PANASONIC 三星 SAMSUNG 太诱
  • 在 Atollic TrueStudio、STM32CubeMX 中导入 C 库

    我目前正在开发 STM32F767ZI Nucleo 板和一个小安全芯片 microchip atecc508a 通过 i2c 连接进行连接 该芯片有一个可用的库加密验证库 https github com MicrochipTech cr
  • 跟着野火学FreeRTOS:第一段(任务定义,切换以及临界段)

    在裸机系统中 系统的主体就是 C P U CPU CP U 按照预先设定的程序逻辑在 m a i n
  • 串口通讯第一次发送数据多了一字节

    先初始化IO再初始化串口 导致第一次发送时 多出一个字节数据 优化方案 先初始化串口再初始化IO 即可正常通讯
  • 串口通讯第一次发送数据多了一字节

    先初始化IO再初始化串口 导致第一次发送时 多出一个字节数据 优化方案 先初始化串口再初始化IO 即可正常通讯
  • STM32 暂停调试器时冻结外设

    当到达断点或用户暂停代码执行时 调试器可以停止 Cortex 中代码的执行 但是 当皮质停止在暂停状态下执行代码时 调试器是否会冻结其他外设 例如 DMA UART 和定时器 您只能保留时间 r 取决于外围设备 我在进入主函数时调用以下代码
  • 嵌入式开发--STM32G4系列片上FLASH的读写

    这个玩意吧 说起来很简单 就是几行代码的事 但楞是折腾了我大半天时间才搞定 原因后面说 先看代码吧 读操作 读操作很简单 以32位方式读取的时候是这样的 data IO uint32 t 0x0800F000 需要注意的是 当以32位方式读
  • 特殊寄存器

    特殊寄存器 文章目录 前言 一 背景 二 2 1 2 2 总结 前言 前期疑问 STM32特殊寄存器到底是什么 特殊寄存器怎么查看和调试代码 本文目标 记录和理解特殊寄存器 一 背景 最近在看ucosIII文章是 里面提到特殊寄存器 这就进
  • STM32 上的位置无关代码 - 指针

    我已成功在 STM32 上构建并运行位置无关的代码 向量表和 GOT 已修补 一切正常 但我对这样的代码有问题 double myAdd double x return x 0 1 double ptrmyAdd double myAdd
  • STM32内部时钟

    我对 STM32F7 设备 意法半导体的 Cortex M7 微控制器 上的时钟系统感到困惑 参考手册没有充分阐明这些时钟之间的差异 SYSCLK HCLK FCLK 参考手册中阅读章节 gt RCC 为 Cortex 系统定时器 SysT
  • PWM DMA 到整个 GPIO

    我有一个 STM32F4 我想对一个已与掩码进行 或 运算的 GPIO 端口进行 PWM 处理 所以 也许我们想要 PWM0b00100010一段时间为 200khz 但随后 10khz 后 我们现在想要 PWM0b00010001 然后
  • 使用 STM32F0 ADC 单独读取不同的输入

    STM32F072CBU 微控制器 我有多个 ADC 输入 并且希望单独读取它们 STMcubeMX 生成样板代码 假设我希望按顺序读取所有输入 但我无法弄清楚如何纠正这个问题 这篇博文 http blog koepi info 2015
  • 哪些变量类型/大小在 STM32 微控制器上是原子的?

    以下是 STM32 微控制器上的数据类型 http www keil com support man docs armcc armcc chr1359125009502 htm http www keil com support man d

随机推荐

  • Linux【shell命令以及运行原理】【权限】

    目录 一 shell命令以及运行原理 二 权限 1 用户的权限 2 文件的权限 3 权限的相关操作 第一种方法 第二种方法 改变所有者和所属组 常见的权限问题 1 目录的权限 xff1a 2 umask 粘滞位 如何将用户添加到信任列表赋予
  • 【Oracle】ORA-28000解决方法

    ORA 28000 账号被锁定 错误原因 xff1a 数据库中设置了密码最 错误次数为10次 xff0c 超过10次后导致账号被锁定 解决方案1 xff1a 1 查看 户使 的概要 件名 xff0c 般为DEFAULT SELECT USE
  • dpkg命令的用法

    dpkg命令的用法 dpkg 是Debian package的简写 xff0c 为 Debian 操作系统 专门开发的套件管理系统 xff0c 用于软件的安装 xff0c 更新和移除 所有源自 34 Debian 34 的Linux的发行版
  • 关于正则表达式的学习

    今天在写cpp题目的时候被字符串搜索恶心坏了 于是乎开始自学正则表达式 正则regex其实就是一个规范化的模板字符串 第一条 基础语法和注意事项 另外 在使用转义特殊字符的时候 要用到两个 才能有效果 b才代表一个数字 才能代表一个 34
  • 扩展卡尔曼滤波(EKF)

    本篇文章是看完http blog csdn net adamshan article details 78265754这篇文章后再加上自己的理解写的 xff0c 如果侵权可以联系我删除 xff0c 如果有不对的地方请您不啬赐教 xff01
  • OVS 基本操作命令

    1 ovs vsctl获取或者更改ovs vswitchd的配置信息 xff0c 此工具操作的时候会更新ovsdb server中的数据库 查看网桥 ovs vsctl show 添加网桥 ovs vsctl add br br0 创建po
  • 解决c++string类型变量无法输出中文的问题(环境:mingw+vscode)

    我也是在网上找了好久解决办法 其实很简单在visual code终端中输入chcp 936即可
  • 利用ros进行双目相机标定(发布双目相机话题再用cameracalibrator.py文件进行标定)

    1 创建工作环境 mkdir p opencv test src cd opencv test src catkin create pkg stereo camera std msgs roscpp rospy 2 修改CMakeLists
  • 串级PID 位置环+速度环

    1位置环和速度环的串级pid xff0c 首先要记住 xff0c 位置环的输出是速度环的输入 xff0c 最后控制输出为速度环的输出 速度环的PID控制器 代码如下 float Velocity KP A 61 400 Velocity K
  • 通过蓝点无限的学习,对UWB实现的过程以及对UWB连接WIFI的遇到的问题进行复盘

    超宽带 xff08 Ultra Wide Band xff0c UWB xff09 技术是一种无线载波通信技术 xff0c 它不采用正弦载波 xff0c 而是利用纳秒级的非正弦波窄脉冲传输数据 xff0c 因此其所占的频谱范围很宽 UWB技
  • Java——this关键字

    关于Java语言当中的this关键字 xff1a 1 this是一个关键字 xff0c 翻译为 xff1a 这个 2 this是一个引用 xff0c this是一个变量 xff0c this变量中保存了内存地址指向了自身 xff0c thi
  • 【开源“青女四轴”,DIY小四轴】

    开源 青女四轴 xff0c DIY小四轴 简介说明明确难点如何解决动态调节每个电机的升力 xff1f 硬件原理图如下 程序设计步骤建议最终程序声明 简介 四轴和遥控的主控芯片均为STM32F103C8T6 此开源项目为 从硬件设计到飞控的代
  • 实测 (二)NVIDIA Xavier NX + D435i / 奥比中光Astrapro 相机+ ORB-SLAM 2 + 3 稠密回环建图

    开发环境 xff1a NX 43 Ubuntu18 04 43 ROS melodic 接着上篇 xff0c 开始orb slam2稠密回环建图 二 NX 43 D435i 43 ORB SLAM2 稠密回环建图 先上效果图 这里感谢大神提
  • ubuntu 启用root用户及root用户远程登陆

    介绍 ubuntu安装好的时候你设置的用户并不是拥有最高权限的用户 xff0c 而最高权限的用户root需要你来启用他 xff01 如果用自己设置的用户会比较麻烦 xff0c 经常需要在命令前面加上 sudo xx 做法 1 首先右键开启一
  • 实测 (四)NVIDIA Xavier NX + D435i / 奥比中光Astrapro 相机+ ORB-SLAM 2 + 3 稠密回环建图

    来了 xff01 接着上篇 xff0c 开始orb slam3 的稠密回环建图实测 xff08 奥比中光Astrapro 相机 xff09 老样子 xff0c 先上效果图 xff1a 开发环境 xff1a NX 43 Ubuntu18 04
  • 无人机组装调试教程

    无人机 北郊强哥笔记 多轴飞行器如何称得上无人机 xff1f 关键在飞控 xff1a 飞控包括低端飞控 xff08 如kk xff0c QQ xff0c cc3D xff09 和智能化飞控 xff08 如APNM NAZA PIXHAWK
  • 51和STM32的Keil环境搭建

    前言 笔者由于竞赛需要 xff0c 最近开始学习STM32H7系列芯片 xff0c 由于之前并没有学习过32 xff0c 且51也是较早时期学习 xff0c 对于一些概念一知半解 xff0c 没有得到很好的吸收 xff0c 所以在基础较差的
  • 【STM32】滴答时钟24位递减计数器系统时钟【SystTick】

    SysTick定时器 xff0c 也叫滴答定时器或者系统定时器 SysTick 系统定时器是属于CM3内核中的一个外设 xff0c 内嵌在NVIC中 系统定时器是一个24位的向下递减的计数器 xff0c 计数器每计数一次的时间为1 SYSC
  • Opencv通道

    Opencv通道 1 拆分通道 1 拆分一个BGR图像 使用split b g r 61 cv2 split bgr image b B通道图像 g G通道图像 r R通道图像 注意 xff1a 顺序不能变 xff01 xff01 xff0
  • STM32入门100步

    目录 1 C8T6引脚图 2 电路基础 1 IO口静态特性 xff1a 2 上下拉电阻 3 STM32官网 xff1a 4 内核与存储器 5 时钟 复位和电源管理 6 低功耗和ADC 7 DMA和IO端口 8 调试模式和定时器 9 看门狗和