第1章 开发板功能及使用介绍

news2024/12/28 4:22:07

1.开发板功能及使用介绍

本章主要内容
1.开发板功能介绍
2.开发板使用方法
介绍在这里插入图片描述

STM32介绍

本章主要内容:
1.什么是STM32
2.STM32与ARM的关系
3.STM32F407ZGT6介绍
4.STM32能做什么

1.什么是STM32
从字面意义来看:
ST:意法半导体,是一个公司的名字。
M:Microelectronics的缩写,表示微控制器,要注意微控制器和微处理器的区别
32:32bit的意思,表示这是一个32bit的微控制器

2.STM32与ARM的关系
ARM是英国的芯片设计公司,其最成功的莫过于32位嵌入式CPU核--------ARM系列,最常用的是ARM7和ARM9,ARM公司主要提供IP(Intellectual Property core知识产权的核心)核,就是CPU的内核结构,只包括最核心的部分,并不是完整的处理器。ARM把这个核卖给各大半导体公司,如Philips 三星,ATMEL, 甚至Intel等许多公司。ARM为了对付8位机市场,推出了一系列Cortex-M核,STM32就是将Cortex-M作为内核,通过一些外设等组合封装在一起就成了如今火爆的32位嵌入式处理器。
我们开发板上使用的是STM32F4,也就是M4内核
Cortex-M4采用ARMv7-ME架构
ARMv7架构定义了三大分工明确的系列:
“A“系列:面向尖端的基于虚拟内存的操作系统和用户应用
“R“系列:针对实时系统
“M"系列:对微控制器
Cortex-M3采用ARMv7-M架构,Cortex-M0采用ARMv6-M架构,Cortex-A5/A8采用ARMv7-A架构,传统的ARM7系列采用的是ARMv4T架构。
3.STM32F407ZGT6介绍
首先我们看下STM32是如何分类的:
在这里插入图片描述
STM32的命名规则
STM32型号的说明:以STM32F103RBT6这个型号的芯片为例,该型号的组成为7个部分,其命名规则如下:
在这里插入图片描述
STM32F407ZGT6:407表示是M4内核,高性能且带DSP和FPU
在这里插入图片描述
在这里插入图片描述
我们使用的开发板芯片是STM32F407ZGT6芯片,其内部资源介绍如下:
(1)内核:32位,高性能ARM Cortex-M4处理器
时钟:高达168M,实际还可以超频一点,支持FPU(浮点运算)和DSP指令
在这里插入图片描述
(2)IO口:STM32F407ZGT6:144引脚 144个IO大部分IO口都耐5V(模拟通道除外)支持调试:SWD和JTAG,SWD只要2根数据线
(3)存储器容量:1024K FLASH, 192K SRAM
在这里插入图片描述
(4)时钟,复位和电源管理:
1:1.8~3.6V电源和IO电压
2:上电复位,掉电复位和可编程的电压监控
3:强大的时钟系统
-4~26M的外部高速晶振
-内部16MHz的高速RC振荡器
-内部32KHz低速RC振荡器,看门狗时钟
-内部锁相环(PLL,倍频),一般系统时钟都是外部或者内部高速时钟经过PLL倍频后得到
-外部低速32.768K的晶振,主要做RTC时钟源
(5)低功耗:
-睡眠,停止和待机三种低功耗模式
-可用电池为RTC和备份寄存器供电
(6)AD:
-3个12位AD(多达24个外部测量通道)
-内部通道可以用于内部温度测量
-内置参考电压
(7)DA:2个12位DA
(8)DMA:16个DMA通道,带FIFO和突发支持
支持外设:定时器,ADC,DAC, SDIO,I2S,SPI,I2C,和USART
(9)定时器:多达17个定时器
-10个通用定时器(TIM2和TIM5是32位)
-2个基本定时器
-2个高级定时器
-1个系统定时器
-2个看门狗定时器
(10)通信接口:多达17个通信接口
-3个I2C接口
-6个串口
-3个SPI接口
-2个CAN2.0
-2个USB OTG
-1个SDIO
那么我们怎么知道相应管脚的具体功能呢?
答:我们可以通过芯片数据手册查找。
在这里插入图片描述
4.STM32能做什么
STM32的用处取决于其内部资源,前面我们了解了STM32内部拥有非常多的通信接口。所以如果你使用的块拥有此接口都可以通信。
比如:
USART: ESP8266 WIFI模块、GSM模块、蓝牙模块、GPS模块、指纹识别模块等。
IIC: RRPROM、MPU6050陀螺仪、0.96寸OLED屏、电容屏等。
SPI: 串行FLASH、以太网W5500、vs1003/1053音频模块、SPI接口的OLED屏、电阻屏等。
AD/DA:光敏传感器模块、烟雾传感器模块、可燃气体传感器模块、简易示波器等
其他的一些接口这里就不罗列,反正STM32能做的东西有很多。
例如:日常生活中可见的电子产品:智能手环,微型四轴飞行器,平衡车,扫地机、移动POS机,智能电饭锅,3D打印机,机器人等。

