STM32唯一的ID

请看如下程序:

/*------------------------------------------------------------------------------------------------------*/
    /* to get the chipid and put it in ChipUniqueID[3] */
    Get_ChipID();
  
    /* printf the chipid */
    printf("\r\n芯片的唯一ID为: %X-%X-%X\r\n",
            ChipUniqueID[0],ChipUniqueID[1],ChipUniqueID[2]);
    
    /* printf the flash memory amount */
    printf("\r\n芯片flash的容量为: %dK \r\n", *(__IO u16 *)(0X1FFFF7E0));
/*------------------------------------------------------------------------------------------------------*/    
    

Get_ChipID()函数

void Get_ChipID(void)
{
    ChipUniqueID[0] = *(__IO u32 *)(0X1FFFF7F0); // 高地址
    ChipUniqueID[1] = *(__IO u32 *)(0X1FFFF7EC); // 
    ChipUniqueID[2] = *(__IO u32 *)(0X1FFFF7E8); // 低地址
}

(一)产品唯一身份标识寄存器(96位)

96位的产品唯一身份标识所提供的参考号码对任意一个STM32微控制器,在任何情况下都是唯
一的。用户在何种情况下,都不能修改这个身份标识。
这个96位的产品唯一身份标识,按照用户不同的用法,可以以字节(8位)为单位读取,也可以以
半字(16位)或者全字(32位)读取。

基地址:0x1FFF F7E8
地址偏移:0x00

只读,其值在出厂时编写

U_ID[15:0]:唯一身份标志15:0位

 

器件电子签名
地址偏移:0x02
只读,其值在出厂时编写

U_ID[31:16]:唯一身份标志31:16位
这个域的数值也预留作为未来的其它功能。

 

地址偏移:0x04
只读,其值在出厂时编写

U_ID[63:32]:唯一身份标志63:32位

地址偏移:0x08
只读,其值在出厂时编写

U_ID[95:64]:唯一身份标志95:64位

 

(二)闪存容量寄存器

基地址:0x1FFF F7E0
只读,它的内容在出厂时编写

F_SIZE:闪存存储器容量  位15:0
以K字节为单位指示产品中闪存存储器容量。
例:0x0080 = 128 K字节

 

 

(3.5版本的库,32参考手册第28章732页,旧版本的应该在642页左右) 

转载于:https://www.cnblogs.com/Ph-one/p/4091525.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值