STM32相关手册使用记录

一、概述

当选用一款MCU后,进行开发前肯定要先拿到对应的手册。做固件开发,和硬件芯片选型的关注点是不一样的。除了基本的电气特性、片上资源外设情况,还要关注具体寄存器、标准库/HAL库的接口等。
本文主要是记录下STM32开发过程中,相关手册的使用。
随着手册查阅情况,陆续更新到各小节的笔记。

二、手册获取

2.1 芯片手册

  1. 这个肯定直接去官网下载了。直接搜索ST官网进入:
    在这里插入图片描述
    进入官网以后,直接在搜索框输入自己的芯片型号。英文不是很好,可以在右上角切换为中文。随着输入,下方会列出相关型号,以STM32F103RCT6为例:
    在这里插入图片描述
    搜索结果如下图,选择文件一栏,会给出提供的文档列表。按需下载即可:
    在这里插入图片描述

2.2 库手册和官方DEMO

  1. STM32标准库官网下载方法
  2. STM32 HAL库手册获取和查阅方法以及查看官方例程

三、手册内容

3.1 数据手册

在这里插入图片描述
这个手册最为简洁明了。主要是芯片的电气物理特性,也可快速查看外设情况、空间资源、管脚定义等。

3.1.1 查看外设挂载哪条总线

使用STM32CubeMX生成工程时,并没有显示出CAN挂载在APB1还是APB2上:在这里插入图片描述
打开芯片手册《stm32f103rc.pdf》,查看时钟树上也是没有标出的:
在这里插入图片描述
翻来翻去,结果就在时钟树的上一页。有点一叶障目不见泰山的意思:
在这里插入图片描述

3.2 参考手册

参考手册是RMXXXX开头:
在这里插入图片描述
下载后查看,可以看到RM即Reference Manual:
在这里插入图片描述
这个详细说明了芯片外设的特性和使用方法,包括寄存器定义说明。以ADC为例,目录如下:
在这里插入图片描述
通常有中文版本。

3.2.1 查看芯片flash页大小,最小存储单位

在编程过程中,对flash进行操作是必不可少的,比如参数存储、boot升级等。这时就需要确定flash的页大小以便进行擦除等操作。
在这里插入图片描述
在这里插入图片描述
可以看到同为STM32F1系列,不同容量,页的大小是不一样的。那么在分配参数空间时,就需要具体考虑。
也可以查看闪存编程手册(本文3.3编程手册中提供),里面有对flash更详细的描述。

3.2.2 STM32G0写flash的八字节对齐

//2022.2.9
在做boot程序过程中发现,不管是rtthread的drv_flash_g0.c和drv_flash_f1.c,还是裸机下的g0和f1,写flash存在差异:
在这里插入图片描述
在这里插入图片描述
左边是f1,右边是g0。从代码上看,g0要求地址8字节对齐,且以doubleword写入。而读flash是一致的:
在这里插入图片描述
翻看手册查找下依据。查看STM32G0编程手册:
在这里插入图片描述
在STM32F1的参考手册中可以看到:
在这里插入图片描述
参考链接:STM32L4系列内部FLASH双字编程示例

3.3.3 STM32唯一序列号UID

STM32唯一序列号UID–HAL_GetUIDw0详解

3.3 编程手册

这里编程手册提供了两个:
在这里插入图片描述
在这里插入图片描述
闪存编程手册,对flash有更详细的描述。
在这里插入图片描述

3.4 勘误手册

在这里插入图片描述
在这里插入图片描述

STm32一次擦除多少页
资源大小
一次写入几个字节