什么是STM32?

·新的基于ARM内核的32位MCU系列

-内核为ARM公司为要求高性能、低成本、低功耗的嵌入式应用专门设计的Contex-M内核

-标准的ARM架构

·Cortex-M7采用ARMv7-ME(2007年后)架构

ARMv7架构定义了三大分工明确的系列:

1、“A”系列:面向尖端的基于虚拟内存的操作系统和用户应用。“A8”,“A9”系列都 是较为高端的芯片,可以运行安卓、liuix操作系统。

2、“R”系列:针对时时操作系统。

3、“M”系列:对微控制器。

Cortex实际上与ARM一样

M3-72MHz的运行速度

M4-168MHz的运行速度DSP指令功能显著增强

STM32F103ZET6名字的命名时有规则的

STM32型号的说明:以STM32F103ZET6这个型号的芯片为例,该型号的组成为7个部分,其命名规则如下:

(1)STM32:STM32代表ARM Cortex-M3内核的32位微控制器。

(2)F:F代表芯片子系列。

(3)103:103代表增强型系列。

(4)Z:R这一项代表引脚数,其中T代表36脚,C代表48脚,R代表64脚,V代表100脚,Z代表144脚。

(5)E:B这一项代表内嵌Flash容量,其中6代表32K字节Flash,8代表64K字节Flash,B代表128K字节Flash,C代表256K字节Flash,D代表384K字节Flash,E代表512K字节Flash。

(6)T:T这一项代表封装,其中H代表BGA封装,T代表LQFP封装,U代表VFQFPN封装。

(7)6:6这一项代表工作温度范围,其中6代表-40——85℃,7代表-40——105℃。

·固件库是什么?

固件库就是函数的集合(API),把寄存器操作封装起来。为了方便对寄存器的操作而进行的封装。在操作固件库的时候当然也可以操作寄存器。

·HAL库是什么?

大家都知道,嵌入式编程有两种操作方式,一种是寄存器操作编程,一种是库函数编程,库函数操作是把常用功能以函数形式封装起来,让人们更容易读懂,具有较高的可读性,方便移植,库函数目前有标准库、HAl库较为常用,在M3一般常用标准库,在之后的M4可用标准库与HAL库,M4之后的M7一般只有HAL库,可以说HAL库是STM公司后来推出来的推荐大家使用的库,HAL库的最大优点在于他可以很方便的在各个STM平台移植。

·库函数操作与寄存器操作有什么区别?

其实库函数操作的实质还是寄存器操作,最底层仍然是寄存器操作,只是我们对其进行了封装,封装成了一些具有独特功能的函数,之后我们就直接通过函数操作就可以了,这样做的目的是为了增强程序的可读性,其本质仍然是对寄存器的操作。而寄存器操作需要我们十分了解芯片的内部寄存器,以及寄存器每一位的功能,这样才能进行编程,而寄存器一般有很多,而且每个寄存器一般都有很多位,全部记住是不现实的,因此,我是更加推荐使用库函数的操作方法,能让读者很容易的知道编程的目的,即想要实现的功能。

·库函数操作与寄存器操作可以同时使用吗?

当然这是可以的,只要理解了其本质就很容易明白了,库函数操作的本质即对寄存器的操作,只要操作不是相互冲突的,当然都可以。另外一个不推荐使用寄存器操作的原因是不好检查错误,当程序出现错误的时候,你很难检查出是哪一步操作出现的错误。

转载于:https://www.cnblogs.com/vcan123/p/10409611.html

