STM32学习——基础知识

1. 芯片运作原理

ICode用于读取Flash中的指令(就是编写的代码)ICode一条条读取代码然后执行
DCode:读取数据数据分为常量与变量,常量存在Flash中,变量(全局变量与局部变量)存在SRAM中
System总线:用于访问寄存器,实现寄存器编程。
注:Flash为ROM,SRAM为RAM ;
FFFF=64kB
07 FFFF=512K=kB

2. 寄存器映射

(1)寻址

内核通过APB12,AHB三条总线访问寄存器,首先选择总线基地址(APB1/APB2/AHB)其次选择外设地址,最后根据寄存器名称在寄存器地址列表中选择偏移量找到正确的寄存器。这一过程中需要多次查阅参考手册中寄存器描述说明。
“三个概念”:
(1)总线基地址
(2)外设基地址:Register boundary addresses
(3)寄存器地址列表

注:GPIO通用寄存器:
每个通用I/O端口都有两个32位配置寄存器(GPIOx_CRL、GPIOx_CRH)、
两个32位数据寄存器(GPIOx_IDR、GPIOx_ODR)、
一个32位置位/复位寄存器(GPIOx_BSRR)、
一个16位复位寄存器(GPIOx_BRR)
一个32位锁定寄存器(GPIOx_LCKR)。
注:以GPIOA为例:

#define GPIOA_BASE            (APB2PERIPH_BASE + 0x0800)
#define GPIOB_BASE            (APB2PERIPH_BASE + 0x0C00)
#define GPIOC_BASE            (APB2PERIPH_BASE + 0x1000)
#define GPIOD_BASE            (APB2PERIPH_BASE + 0x1400)
#define GPIOE_BASE            (APB2PERIPH_BASE + 0x1800)
#define GPIOF_BASE            (APB2PERIPH_BASE + 0x1C00)
#define GPIOG_BASE            (APB2PERIPH_BASE + 0x2000)
#define APB1PERIPH_BASE       PERIPH_BASE
#define APB2PERIPH_BASE       (PERIPH_BASE + 0x10000)
#define AHBPERIPH_BASE        (PERIPH_BASE + 0x20000)

结构体封装(封装寄存器列表)

typedef struct
{__IO uint32_t CRL;__IO uint32_t CRH;__IO uint32_t IDR;__IO uint32_t ODR;__IO uint32_t BSRR;__IO uint32_t BRR;__IO uint32_t LCKR;
} GPIO_TypeDef;

定义上述结构体,以GPIOA为例,假设上述结构体首地址(即CRL地址)为0x4001 0C00,由于结构体内变量均为uint32_t 类型,因此偏移量均为四个字节32位。即结构体地址与寄存器地址偏移量一一对应。

注:
ROM容量为16~32K就是LD
64K~128K的就是MD
256~512K的就是HD

STM32学习——基础知识相关推荐

  1. Matrix学习——基础知识

    以前在线性代数中学习了矩阵,对矩阵的基本运算有一些了解,前段时间在使用GDI+的时候再次学习如何使用矩阵来变化图像,看了之后在这里总结说明. 首先大家看看下面这个3 x 3的矩阵,这个矩阵被分割成4部 ...

  2. 深度学习基础知识(八):神经网络基础之导数

    这个专栏主要是想和大家分享一下深度学习的基础知识,主要是以吴恩达老师深度学习课程内容作为基础,并补充了很多其他内容希望让整体内容更加容易理解和系统化.如果想要了解具体专栏里面有什么内容的话,可以看一看 ...

  3. 【STM32】基础知识 第十课 CubeMx

    [STM32]基础知识 第十课 CubeMx STM32 CubeMX 简介 安装 JAVA CubeMX 安装 新建 STM32 CubeMX 工程步骤 新建工程 时钟模块配置 GPIO 配置 生成 ...

  4. 1120_野火RT-Thread教程学习4_RTT学习基础知识梳理

    野火RT-Thread教程学习笔记4_RTT学习基础知识梳理 Grey 全部学习汇总:GitHub - GreyZhang/g_RT-Thread: learning and hacking RT-T ...

  5. 【STM32】基础知识 第一课 单片机简介

    [STM32]基础知识 第一课 单片机简介 单片机是什么 单片机和电脑区别 单片机的特点 单片机有什么用 单片机发展历程 单片机发展趋势 CISC vs RISC CISC 和 RISC 举例 冯诺依 ...

  6. 深度强化学习基础知识 思维导图

    学习了王树森老师的深度强化学习入门课件,将各个算法整理在如下思维导图中. 深度强化学习基础知识 思维导图

  7. 基于人脸的常见表情识别(1)——深度学习基础知识

    基于人脸的常见表情识别(1)--深度学习基础知识 神经网络 1. 感知机 2. 多层感知机与反向传播 卷积神经网络 1. 全连接神经网络的2大缺陷 2. 卷积神经网络的崛起 卷积神经网络的基本网络层 ...

  8. scikit-learn学习基础知识二

    scikit-learn学习基础知识二 文章目录 scikit-learn学习基础知识二 一.介绍 二.代码实现 三.运行结果 四.总结 一.介绍 本文我们学习scikit-learn中的KNeigh ...

  9. STM32 USB基础知识

    文章目录 拓展阅读 前言 一.USB基础知识 二.USB2.0 1.usb2.0模式说明 2.USB2.0全速USB和高速USB的识别过程分析 3.usb协议关系 4.USB2.0与USB1.x 硬件 ...

最新文章

  1. Hadoop大数据——mapreduce中的Combiner/序列化/排序初步
  2. 高级同步器:可重用的同步屏障Phaser
  3. LIBRARY_PATH和LD_LIBRARY_PATH
  4. python集合set底层原理_Python进阶11_字典dict和集合set的秘密
  5. 转:KVC与KVO机制
  6. 斯皮尔曼等级相关(Spearman’s correlation coefficient for ranked data)
  7. 图的邻接矩阵表示及其基本操作
  8. LENET-5卷积神经网络的深度学习技术
  9. Adobe全家桶2022版官方正版来啦~~
  10. 删除linux下的.文件,Linux删除文件命令汇总
  11. 13-02-uniapp供热服务接口配置
  12. 微信公众号和微信小程序进程名获取及配置
  13. 8月1日任务 11.14-11.17
  14. ESP8266-01 MQTT固件烧录并连接阿里云服务器
  15. python zip(*zipped)的疑问
  16. L0,L1,L2正则化浅析
  17. 前端涨薪必读,node.js入门保姆级教程
  18. 广州某IT公司HR招开发:“不加班的都是垃圾 ”
  19. Inception网络
  20. 设计上不花钱的海澜之家,如何打开男人的衣柜?

热门文章

  1. STM32MP153 Ubuntu系统移植到ST的STM32MP157-DK2记录
  2. 你将不会为写保证书,委托书而烦恼-----------格式示例
  3. mtcnn人脸检测python_pytorch实现mtcnn人脸检测算法
  4. 如何借力chatGPT打造朋友圈文案(1)
  5. python模拟浏览器上传文件_Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)...
  6. 刻录这张光盘时出错.此盘可能不再可用
  7. 一、Python3运维自动化运维——psutil 模块详解(超级详细)
  8. 两台计算机ping上传文件,两台电脑如何传文件,教你一根网线两台电脑超高速传输文件...
  9. Oracle批量数据处理
  10. 2022-05-20每日一题