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\r\n",chipUniqueID32[0],chipUniqueID32[2],chipUniqueID32[2]);

}

 注意:在讀取唯一身份識別ID的時候要注意存儲方式是小端模式。

 

 

 

讀取Flash大小的方式為:

void GetFlashSize(void)
{
    u16 Stm32_Flash_Size;
    
    Stm32_Flash_Size = *(u16*)(0x1FFFF7E0);//閃存容量寄存器
    
    printf("芯片閃存容量大小為%dK\r\n",Stm32_Flash_Size);

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM