zoukankan      html  css  js  c++  java
  • 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);
    
    }
  • 相关阅读:
    sklearn学习笔记
    概率生成模型GAN
    机器学习的种类
    如何为React提交pull request
    webpack define Plugin
    Saas应用方法论12条
    React Ref 和 React forwardRef
    几个数组去重的方法
    级数笔记
    信号量及P/V操作
  • 原文地址:https://www.cnblogs.com/jiwangbujiu/p/6667140.html
Copyright © 2011-2022 走看看