STM32 学习笔记_1前言;软件安装

news2024/11/20 11:40:39

前言

学习自江科大自动协 b站课程。

呜呼!今朝有坑今朝开,管他明朝埋不埋!开新坑的过程是最爽的。

STM32 是 ST 公司基于 ARM CORE-M 芯片(类似 CPU)开发的32位的单片机,相比8位的51单片机性能更强。(也有 STM8)

ARM 公司设计 ARM 内核架构,半导体厂商根据架构完善周边电路并制作芯片。现在95%手机、平板都是 ARM 架构的, ARM 公司是真的牛。

A 系列主要是应用产品使用,比如手机平板就是用A系列。R 系列主要特点是实时,比如硬件处理器中使用。M 系列主要是单片机使用。

STM32 有四大类:高性能类,主流类(我们学习的 F1 就属于主流类),超低功耗类,无线类。

51之前并没有学完(我的51显示屏电位器和显示屏元件坏了。正在考虑要不要买新的。AD DA 转换还没有学)。本课程学习 STM32 开发板,此板建议在51单片机之后学习,需要对相关知识有一定基础才会轻松很多。

关键部分代码最好还是手动敲一敲。

STM32 是使用面包板将原件和开发板引脚连接起来,相比51单片机,既能加深对硬件电路的理解,也能避免引脚焊死的一些问题。比如我的51板子有个电位器拧坏了。现在估计就要整个重买。还有可以自己布局引脚。

当然连线也会有一些新问题。比如电线坏了使得程序跑不了需要排查。

软件开发使用 Keil MDK,这个和 Keil C51不一样。

image-20230125204834422

F1 系列所有的外设(并不是所有芯片都有。比如我们的芯片就只有一部分):

image-20230125210230393

具体有什么可以查数据文档。

STM32:基于 ARM 核心的32位微控制器。

F:通用类型。

103:增强型。

C:引脚数48脚。

8:64K 字节的闪存存储器。

T:采用 LQFP 封装。

6:工业级温度范围 -40~85。

系统结构:

image-20230130155625540

左上角:内核,引出了三条总线。

ICODE DCODE:连接 FLASH 闪存。闪存中存储程序, ICODE 加载程序,DCODE 加载数据。

系统总线:连接 SRAM (存储程序运行时变量)、AHB 系统总线(先进高能总线,挂载最基本的或者性能较高的外设,如 RESET CLK;并通过级联连接性能较低的 APB,用于连接一些重要外设如 ADC。APB2 性能和频率高于 APB1)等。

DMA 可以处理一些辅助 CPU 的工作,如数据搬运。提高 CPU 工作效率。

image-20230130163347869

小黑点代表一号引脚。

红色:电源相关引脚。

蓝色:最小系统相关引脚。

绿色: IO、功能口。

IO 口电平:IO 口最大能容忍的电压。有 FT (Five Tolerate) 的是5V,没有的是 3.3V。

主功能:基本 IO 口,未连接外设可以直接读取高低电平。

默认复用功能:连接外设驱动的功能。

重定义功能:如果想同时用一个引脚的两个功能,可以通过重定义将一个功能映射到其他引脚上。

  1. VBAT:既能供电,又能作为备用电源。

  2. 可以作为基本的 IO 口或安全保障的侵入检测。比如产品上可以添加一些防拆触点,强行拆开就会触发侵入信号,进而清空数据。或者做 RTC 时钟相关。

  3. 34 做基本 IO 口或接 RTC 晶振。

  4. 34 做基本 IO 口或接 RTC 晶振。

  5. 56 接系统主晶振。一般是 8MHZ,芯片内部的锁相环电路可以使其倍频,最高 72MHZ,作为系统主时钟。

  6. 56 接系统主晶振。

  7. NSRT 系统复位引脚,N 表示低电平复位。

  8. 89 是内部模拟部分的电源,如 ADC RC 振荡器用。VSSA 负极。

  9. VDDA 正极。(3.3V)

  10. 10~19 都是 IO。10号 PA0 还兼具了 WKUP 功能,能唤醒待机状态下的 STM32。

  11. IO 口或 BOOT1 引脚,BOOT 用于配置启动模式。这个是可能需要配置的 IO 口,优先级没有其他 IO 口高。

  12. 21 22 IO 口。

  13. 21 22 IO 口。

  14. VSS 系统主电源口。负极。

  15. VDD 系统主电源口。正极。

