读取STM32单片机-ID操作
每一片 STM32 芯片內(nèi)部擁有一個獨(dú)一無二的 Unique Device ID, 96 Bit.
這個 ID 號可以提供給開發(fā)者很多優(yōu)越的功能, 例如:
1. 可以把 ID 做為用戶最終產(chǎn)品的序列號,幫助用戶進(jìn)行產(chǎn)品的管理。
2. 在某些需要保證安全性的功能代碼運(yùn)行前,通過校驗(yàn)此 ID,保證最終產(chǎn)品的某些功能的安全性。
3. 用 ID 配合加解密算法,對芯片內(nèi)部的代碼進(jìn)行加加密,以保證用戶產(chǎn)品的安全性和不可復(fù)制性。
這項(xiàng)功能相信對那些不希望自己的產(chǎn)品不被別人抄襲來說肯定是個非常不錯的。
下面我就先大家介紹如何讀出這個 ID:
?
這個 ID 號是放在片內(nèi) Flash 中的固定的位置,直接讀取出來就行了. 96 位的獨(dú)特 ID 位于地址 0×1FFFF7E8 ~ 0×1FFFF7F4 的系統(tǒng)存儲區(qū), 由 ST 公司在工廠中寫入 (用戶不能修改) 用戶可以以字節(jié)、半字、或字的方式單獨(dú)讀取其間的任一地址.
(一) 配置好串口, 用于調(diào)試演示, 這一部份前面的章節(jié)我們已經(jīng)介紹過了.
可以參考貼子:
[原創(chuàng)] MINI-STM32 開發(fā)板入門教程 (六) 基于 DMA 的 ADC
當(dāng)然也可以直接下載我們的例程去讀這部分的程序.
(二) 讀取 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);
(三) 仿真調(diào)試
?
(1) 使用Keil uVision4 通過ULINK 2仿真器連接實(shí)驗(yàn)板,使用MINI-STM32 開發(fā)板附帶的串口線,連接實(shí)驗(yàn)板上的 UART1 和 PC 機(jī)的串口,打開實(shí)驗(yàn)例程目錄下的ADC.Uv2例程,編譯鏈接工程;
(2) 在 PC 機(jī)上運(yùn)行 windows 自帶的超級終端串口通信程序(波特率115200、1位停止位、無校驗(yàn)位、無硬件流控制);或者使用其它串口通信程序;
(3) 點(diǎn)擊MDK 的Debug菜單,點(diǎn)擊Start/Stop Debug Session;
(4) 全速運(yùn)行程序, 顯示結(jié)果如下所示。
MINI-STM32 ?STM32F103RBT6 Unique Device ID:
066C0033 32353958 43195835
備注: 其中最后一行的數(shù)字就是我的 MINI-STM32 開發(fā)板中 STM32F103RBT6 的 Unique Device ID. 您的 ID 當(dāng)然肯定會和我的不一樣
轉(zhuǎn)載于:https://www.cnblogs.com/liangbo-1024/p/10943605.html
總結(jié)
以上是生活随笔為你收集整理的读取STM32单片机-ID操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 冲刺阶段——Day2
- 下一篇: SqlMap常用参数(一)