当前位置: 首页 > news >正文

嵌入式学习笔记——基于Cortex-M的单片机介绍

基于Cortex-M的单片机介绍

  • 前言
  • 生产厂商及其产品线
    • ARM单片机的产品线
    • 命名规则
      • 留个作业
  • 习单片机的资料准备
    • STM32开发所需手册
      • 1.芯片的数据手册
      • 作业2

前言

本文继续接着上一篇中关于Cortex-M的介绍,来记录一些关于ARM系单片机的知识。

生产厂商及其产品线

芯片厂商在拿到ARM的授权后,会在之前的内核基础上添加自己的片内外设形成自家的单片机产品,ST(意法半导体)、GD(国产兆易创新)、NXP(恩智浦)、CW(武汉鑫源半导体)等等都是此类单片机生产厂商。还有厂家为了进一步简化电路结构还会在单片机内部添加部分运算放大器、栅极驱动以及电源管理等电路,MM(灵动微电子)Infineon(英飞凌)等等厂商都有类似的产品,例如MM32SPIN27。想要详细了解的同学可以去他们的官网查询芯片手册和产品介绍。这里着重介绍ST与GD的32为单片机。

ARM单片机的产品线

在上一篇中我们知道了ARM的Cortex-M架构又细分了八个种类,在工作中最常用的是M3、M4系列,下面我们就来看看ST与GD两家厂商关于这两类内核单片机的具体产品。
首先是ST的,查询单片机以及相关资料的最好方式就是找对应公司的官网,官网上能找到绝大部分我们所需要的开发资料。
ST的中文官网链接——https://www.st.com/content/st_com/zh.html
进入官网后按照如下步骤即可进入到ST的32位单片机的产品页面。
在这里插入图片描述
在该界面我们可以查看我们想要看的单片机的参数
在这里插入图片描述
当然也可以直接在搜索框搜索例如搜索STM32F103C8T6就可以查看到关于这个单片机的数据手册等相关文件。
在这里插入图片描述
以此类推关于GD32的资料获取以及产品预览也可以在其官网进行搜索或者查询,兆易创新官网——https://www.gigadevice.com.cn/
在这里插入图片描述
通过两家的官网信息我们可以发现,两家的F1xx系列都是通用性单片机,主打一个性价比,F4xx是一个相对高端的单片机,而xxxLxx是主打低功耗的单片机、xxHxx是主打高性能可以做图像处理等复杂操作的单片机。
稍稍一对比就不难发现这两家的产品都大同小异,我们拿两家的F103C8T6来做个简单的对比
STM32F103C8T6:
在这里插入图片描述

GD32F103C8T6:
在这里插入图片描述
大致预览一下它们各自数据手册的内部结构图,可以发现,二者除了CPU主频不一样以外,其他几乎一致,截图不太清晰,为了方便大家对比,上面贴了二者数据手册的地址,可以下载下来用PDF阅读器查看。
浏览了两家产品线后,不难看出,M3系列的内核主要用在F1系列的通用性单片机上,M4系类的内核就相对高端一些,带有一些更高级的功能。

命名规则

看完这么多产品后,是不是感觉他们的命名有些太长了,搞工科的一般都是求简,怎么简单怎么来,那么为什么关于单片机的命名要弄得如此复杂呢,答案在芯片手册中已经给出了,单片机这么长的命名,每一个字符都有其意义。
在这里插入图片描述
如上图关于STM32F103C8T6的命名规则介绍
首先STM代表生产厂家
STM----意法半导体
GD----兆易创新
F代表General-purpose也就是通用型单片机
103代表该芯片的具体型号
C代表引脚数(48PIN)
8代表64K的Flash(存代码的)决定代码量
T代表封装类型,是LQFP四面表贴型
6代表使用温度为-40度到85度
看明白了命名规则我们就能根据芯片命名去了解到他的一些具体参数了,这对于项目选型有很大的益处。

留个作业

这里还放一个命名,大家可以根据一下提示写出对应的信息,评论区见

STM32F407VET6
在这里插入图片描述

习单片机的资料准备

在弄明白主流芯片的命名规则后,对于一个项目,选型已经搞定了,接下来就是如何操作芯片实现对应功能了,也就是开发了,开发一款单片机的时候,我们需要尽可能的找到他的手册。