关于嵌入式学习随笔-1《STM32简介》相关推荐

  1. stm32学习笔记-1 STM32简介

    1 STM32简介 [toc] 注:笔记主要参考B站 江科大自化协 教学视频"STM32入门教程-2023持续更新中". 注:工程及代码文件放在了本人的Github仓库. 1.1 ...

  2. 关于嵌入式学习随笔-6《NVIC中断优先级管理》

    1.中断技术概述 在单片机应用系统中,中断技术主要用于时时检测与控制,也就是要求单片机能感及时地响应中断请求源提出的服务请求,进行快速响应并及时处理,这些工作是由单片机片内的中断系统来实现的.当中断请 ...

  3. 嵌入式学习总结之STM32(一)仿真软件proteus的使用

    首先是打开stm32cubemx 打开后选择生成项目工程 然后这里我选择的是STM32F103C8 接着选择Serial Wire,以及两个IO口设置成输出 接着选择时钟,这里我都选择外部时钟下一步选 ...

  4. 嵌入式学习笔记——STM32的USART通信概述

    文章目录 前言 常用通信协议分类及其特征介绍 通信协议 通信协议分类 1.同步异步通信 2.全双工/半双工/单工 3.现场总线/板级总线 4. 串行/并行通信 5. 有线通信.无线通信 STM32通信 ...

  5. 嵌入式学习笔记——ADC模数转换器

    ADC模数转换器 前言 ADC介绍 ADC概述 ADC的数量 ADC的特性 ADC框图 芯片外部框图 芯片内部框图 转换部分框图 状态输出部分 条件触发框图 寄存器介绍 编程思路 模式选择 规则通道的 ...

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

    基于Cortex-M的单片机介绍 前言 1生产厂商及其产品线 1.1ARM单片机的产品线 1.2命名规则 作业1 2习单片机的资料准备 2.1STM32开发所需手册 2.1.1芯片的数据手册 芯片基本 ...

  7. 嵌入式学习笔记——寄存器实现控制LED小灯

    文章目录 前言 GPIO通用输出模式 初始化LED小灯的GPIO 原理图 初始化代码 初始化的效果 功能函数封装 直接分开宏定义两个 使用条件运算符 封装函数实现简单的功能 KEIL MDK一些技巧 ...

  8. STM32 嵌入式学习入门(4)——PWM原理

    STM32 嵌入式学习入门(4)--PWM原理 本文先对STM32F103的通用定时器作一简单介绍,然后详细介绍通用定时器的一个应用--输出PWM波形的原理.整个文章以介绍"怎么用" ...

  9. 嵌入式学习之STM32实现OLED

    嵌入式学习之STM32实现OLED 一.实验要求 二.SPI介绍 三.OLED介绍 四.实验过程 1.代码编写: 实验结果演示: 一.实验要求 理解OLED屏显和汉字点阵编码原理,使用STM32F10 ...

  10. 嵌入式学习⑤——STM32嵌入式应用系统设计

    目录 前言 一.基于跨平台多类型代码编辑器VScode 1.VScode的安装 2.Ubuntu中用vscode编译调试C\C++ 二.Proteus仿真--STM32流水灯 1.创建工程 2.配置实 ...

最新文章

  1. 【linux】Matchbox(二):基本概念
  2. 使用Prometheus和Grafana实现SLO
  3. 学好python需要多久-python入门要学多久
  4. PHP免费的空间www.hostinger.co.uk
  5. 网页制作中的背景处理
  6. 一个老外如何丑化中国程序员
  7. python中的数组是什么_Python中的数组
  8. kubernetes 1.14安装部署metrics-server插件
  9. idea 搜索不到gsonformat_IDEA开发工具插件之GsonFormat
  10. 《OpenGL编程指南》 笔记一 OpenGL概述
  11. PLSQL注册码(永久可用)
  12. 23岁女工为600元全勤奖带伤加班3天 一周后身亡
  13. fastreport 打印有 demo version字样_用户增长留存的数字化管理实操, 11大行业demo重构你的运营方法论...
  14. 问题解决:opencv imwrite图片保存为黑色
  15. 谷歌drive收费_Google Drive的系统设计分析
  16. 解决Ubuntu22.04wps打不开的问题
  17. 【多目标优化】2. 非支配排序遗传算法 —(NSGA、NSGA-II)
  18. 安兔兔电脑ssd测试软件,威钰战国NVMe SSD测评,安兔兔SSD测试软件到底靠不靠谱...
  19. Cisco三层交换机配置命令及解释
  20. 高德LBS开放平台携手SAE 抱团背后开发者受益

热门文章

  1. c语言编程工程师基础,c语言工程师的工作是什么
  2. python中和操作目录相关的函数包括_python常用的文件目录操作函数
  3. android studio布局显示图片,Android Studio 使用ImageView时不显示布局
  4. matlab红色爱心,心形图的matlab实现
  5. python整数浮点数复数类型判断函数_Python数值类型(整形、浮点型和复数)及其用法讲解...
  6. js 自动分配金额_深入解析Node.js事件循环工作机制
  7. vue无法监听对象的属性的增加和删除
  8. android 接口的调用方法参数类型转换,Android NDK开发之JNI基础
  9. python向上取整_python向上取整-取整,向上
  10. 7.监控应用和数据可视化 7.1通用健康状态指引器