STM32 分区供电,有许多 VSS VDD 口。

  1. 25~33 IO 口。

  2. 34,37~40 IO 口(需要配置)或调试端口,用于调试下载程序支持 SWD JTAG 两种调试方式。

  3. 41-43 45-46 IO 口。

  4. BOOT0.

BOOT:程序开始运行的位置。有时需要不在 flash 中开始,以完成某些特殊功能。

image-20230130174959996

若想通过串口下载程序,需要设置 01。比如 34,37~40 都被占用时。或者没有 STLINK JLINK 时。

11 用于程序调试,本课程中不会用到。

要在第四个上升沿前设置 BOOT,之后就没有影响了。

最小系统电路:

image-20230130220135709

主电源和模拟电源都连接了电源。

VCC GND 之间加一个滤波电容,保证电源稳定性。

VBAT 接备用电源,一般接一个 3V 纽扣电池正极即可。

晶振不必多说,如果想有 RTC 功能再加个32.768 MHZ (即 OSC32 )晶振在 34 引脚。

复位电路低电平复位,一开始电容没电,一开始就是低电平。逐渐充满电后变为高电平。或者按下按键电容放电复位。

启动配置通过跳线帽设置 BOOT。

我们的单片机实物还有一些外设:USB 接口,3.3V 恒压芯片,电源和 IO 指示灯,32.768 MHZ 晶振(黑色的)。

软件安装

安装 MDK。

KEIL5 需要安装器件支持包。没安装选择芯片型号时会找不到我们的芯片。

注册软件,和 51单片机类似的方法。

安装 STLINK 驱动。

安装 USB CH340 驱动,和 51单片机的通用。

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

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

相关文章

【数据结构】哈希表的原理及实现

1.什么是哈希表 哈希表又称为散列表,它是一种以键值对形式来存储数据的结构,只要输入待查找的key,就可以通过该key寻找到对应的值。对应函数:y f(key)通过把关键码映射到表中的对应位置来访问对应信息,来加快查找速度…

机械设备行业ERP在企业中如何发挥作用?

对机械设备制造企业而言,一方面,大部分销售额都集中在少数几个客户,很难实时了解市场和用户真实需求,订单修改、取消,销售、生产预测不准,原料积压、作废等是常有的事,日积月累给企业造成极大的…

【官方 | 计算机二级Python教程】第一章:程序设计基本方法

【官方 | 计算机二级Python教程】第一章:程序设计基本方法参考书目第一章:程序设计基本方法本章知识导图1.1 程序设计语言1.1.1 程序设计语言概述1.1.2 编译和解释1.2 Python语言概述1.2.1 Python语言的发展1.2.2 Python最小程序1.3 Python开发环境配置1…

iptables端口复用_远程操控

目录 方式一:利用 ICMP 做遥控开关 一、创建端口复用链 二、创建端口复用规则 三、设置开启开关 四、设置关闭开关 五、将发现的数据包转到HTTP_SSH_PORT链上进行处理 六、开启复用 七、关闭复用 方式二:利用tcp数据包中的关键字做遥控开关 一…

【Java】GET 和 POST 请求的区别

GET 和 POST 请求的区别 GET 和 POST请求是最常用的两种请求方法,写了几个Servlet项目,发现这两种请求用的实在是多,给我的感觉就是这两个请求仿佛只有一个名字不同而已。但是通过查询资料发现,里面大有文章。HTTP协议定义的方法…

从0开始学python -18