STM32开发所需手册

1.芯片的数据手册

这个是重中之重,我们以STM32F103ZET6为例,首先在上面给出的ST官网下载他的数据手册
在这里插入图片描述
打开数据手册,第一页告知了此芯片的内核Arm® 32-bit Cortex®-M3 CPU,主频72MHZ,内存:256 to 512 Kbytes of Flash memory
在这里插入图片描述
然后是其内部结构,一般在数据手册第二章,或者在该芯片的介绍页,下图就是介绍页的内部结构示意图,其中深蓝色的部分是ARM公司提供的内核或者叫他微处理器(FPU、CPU),而浅蓝色的部分则是由ST公司自己设计的片内外设。

在这里插入图片描述
而在其数据手册还有更为详细的结构图,它描述了片内外设与微处理器的连接方式,如下图所示:
在这里插入图片描述
其中红色框代表的是ARM提供的内核,主频为48/72MHZ,
绿色框代表的是AHB总线,主频为48/72MHZ,它连接了APB1、APB2以及内核
橙色框代表的是APB2总线主频为48/72MHZ,它主要是挂接了GPIO模块以及TIM1等等片内外设
蓝色框代表的是APB1总线,主频为24/36MHZ,它连接了TIM2、TIM3、USART2、UART4、SPI2等等
以上这些对于我们编程具有很好地辅助作用,是本文的一个重点,希望大家看了有所收获
既然这么重要,那就再留一个作业,大家有兴趣的可以写在评论区。

作业2

STM32F407VE的结构图
在这里插入图片描述
在这里插入图片描述

相关文章:

嵌入式学习笔记——基于Cortex-M的单片机介绍

基于Cortex-M的单片机介绍前言生产厂商及其产品线ARM单片机的产品线命名规则留个作业习单片机的资料准备STM32开发所需手册1.芯片的数据手册作业2前言 本文继续接着上一篇中关于Cortex-M的介绍,来记录一些关于ARM系单片机的知识。 生产厂商及其产品线 芯片厂商在…...

Python 虚拟环境的使用

PyCharm 创建的虚拟环境与使用 workon 命令创建的虚拟环境在本质上没有区别,它们都是 Python 的虚拟环境。 使用 PyCharm 创建工程时,使用可以使用曾经工程的虚拟环境,或者新建一个虚拟环境来安装 Python 的库,又或者使用 workon…...

招生咨询|浙江大学MPA项目2023年招生问答与通知

问:报考浙江大学MPA的基本流程是怎么样的? 答:第一阶段为网上报名与确认。MPA考生须参加全国管理类联考,网上报名时间一般为10月初开始、10月下旬截止,错过网上报名时间后不能补报。确认时间一般为11月上旬&#xff0c…...

Qt std :: bad_alloc

文章目录摘要问题出现原因第一种 请求内存多余系统可提供内存第二种 地址空间过于分散,无法满足大块连续内存的请求第三种 堆管理数据结构损坏稍微总结下没想到还能更新参考关键字: std、 bad、 alloc、 OOM、 异常退出摘要 今天又是被BUG统治的一天&a…...

《设计模式》装饰者模式

《设计模式》装饰者模式 装饰者模式(Decorator Pattern)是一种结构型设计模式,它允许在不改变现有对象结构的情况下,动态地添加行为或责任到对象上。在装饰者模式中,有一个抽象组件(Component)…...

一文说清Kubernetes的本质

文章目录Kubernetes解决了什么问题?Kubernetes的全局架构Kubernetes的设计思想Kubernetes的核心功能Kubernetes如何启动一个容器化任务?Kubernetes解决了什么问题? 编排?调度?容器云?还是集群管理&#xf…...

信息发布小程序【源码好优多】

简介 信息发布小程序,实现数据与小程序数据同步共享,通过简单的配置就能搭建自己的小程序。,基于微信小程序开发的小程序。 这个框架比较简单就是用微信原生开发技术进行实现的,可以用于信息展示等相关信息。其中目前APP比较多&am…...

创新型中小企业申报流程

据工业和信息化部《优质中小企业梯度培育管理暂行办法》(工信部企业〔2022〕63号)和省《优质中小企业梯度培育管理实施细则》(鲁工信发〔2022〕8号,以下简称《细则》),现就做好2022年山东省创新型中小企业评…...