主要内容补充

1.STM32芯片架构
2.STM32总线矩阵
3.STM32时钟系统
4.STM32学习方法
在这里插入图片描述
1.STM32芯片架构
我们这里讲的STM32F4系列架构主要针对的STM32F407系列芯片。
在这里插入图片描述
2.STM32总线矩阵
在这里插入图片描述
3.STM32时钟系统
由于STM32时钟系统比较复杂,后面专门设一章节讲解。

4.STM32学习方法
(1)基本外设:
-GPIO输入输出,外部中断,定时器,串口。
-理解了这四个外设,基本就入门了一款MCU。
(2)基本外设接口:
-SPI,IIC,WDG,FSMC,ADC/DAC,SDIO等
-这些外设接口功能原理对每个芯片几乎都是一样。
对芯片而言就是多和少而已。
(3)高级功能:
-UCOS,FATFS,EMWIN等。以及一些应用。
(4)C语言能力要加强
C语言是嵌入式开发的基础中的基础。
如果C语言不过关,大大限制嵌入式学习进度,以及嵌入式学习深度。嵌入式高手都是C高手。选择谭浩强的《C程序设计 第四版》入门及巩固C语言基础是不错的,但是仅靠这本书远远不够,可以参考《C与指针》、《C指针编程之道》等。

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

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

相关文章

HarmonyOS NEXT 应用开发实战(三、ArkUI页面底部导航TabBar的实现)

在开发HarmonyOS NEXT应用时,TabBar是用户界面设计中不可或缺的一部分。本文将通过代码示例,带领大家一同实现一个常用的TabBar,涵盖三个主要的内容页:首页、知乎日报和我的页面。以模仿知乎日报的项目为背景驱动,设定…

【Spring AI】Java实现类似langchain的第三方函数调用_原理与详细示例

Spring AI 介绍 :简化Java AI开发的统一接口解决方案 在过去,使用Java开发AI应用时面临的主要困境是没有统一且标准的封装库,导致开发者需要针对不同的AI服务提供商分别学习和对接各自的API,这增加了开发难度与迁移成本。而Sprin…

Android常用界面控件——ProgressBar

ProgressBar 目录 ProgressBar 在XML中定义ProgressBar ProgressBar风格样式 ProgressBar常用XML属性 在Java代码中控制ProgressBar 实例 什么是ProgressBar? ProgressBar是Android中的一个视图控件,主要用于表示一个任务的进度情况,…

针对Ubuntu20.04 中的 Docker 配置可用镜像源(包含国内可用镜像源)

文章目录 写在前面一、Docker 官方源二、更换Docker 国内可用镜像源 (推荐使用)参考链接 写在前面 自己的测试环境: Ubuntu20.04,docker-27.3.1 一、Docker 官方源 打开 /etc/docker/daemon.json文件: sudo gedit …

Python快速编程小案例--逢7拍手小游戏

提示:(个人学习),案例来自工业和信息化“十三五”人才培养规划教材,《Python快速编程入门》第2版,黑马程序员◎编著 逢7拍手游戏的规则是:从1开始顺序数数,数到有7或者包含7的倍数的…

查缺补漏----时间复杂度

1.如果每一次循环变量都是,那么直接将每一层变量的最大遍历次数相乘 第一个代码段:O(n^3) 第二个代码段:O(n*i*j),由于 i 的范围0~n-1,所以取n,j 同理,所以最…

Java | Leetcode Java题解之第473题火柴拼正方形

题目&#xff1a; 题解&#xff1a; class Solution {public boolean makesquare(int[] matchsticks) {int totalLen Arrays.stream(matchsticks).sum();if (totalLen % 4 ! 0) {return false;}int len totalLen / 4, n matchsticks.length;int[] dp new int[1 << n…

【hot100-java】从前序与中序遍历序列构造二叉树

二叉树篇 首先创建一个映射来存储中序遍历中值与索引的关系&#xff0c;然后通过递归调用函数dfs来构建二叉树。函数dfs接受前序遍历和中序遍历的左右边界索引以及前序遍历和中序遍历的列表和映射作为参数&#xff0c;在每次递归中&#xff0c;先判断边界条件&#xff0c;如果左…

部署 Open WebUI

