STM32入门学习(一):STM32 简介与软件安装

news2024/11/29 0:36:39

参考引用

  • 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. 软件安装

  • 资料下载
  • 软件安装

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1254087.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国内20个大模型中文场景测评及体验

中文场景能力测评 SuperCLUE排行榜 大模型及网站 公司(大模型) 智能程度 借鉴点 体验网站 备注 1 百度文心一言 高   文心一言   2 百川智能 高   百川大模型-汇聚世界知识 创作妙笔生花-百川智能   3 商汤商量SenseChat&#xff…

徕芬不是满分:自称超越戴森,用户称多次故障,品控仍是老大难?

撰稿|行星 来源|贝多财经 “双十一”购物节落下帷幕后,各大品牌纷纷公布“战报”。其中,高速吹风机品牌徕芬(也称“徕芬科技”)销售额超4.4亿元,全系产品销量超过80万台,高速吹风机系列单品(LF03、SE)销售…

基于springboot实现实习管理系统的设计与实现项目【项目源码+论文说明】

基于sprinmgboot实现实习管理系统的设计与实现演示 摘要 随着信息化时代的到来,管理系统都趋向于智能化、系统化,实习管理也不例外,但目前国内仍都使用人工管理,市场规模越来越大,同时信息量也越来越庞大,…

智能联系人管理Python代码

在PyCharm中运行《智能联系人管理》即可进入如图1所示的系统主界面。 图1 系统主界面 具体的操作步骤如下: (1)添加联系人。在主界面中,单击“添加”按钮,将打开添加联系人窗口,在该窗口中,单…

时间序列预测 — Informer实现多变量负荷预测(PyTorch)

目录 1 实验数据集 2 如何运行自己的数据集 3 报错分析 1 实验数据集 实验数据集采用数据集4:2016年电工数学建模竞赛负荷预测数据集(下载链接),数据集包含日期、最高温度℃ 、最低温度℃、平均温度℃ 、相对湿度(平均) 、降雨…

学习笔记:如何分析财务报表

其实财务报表分析最核心的东西,是通过财务报表这个结果,由果推因,找出造成这个结果的原因。 会计是商业的语言 首先第一个问题是——会计是商业的语言,这是会计的根本。 什么叫“语言”,就是可以通过它进行交流。比如…

抖音视频怎么提取动图?手机视频转gif方法

抖音是人们休闲娱乐消遣时光必备的短视频软件,当我们想要把好玩有趣的抖音短视频转换成gif动画时,要怎么操作呢?通过使用gif动图制作(https://www.gif.cn/)网站-GIF中文网,手机自带浏览器,上传视…

手把手教你对禅道接口发起请求-基础版

本章一起来学习如何对禅道的接口发起请求。 🔴注:本章接口需要自己搭建本地禅道,部署之简单,百度一看就会。如下是官网地址,下载开源版本即可: https://www.zentao.net/ 接口文档 https://www.zentao.net/b…

iar如何全擦芯片内存

Project ->Download -> Erase memory

二年级 最少需要几个刻度?

娃二年级题目:请你设计一把尺子,用这把尺子一次能画出 1~8厘米八条不同长度的线段。最少需要几个刻度? 答:最少需要 5 个刻度; 方案有: 0, 1, 2, 5, 8 0, 1, 3, 7, 8 0, 1, 4, 6, 8 0, 1, 5, 6, 8 0, 1, 5…

burpsuite的大名早有耳闻,近日得见尊荣,倍感荣幸

问题: burpsuite中文乱码何解? burpsuite 与君初相识,犹如故人归。 burpsuite早有耳闻,近日得见真容,果然非同凡响。 Burp Suite is a comprehensive suite of tools for web application security testing. burp …

【教3妹学编程-算法题】统计子串中的唯一字符

3妹:“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包” 2哥 :3妹,什么事呀这么开发。 3妹:2哥你看今天的天气多好啊,阳光明媚、万里无云、秋高气爽,适合秋游。 2哥&#x…

最新AI创作系统ChatGPT系统运营源码+DALL-E3文生图+支持OpenAI-GPT全模型+国内AI全模型

一、AI创作系统 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI…

Java、PHP、C语言经典项目源码合集推荐(一)

(一).Java智慧校园系统源码、 智慧学校源码、 智慧校园平台源码、智慧校园电子班牌系统源码、中小学智慧校园系统源码、 原生微信小程序端源码、电子班牌系统源码 项目技术栈 1、使用springboot框架Javavue2 2、数据库MySQL5.7 3、移动端小程序使用小程…

【开源】基于Vue和SpringBoot的木马文件检测系统

项目编号: S 041 ,文末获取源码。 \color{red}{项目编号:S041,文末获取源码。} 项目编号:S041,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 木马分类模块2.3 木…

Proteus仿真--高仿真数码管电子钟

本文介绍基于数码管的高仿真电子钟(完整仿真源文件及代码见文末链接) 仿真图如下 本设计中80C51单片机作为主控,用74LS138作为数码管显示控制,共有4个按键,其中分别用于12/24小时显示切换、时间设置、小时加减控制和…

Day02嵌入式---按键控灯

一、简单介绍 按键控制灯开关是一种常见的嵌入式系统示例项目,它通常用于演示嵌入式系统的基本控制能力。该项目由一个或多个LED和一个按键组成。通过按下按键,可以控制LED的开关状态,从而实现灯的亮灭控制。 二、查看功能手册 2.1 查看硬件…

【brpc学习实践八】bvar及其应用

什么是bvar bvar是多线程环境下的计数器类库,支持单维度bvar和多维度mbvar,方便记录和查看用户程序中的各类数值,它利用了thread local存储减少了cache bouncing,相比UbMonitor(百度内的老计数器库)几乎不会给程序增加性能开销&a…

RabbitMQ之消费者可靠性

文章目录 前言一、消费者确认机制二、失败重试机制三、失败处理策略四、业务幂等性唯一消息ID业务判断 五、兜底方案总结 前言 当RabbitMQ向消费者投递消息以后,需要知道消费者的处理状态如何。因为消息投递给消费者并不代表就一定被正确消费了,可能出现…