Python3 元组 Python 的元组与列表类似,不同之处在于元组的元素不能修改。 元组使用小括号 ( ),列表使用方括号 [ ]。 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。 实例(Python 3.0) >>> tup1 (Go…

研发能力加码!维视智造团队入选“科学家+工程师”队伍!

一、维视智造成功入选2023年度秦创原“科学家工程师”队伍近日,陕西省科学技术厅公布了2023年度秦创原“科学家工程师”队伍入选名单,维视智造旗下欣维视觉工程师团队联合西北工业大学马志强副教授团队,申报的“大口径光学元件形性误差检测方…

第9章 Idea集成gitee(码云)

第一节 码云简介 众所周知,GitHub服务器在国外,使用GitHub作为项目托管网站,如果网速不好的话,严重影响使用体验,甚至会出现登录不上的情况。针对这个情况,大家也可以使用国内的项目托管网站-码云。 码云…

golang 协程关闭——谁敢说没踩过坑

Go语言中,协程创建和启动非常简单,但是如何才能正确关闭协程呢,和开车一样,前进总是很容易,但是如何正确的把车停在指定的地方总是不容易的。生产实践中,go常常遇到未能正确关闭协程而影响程序运行的场景&a…

Unity - TextMeshPro

TextMeshPro TextMeshPro 是 Unity 的终极文本解决方案。它是 Unity 的 UI 文本和旧版文本网格的完美替代品。 TextMeshPro(也称为 TMP)功能强大且易于使用,它使用高级文本渲染技术以及一组自定义着色器;提供显着的视觉质量改进&…

C++分文件编写VS Code和CMakeLists使用详解

目录一、示例代码1.1 主函数main.cpp1.2 子函数源文件1.3 子函数头文件二、VS Code编译2.1 报错2.2解决方法三、CMakeLists编译Windows 10 Ubuntu 20.04 VS Code 一、示例代码 1.1 主函数main.cpp 要用双引号包含子函数的头文件&#xff0c;第二行 #include<iostream&g…

项目经理必备的5种项目管理工具,让你的项目迅速上手

做项目管理是一条漫漫长路&#xff0c;所有的本事&#xff0c;都是靠一个个项目&#xff0c;一点点积累而来的&#xff0c;并不存在“迅速上手”的方法。 一名普通项目经理的成长&#xff0c;都要经过一定时间的修炼&#xff0c;并且要灵活使用项目管理工具&#xff0c;这里给…

跑步的人如何选择耳机、最好的跑步蓝牙耳机排名清单

相信很多人和小编一样&#xff0c;在跑步健身的时候也喜欢听点音乐&#xff0c;特别是节奏感强的音乐能让运动更加有激情。但是如果佩戴传统的有线耳机容易扯到线&#xff0c;在现代化的今天&#xff0c;当然要选择蓝牙耳机。今天就为大家介绍一下跑步用什么蓝牙耳机好&#xf…

看完这篇文章,我再也不用担心线上出现CPU性能问题了(下)

目录平均负载CPU 使用率进程上下文切换补充总结在 《看完这篇文章&#xff0c;我再也不用担心线上出现CPU性能问题了&#xff08;上&#xff09;》中&#xff0c;咸鱼给大家介绍了 CPU 常见的性能指标&#xff0c;当生产环境出现 CPU 性能瓶颈的时候&#xff0c;优先观察这些指…

论文投稿指南——中文核心期刊推荐(食品工业 2)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…

写IB EE(Extended Essay)时最容易犯的五大错误

【第一大忌】用随意找来的文章做Sources&#xff01; 同学们都知道EE写作一定要做好citation&#xff0c;在文中、文末都要列出参考资料。但不是什么文章都”有资格“成为bibliography的一部分&#xff0c;选取质量高的sources是很重要的。那些百度上搜到的作者不详、自己都没有…

教你使用 Petalinux 定制 Linux

测试平台&#xff1a;黑金 Zynq7035 开发板 芯片型号&#xff1a;XC7Z035-2FFG676I 开发环境&#xff1a;Ubuntu 16.04 开发工具&#xff1a;Petalinux 2017.4 Step1 创建 Petalinux 工程 1.1 将 Vivado 工程目录下*.sdk文件夹中的*.hdf文件复制到新建的proj文件夹中 1.2 …

串级PID控制原理-2

按串级控制的基本原理&#xff0c;采用Simulink进行编程&#xff0c;在连续方式下进行仿真。在串级控制中&#xff0c;主调节器采用PI控制&#xff0c;取kp 50&#xff0c;k i5&#xff0c;副调节器采用Р控制&#xff0c;kp 200。外加干扰为正弦信号sin(50t)&#xff0c;通过切…

报表控件Stimulsoft技术答疑:如何在二维码中编码数据?

Stimulsoft Reports是一款报告编写器&#xff0c;主要用于在桌面和Web上从头开始创建任何复杂的报告。可以在大多数平台上轻松实现部署&#xff0c;如ASP.NET, WinForms, .NET Core, JavaScript, WPF, Angular, Blazor, PHP, Java等&#xff0c;在你的应用程序中嵌入报告设计器…

深度学习网络各种激活函数 Sigmoid、Tanh、ReLU、Leaky_ReLU、SiLU、Mish

激活函数的目的就是为网络提供非线性化 梯度消失&#xff1a;梯度为0&#xff0c; 无法反向传播&#xff0c;导致参数得不到更新 梯度饱和&#xff1a;随着数据的变化&#xff0c;梯度没有明显变化 梯度爆炸&#xff1a;梯度越来越大&#xff0c;无法收敛 梯度消失问题&#…