zoukankan      html  css  js  c++  java
  • STM32唯一的ID

    请看如下程序:

    /*------------------------------------------------------------------------------------------------------*/
        /* to get the chipid and put it in ChipUniqueID[3] */
        Get_ChipID();
      
        /* printf the chipid */
        printf("
    芯片的唯一ID为: %X-%X-%X
    ",
                ChipUniqueID[0],ChipUniqueID[1],ChipUniqueID[2]);
        
        /* printf the flash memory amount */
        printf("
    芯片flash的容量为: %dK 
    ", *(__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页左右) 

  • 相关阅读:
    程序人生,编程思想
    CentOS Linux Jenkins安装、部署、更新
    Git常用命令
    U盘安装Mac OS X要点
    Shell执行*.sql
    WebStorm远程调试Node.js
    svn常用命令
    敏捷开发相关编辑思想(SOA、DDD、REST、CQRS)
    VisualVM远程监控Java
    centos搭建git服务
  • 原文地址:https://www.cnblogs.com/Ph-one/p/4091525.html
Copyright © 2011-2022 走看看