草庐IT

STM32入门100步

绅士·永 2023-04-25 原文

目录

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、定时器功能

定时器:

捕获器:

 

 输出 比较器:

有关STM32入门100步的更多相关文章

  1. STM32读取串口传感器数据(颗粒物传感器,主动上传) - 2

    文章目录1.开发板选择*用到的资源2.串口通信(个人理解)3.代码分析(注释比较详细)1.主函数2.串口1配置3.串口2配置以及中断函数4.注意问题5.源码链接1.开发板选择我用的是STM32F103RCT6的板子,不过代码大概在F103系列的板子上都可以运行,我试过在野火103的霸道板上也可以,主要看一下串口对应的引脚一不一样就行了,不一样的就更改一下。*用到的资源keil5软件这里用到了两个串口资源,采集数据一个,串口通信一个,板子对应引脚如下:串口1,TX:PA9,RX:PA10串口2,TX:PA2,RX:PA32.串口通信(个人理解)我就从串口采集传感器数据这个过程说一下我自己的理解,

  2. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  3. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

  4. 【Java入门】使用Java实现文件夹的遍历 - 2

    遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些!一、使用递归遍历文件夹整体思路1、使用File封装初始目录,2、打印这个目录3、获取这个目录下所有的子文件和子目录的数组。4、遍历这个数组,取出每个File对象4-1、如果File是否是一个文件,打印4-2、否则就是一个目录,递归调用代码实现publicclassSearchFile{publicstaticvoidmain(String[]args){//初始目录Filedir=newFile("d:/Dev");Datebeg

  5. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  6. 100个python算法超详细讲解:画直线 - 2

    1.问题描述使用Python的turtle(海龟绘图)模块提供的函数绘制直线。2.问题分析一幅复杂的图形通常都可以由点、直线、三角形、矩形、平行四边形、圆、椭圆和圆弧等基本图形组成。其中的三角形、矩形、平行四边形又可以由直线组成,而直线又是由两个点确定的。我们使用Python的turtle模块所提供的函数来绘制直线。在使用之前我们先介绍一下turtle模块的相关知识点。turtle模块提供面向对象和面向过程两种形式的海龟绘图基本组件。面向对象的接口类如下:1)TurtleScreen类:定义图形窗口作为绘图海龟的运动场。它的构造器需要一个tkinter.Canvas或ScrolledCanva

  7. 区块链入门教程(6)--WeBASE-Front节点前置服务安装 - 2

    文章目录1.任务背景2.任务目标3.相关知识点4.任务实操4.1安装配置JDK4.2启动FISCOBCOS4.3下载解压WeBASE-Front4.4拷贝sdk证书文件4.5启动节点4.6访问节点4.7检查运行状态5.任务总结1.任务背景FISCOBCOS其实是有控制台管理工具,用来对区块链系统进行各种管理操作。但是对于初学者来说,还是可视化界面更友好,本节就来介绍WeBASE管理平台,这是一款微众银行开源的自研区块链中间件平台,可以降低区块链使用的门槛,大幅提高区块链应用的开发效率。微众银行是腾讯牵头设立的民营银行,在国内民营银行里还是比较出名的。微众银行参与FISCOBCOS生态建设,一定

  8. STM32的HAL和LL库区别和性能对比 - 2

    LL库和HAL库简介LL:Low-Layer,底层库HAL:HardwareAbstractionLayer,硬件抽象层库LL库和hal库对比,很精简,这实际上是一个精简的库。LL库的配置选择如下:在STM32CUBEMX中,点击菜单的“ProjectManager”–>“AdvancedSettings”,在下面的界面中选择“AdvancedSettings”,然后在每个模块后面选择使用的库总结:1、如果使用的MCU是小容量的,那么STM32CubeLL将是最佳选择;2、如果结合可移植性和优化,使用STM32CubeHAL并使用特定的优化实现替换一些调用,可保持最大的可移植性。另外HAL和L

  9. Tcl脚本入门笔记详解(一) - 2

    TCL脚本语言简介•TCL(ToolCommandLanguage)是一种解释执行的脚本语言(ScriptingLanguage),它提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固有的核心命令集。TCL经常被用于快速原型开发,脚本编程,GUI和测试等方面。•实际上包含了两个部分:一个语言和一个库。首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。由于TCL的解释器是用C\C++语言的过程库实现的,因此在某种意义上我们又可以把TCL看作C库,这个库中有丰富的用于扩展TCL命令的C\C++过程和函数,所以,Tcl是

  10. Simulink方法总结和避坑指南(一)——Simulink入门与基本调试方法 - 2

    文章目录一、项目场景二、基本模块原理与调试方法分析——信源部分:三、信号处理部分和显示部分:四、基本的通信链路搭建:四、特殊模块:interpretedMATLABfunction:五、总结和坑点提醒一、项目场景  最近一个任务是使用simulink搭建一个MIMO串扰消除的链路,并用实际收到的数据进行测试,在搭建的过程中也遇到了不少的问题(当然这比vivado里面的debug好不知道多少倍)。准备趁着这个机会,先以一个很基本的通信链路对simulink基础和相关的debug方法进行总结。  在本篇中,主要记录simulink的基本原理和基本的SISO通信传输链路(QPSK方式),计划在下篇记

随机推荐