讀取STM32單片機-ID操作


每一片 STM32 芯片內部擁有一個獨一無二的 Unique Device ID, 96 Bit.

這個 ID 號可以提供給開發者很多優越的功能, 例如:

1. 可以把 ID 做為用戶最終產品的序列號,幫助用戶進行產品的管理。

2. 在某些需要保證安全性的功能代碼運行前,通過校驗此 ID,保證最終產品的某些功能的安全性。

3. 用 ID 配合加解密算法,對芯片內部的代碼進行加加密,以保證用戶產品的安全性和不可復制性。

這項功能相信對那些不希望自己的產品不被別人抄襲來說肯定是個非常不錯的。

下面我就先大家介紹如何讀出這個 ID:

 

這個 ID 號是放在片內 Flash 中的固定的位置,直接讀取出來就行了. 96 位的獨特 ID 位於地址 0×1FFFF7E8 ~ 0×1FFFF7F4 的系統存儲區, 由 ST 公司在工廠中寫入 (用戶不能修改) 用戶可以以字節、半字、或字的方式單獨讀取其間的任一地址.

(一) 配置好串口, 用於調試演示, 這一部份前面的章節我們已經介紹過了.

可以參考貼子:

[原創] MINI-STM32 開發板入門教程 (六) 基於 DMA 的 ADC

當然也可以直接下載我們的例程去讀這部分的程序.

(二) 讀取 Unique Device ID

u32 Dev_Serial0, Dev_Serial1, Dev_Serial2;

Dev_Serial0 = *(vu32*)(0×1FFFF7E8);

Dev_Serial1 = *(vu32*)(0×1FFFF7EC);

Dev_Serial2 = *(vu32*)(0×1FFFF7F0);

(三) 仿真調試

 

(1) 使用Keil uVision4 通過ULINK 2仿真器連接實驗板,使用MINI-STM32 開發板附帶的串口線,連接實驗板上的 UART1 和 PC 機的串口,打開實驗例程目錄下的ADC.Uv2例程,編譯鏈接工程;

(2) 在 PC 機上運行 windows 自帶的超級終端串口通信程序(波特率115200、1位停止位、無校驗位、無硬件流控制);或者使用其它串口通信程序;

(3) 點擊MDK 的Debug菜單,點擊Start/Stop Debug Session;

(4) 全速運行程序, 顯示結果如下所示。

MINI-STM32  STM32F103RBT6 Unique Device ID:

066C0033 32353958 43195835

備注: 其中最后一行的數字就是我的 MINI-STM32 開發板中 STM32F103RBT6 的 Unique Device ID. 您的 ID 當然肯定會和我的不一樣


免責聲明!

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



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