STM32入门_江协科技_1~2_OB记录的自学笔记_STM32简介

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嵌套向量中断控制器(内核内外设)CANCAN通信
SysTick系统滴答定时器(内核内外设)USBUSB通信
RCC复位和时钟控制RTC实时时钟
GPIO通用IO口CRCCRC校验
AFIO复用IO口PWR电源控制
EXTI外部中断BKP备份寄存器
TIM定时器IWDG独立看门狗
ADC模数转换器WWDG窗口看门狗
DMA直接内存访问DAC数模转换器
USART同步/异步串口通信SDIOSD卡接口
I2CI2C通信FSMC可变静态存储控制器
SPISPI通信USB OTGUSB主机接口

在这里插入图片描述

  • 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》核心板原理图中

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Allegro画PCB时如何只删除走线的一部分

如何只删除走线的一部分 1、第一步: 2、第二步: 3、第三步,点击相应的走线段就能删除了。 说明:上面的Cline和Line只的是电线和线,您按下删除后,就可以删除这两种东西,但删除的是一整条折线.把这两个取消掉,换成Cline Segs和Ot…

【代码随想录刷题记录】LeetCode283移动零

题目地址 1. 思路 1.1 基本思路及假设 拿到这个题,首先想到,这是类似删除元素的方法,因为删除元素也是移动元素,但是移动的方向和删除元素的方法刚好相反,我们都知道,如果在数组中删除某个元素&#xff…

【Docker】docker部署lnmp和wordpress网站

环境准备 docker:192.168.67.30 虚拟机:4核4G systemctl stop firewalld systemctl disable firewalld setenforce 0 安装docker #安装依赖包 yum -y install yum-utils device-mapper-persistent-data lvm2 #设置阿里云镜像 yum-config-manager --add…

vue2主体页面进行拆分

目录 一.组件化 二.新建Header.vue页面 三.Aside.vue代码 四.Main.vue代码如下 五.Home.vue代码如下 六.index.js代码如下: 七.项目效果图 在Vue.js 2中,将主体页面进行拆分是一种常见的做法,它有助于提高代码的可维护性和可读性。页面…

js实现简单的级联下拉列表

代码如下&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><script src"js/jquery.min.js" type"text/javascript" charset"utf-8"></script><st…

Linux的磁盘分区,格式化,挂载

1.需要提前添加几个磁盘&#xff0c;以做实验 2.把nvme0n2磁盘用来分区实验 3.分了一个主分区&#xff0c;和一个扩展分区&#xff08;扩展分区是不能使用的&#xff0c;所以又在扩展分区里分了一个逻辑分区&#xff09;分区的大小自己定义 4.格式化分出来的区&#xff0c;这…

618不可错过的数码好物精选!等等党必看清单汇总

无论是追求高效工作的职场人士&#xff0c;还是热爱科技、追求品质生活的消费者&#xff0c;都希望能找到那些既实用又富有创新精神的数码好物&#xff0c;现在正值618购物狂欢节来临之际&#xff0c;我精心为大家挑选了一份不可错过的数码好物清单&#xff0c;这份清单不仅汇聚…

App一键直达,Xinstall助力提升用户体验

在这个移动互联网时代&#xff0c;App已经成为了我们日常生活中不可或缺的一部分。然而&#xff0c;每当我们在浏览器或社交平台上看到一个有趣的App推荐&#xff0c;点击下载后却往往要经历一系列繁琐的跳转和确认过程&#xff0c;这无疑大大降低了用户体验。那么&#xff0c;…

数据结构 - C/C++

快速跳转 数组链表栈队列串树 目录 数据结构 逻辑结构 物理结构 数据结构 数据 数据不仅仅包括整型、实型等数值类型&#xff0c;还包括字符及声音、图像、视频等非数值类型。 计算机可以理解并按照指定格式处理。 结构 元素相互之间存在一种或多种特定关系的数据集合。 …

Git 常用命令大全

&#x1f680; Git安装与基础知识学习 &#x1f310; &#x1f3af; Git作为一款全球开发者广泛使用的分布式版本控制系统&#xff0c;能够有效帮助团队协作并追踪项目历史版本。接下来&#xff0c;我们将详细展开Git的安装流程、基础命令操作、高级用法以及应对常见问题的方法…

