一、各系列芯片ID地址
补充:G系列为:? 0x1FFF7590
二、读取ID
1、利用软件?
STM32 CubeProgrammer 去官方网站下载
首先点击右边的“connect”
接着在软件Address处输入ID号的首地址,回车后,软件会自动显示ID号。每种系列的芯片ID首地址都不同,图一有整理。
2、利用程序代码,串口输出
举例STM32F0 ID 设置
新建ChipID.C
uint32_t CpuID[3];
void Get_ChipID(void)
{
CpuID[0]=*(__IO uint32_t*)(0x1FFFF7AC);
CpuID[1]=*(__IO uint32_t*)(0x1FFFF7B0);
CpuID[2]=*(__IO uint32_t*)(0x1FFFF7B4);
}
ChipID.h
#ifndef __ChipID_H__
#define __ChipID_H__
/* 包含头文件 ----------------------------------------------------------------*/
#include "stm32f0xx_hal.h"
/* 类型定义 ------------------------------------------------------------------*/
/* 宏定义 --------------------------------------------------------------------*/
/* 扩展变量 ------------------------------------------------------------------*/
extern uint32_t CpuID[3];
/* 函数声明 ------------------------------------------------------------------*/
void Get_ChipID(void);
#endif /* __ChipID_H__ */
在main.c内
Get_ChipID();
/* 芯片的唯一ID */
printf("\r\n芯片的唯一ID为: %08X-%08X-%08X\r\n",CpuID[0],CpuID[1],CpuID[2]);
/* 芯片的容量 */
printf("\r\n芯片flash的容量为: %dK \r\n", *(__IO uint16_t *)(0X1FFFF7CC));
串口打印结果:
|