【UE4 Cesium】加载离线地图

主体思路:先使用水经注软件下载瓦片数据,再使用Python转换瓦片数据格式(TMS),使用Nginx发布网络服务,最后将网络服务加载到UE中。步骤:使用水经注下载瓦片数据,这里下载的是全球七级…...

Spring面试题

目录 Spring、Springmvc、Springboot的区别是什么 SpringMVC工作流程是什么 SpringMVC的九大组件有哪些 Spring的核心是什么 spring的事务传播机制是什么 Spring框架中的单例Bean是线程安全的么 spring框架中使用了哪些设计模式及应用场景 spring事务的隔离级别有哪些?…...

动态网站开发讲课笔记03:HTTP协议

文章目录零、本节学习目标一、HTTP概述(一)HTTP的概念1、HTTP的概念2、HTTP协议的特点(1)C/S模式(2)简单快速(3)灵活(4)无状态(二)HTT…...

2023年天津财经大学珠江学院专升本专业课考试题型

天津财经大学珠江学院关于2023年高职升本科专业课考试时间及题型一、专业课考试 (一)时间安排 2023年天津财经大学珠江学院高职升本科专业课考试定于2023年3月25日14:00-17:00进行,凡报考工商管理、旅游管理、税收学专业的考生&am…...

五方面提高销售流程管理的CRM系统

销售充满了不确定性,面对不同的客户,销售人员需要采用不同的销售策略。也正因为这种不确定性,规范的销售流程对企业尤为重要,它会让销售工作更加有效,快速地实现成交。下面小编给您推荐个不错的CRM销售流程管理系统。 …...

AutoCAD通过handle id选择实体

获得实体的handle id。注意是handle id 不是id,方法有2种:方法(a):通过ArxDeg插件(ObjectARX附带的源码编译得到:\samples\database\ARXDBG)查找:此handle id本来就是16进…...

页面状态码的含义

使用互联网产品或服务的过程中,会遇到网页报错的情况, 比如404、505等,具体这些数字有什么含义呢?本文基本涵盖了99%的报错情况,可供大家查询使用。 状态码的定义 状态码一般是由3位数字和原因短语组成的&#xff08…...

Redis 越来越慢?常见延迟问题定位与分析

Redis作为内存数据库,拥有非常高的性能,单个实例的QPS能够达到10W左右。但我们在使用Redis时,经常时不时会出现访问延迟很大的情况,如果你不知道Redis的内部实现原理,在排查问题时就会一头雾水。很多时候,R…...

【python】python-socketio+firecamp使用踩坑指南

server.py: import eventlet import asyncioeventlet.monkey_patch()import socketio import eventlet.wsgisio socketio.Server(async_modeeventlet, cors_allowed_origins*) # 指明在evenlet模式下sio.event def connect(sid, environ):print(f"connect, sid{sid}, e…...

【OJ比赛日历】快周末了,不来一场比赛吗? #03.04-03.10 #12场

CompHub 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…)比赛。本账号同时会推送最新的比赛消息,欢迎关注!更多比赛信息见 CompHub主页 或 点击文末阅读原文以下信息仅供参考,以比赛官网为准目录2023-03-04&…...

C++11:继承

目录 继承的基本概念 继承方式 基类和派生类对象赋值转换/切片 继承中的作用域 派生类的四个成员函数: 构造函数 拷贝构造函数 赋值重载 析构函数 静态成员 继承与友元 多继承 菱形继承 多继承的指针偏移问题 组合 继承的基本概念 继承出现的契机是某一…...

【蓝桥杯试题】递归实现排列型枚举

💃🏼 本人简介:男 👶🏼 年龄:18 🤞 作者:那就叫我亮亮叭 📕 专栏:蓝桥杯试题 文章目录1. 题目描述2. 代码展示法一:dfs法二:next_perm…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...

数据链路层的主要功能是什么

数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

Vue3中的computer和watch

computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...

图解JavaScript原型:原型链及其分析 | JavaScript图解

​​ 忽略该图的细节&#xff08;如内存地址值没有用二进制&#xff09; 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么&#xff1a;保存在堆中一块区域&#xff0c;同时在栈中有一块区域保存其在堆中的地址&#xff08;也就是我们通常说的该变量指向谁&…...