西湖大学赵世钰老师【强化学习的数学原理】学习笔记1节

强化学习的数学原理是由西湖大学赵世钰老师带来的关于RL理论方面的详细课程&#xff0c;本课程深入浅出地介绍了RL的基础原理&#xff0c;前置技能只需要基础的编程能力、概率论以及一部分的高等数学&#xff0c;你听完之后会在大脑里面清晰的勾勒出RL公式推导链条中的每一个部…

信息系统集成对企业的影响到底有多大?

什么是信息系统集成 系统集成&#xff08;System Integration&#xff09;是指将若干个独立运作的系统或服务联通并整合的过程&#xff0c;旨在将那些存在交集或重复功能的分散模块融合为一个协同工作的整体&#xff0c;以实现效能的最大化和资源的最优配置&#xff0c;避免不…

找不到mfc140u.dll文件如何处理?这三种方法帮你快速修复mfc140u.dll

当你的电脑出现提示&#xff0c;显示找不到mfc140u.dll文件&#xff0c;从而无法继续执行代码&#xff0c;你需要知道如何应对这种情况。今天我们就来详细说明如何解决mfc140u.dll文件丢失的问题&#xff0c;并对该文件进行详细分析。这个文件是Microsoft Visual Studio的一个重…

AI文章写作网站

最强AI文章写作网站——心语流光&#xff08; Super Ai Writer &#xff09; 特点 多轮问答写作&#xff0c;自动携带历史记录进行问答可以自定义携带历史记录的轮数&#xff0c;为0则携带全部历史记录&#xff0c;有效避免token浪费&#xff08;类似coze平台&#xff09;AI生…

【Java网络编程】TCP通信(Socket 与 ServerSocket)和UDP通信的三种数据传输方式

目录 1、TCP通信 1.1、Socket 和 ServerSocket 1.3、TCP通信示例 2、UDP的三种通信&#xff08;数据传输&#xff09;方式 1、TCP通信 TCP通信协议是一种可靠的网络协议&#xff0c;它在通信的两端各建立一个Socket对象 通信之前要保证连接已经建立&#xff08;注意TCP是一…

【06】JAVASE-数组讲解【从零开始学JAVA】

Java零基础系列课程-JavaSE基础篇 Lecture&#xff1a;波哥 Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机&#xff0c;Java 仍是企业和开发人员的首选开发平台。…

从业务经营到企业战略,构建制药企业数字化应用新能力

我国医药的消费正处在一个高速增长的阶段&#xff0c;人口增长、老龄化加剧、经济总体增长、人均消费增长、农村收入提高&#xff0c;这五大因素是医药市场蓬勃发展的动力。在这五大因素的驱动下&#xff0c;我国的医药市场需求将会在未来相当长的时间内保持高速增长。从多个环…

神经网络:手写数字图像识别

一、导入相关库函数 import matplotlib.pyplot as plt import tensorflow as tf import keras import numpy as np 二、载入mnist数据集 使用keras.中的mnist数据集 (train_images, train_labels), (test_images, test_labels)\ keras.datasets.mnist.load_data() 三、测…

在微信上卖化妆品怎样发圈(学会写朋友圈段子卖货很简单)

大家好&#xff0c;我是只说人话&#xff0c;不讲概念&#xff0c;专给创业者们开思维脑洞 今天咱们要分享的内容比较有趣&#xff0c;教你如何写段子故事在朋友圈里做促销活动。 首先我们来看一个硬蹭明星热点的朋友圈案例。发朋友圈的是一位做装修的&#xff0c;在明星结婚的…

Python AI库 Pandas的常见操作的扩展知识

Python AI库 Pandas的常见操作的扩展知识 本文默认读者具备以下技能&#xff1a; 熟悉python基础知识&#xff0c;vscode或其它编辑工具 熟悉表格文件的基本操作 具备自主扩展学习能力 前文中对Pandas的数据结构以及基础操作做了介绍,本文中会在前文的基础上,对常见的操作进…