1. 安装docker 2.启动Hyper-v 3.下载 安装 WSL 4. 打开 DeskDocker 5. 打开 运行 ollama 参考 Windows 部署 ollama-CSDN博客 6. 部署 运行 open webui docker docker run -d -p 3000:8080 --add-hosthost.docker.internal:host-gateway -v open-webui:/app/backend/data -…

Flutter Transform 学习

Transform可以在其子组件绘制时对其应用一些矩阵变换来实现一些特效,允许在渲染子部件之前对它们进行变换。 一、Transform构造函数与属性 class Transform extends SingleChildRenderObjectWidget {/// Creates a widget that transforms its child.const Transform({super.k…

C语言 | 第十六章 | 共用体 家庭收支软件-1

P 151 结构体定义三种形式 2023/3/15 一、创建结构体和结构体变量 方式1-先定义结构体&#xff0c;然后再创建结构体变量。 struct Stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在学习小组 float score; //成绩 }; struct Stu stu1, stu2; //…

InternVL2-40B 荣登开源模型榜首丨SuperCLUE中文多模态大模型基准10月榜单

在今年 7 月 4 日举行的 2024 WAIC 科学前沿主论坛上&#xff0c;书生万象多模态大模型&#xff08;InternVL 2.0&#xff09;正式发布&#xff0c;并陆续开源了 1B、2B、4B、8B、26B、40B 以及 76B 共 7 个参数版本的模型。书生万象支持图像、视频、文字、语音、三维点云等模态…

Qt媒体播放器实现

本文介绍Qt媒体播放器实现。 Qt应用程序有时会涉及到视频文件的播放&#xff0c;Qt提供了QVideoWidget类实现视频和音频的播放&#xff0c;本文基于QVideoWidget类实现一个简单的媒体播放器。 1.自定义类&#xff08;基于QVideoWidget类&#xff09; 由于Qt并未提供专门的控…

手写简易shell

我们如果要写一个简易的shell我们要&#xff0c;其实我们搞一个程序替换就行了。 我们分为五部完成 在其中我们最难搞的就是环境变量的更新&#xff0c;因为当我们搞一个子程序出来时&#xff0c;我们子进程的环境变量表是从父进程继承下来的&#xff0c;当我们用cd命令时只会更…

C# 屏幕录制工具

屏幕录制工具 开发语音&#xff1a;C# vb.net 下载地址&#xff1a;https://download.csdn.net/download/polloo2012/89879996 功能&#xff1a;屏幕录制&#xff0c;声卡采集&#xff0c;麦克风采集。 屏幕录制&#xff1a;录制屏幕所有操作&#xff0c;并转换视频格式&…

电脑无线网wifi和有线网同时使用(内网+外网同时使用)

一、要求 我这里以无线网wifi为外网&#xff0c;有线网卡为内网为例&#xff1a; 一、基本信息 无线wifi&#xff08;外网&#xff09;&#xff1a;ip是192.168.179.235&#xff0c;网关是192.168.179.95有线网&#xff08;内网&#xff09;&#xff1a;ip是192.168.10.25&…

《鸟哥的Linux私房菜基础篇》---1 Linux的介绍与如何开启Linux之路

目录 一、Linux的简单介绍 1、Linux的简介 2、Linux的起源与发展 3、主要特点 4、应用场景 二、开启Linux之路 1、学习Linux的相关知识 2、正规表示法、管线命令、数据流重导向 前言 整体大纲预览 一、Linux的简单介绍 1、Linux的简介 &#xff08;1&#xff09;Linu…

【Trulens框架】用TruLens 自动化 RAG 应用项目评估测试

前言&#xff1a; 什么是Trulens TruLens是面向神经网络应用的质量评估工具&#xff0c;它可以帮助你使用反馈函数来客观地评估你的基于LLM&#xff08;语言模型&#xff09;的应用的质量和效果。反馈函数可以帮助你以编程的方式评估输入、输出和中间结果的质量&#xff0c;从而…

K8S---01初识Kubernetes

一.简介 摘取官网: 概述 | KubernetesKubernetes 是一个可移植、可扩展的开源平台&#xff0c;用于管理容器化的工作负载和服务&#xff0c;方便进行声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统&#xff0c;其服务、支持和工具的使用范围广泛。https://k…

【C++堆(优先队列)】1882. 使用服务器处理任务|1979

本文涉及知识点 C堆(优先队列) LeetCode1882. 使用服务器处理任务 给你两个 下标从 0 开始 的整数数组 servers 和 tasks &#xff0c;长度分别为 n​​​​​​ 和 m​​​​​​ 。servers[i] 是第 i​​​​​​​​​​ 台服务器的 权重 &#xff0c;而 tasks[j] 是处理…