• STM32唯一身份识别ID(器件电子签名)的读取以及芯片Flash大小读取


    每个STM32有一个独立的ID,这个ID可以用来:

    产品唯一的身份标识的作用:
          用来作为序列号(例如USB字符序列号或者其他的终端应用)
          用来作为密码,在编写闪存时,将此唯一标识与软件加解密算法结合使用,提高代码在闪存存储器内的安全性;
          用来激活带安全机制的自举过程;

    以STM32F103CBT6来说,使用四个寄存器来存储这个ID,读取方式为:

    void GetChipUniqueID(void)
    {
        
        u32 chipUniqueID32[3];
    
        chipUniqueID32[0] = *(__IO u32*)(0X1FFFF7F2);//ID地址的高32位寄存器地址
        chipUniqueID32[1] = *(__IO u32*)(0X1FFFF7EE);//ID地址的中32位寄存器地址
        chipUniqueID32[2] = *(__IO u32*)(0X1FFFF7E8);//ID地址的低32位寄存器地址
        
        printf("此芯片的唯一ID为:%d-%d-%d
    ",chipUniqueID32[0],chipUniqueID32[2],chipUniqueID32[2]);
    
    }

     注意:在读取唯一身份识别ID的时候要注意存储方式是小端模式。

    读取Flash大小的方式为:

    void GetFlashSize(void)
    {
        u16 Stm32_Flash_Size;
        
        Stm32_Flash_Size = *(u16*)(0x1FFFF7E0);//闪存容量寄存器
        
        printf("芯片闪存容量大小为%dK
    ",Stm32_Flash_Size);
    
    }
  • 相关阅读:
    html自定义加载动画
    数据结构与算法:贪心算法简介
    WEB 前端常用字体和色值你知道多少?
    为什么浮点精度运算会有问题
    Java 字符串格式示例
    使用 Java 和 Maven (JBake) 生成静态网站
    硅谷钢铁侠
    Flink中的5种窗口使用场景
    prometheus-operator监控k8s资源
    fluentd收集k8s集群pod日志
  • 原文地址:https://www.cnblogs.com/jiwangbujiu/p/6667140.html
Copyright © 2020-2023  润新知