STM32 進階教程 9 - 芯片維一碼(UID)讀取

前言算法

在嵌入式設備開發過程當中有時會須要爲設備設置惟一的ID用以標識設備惟一,好比要求同一總線上的全部設備ID不能重複,要求設備具體惟一的MAC地址等等。其實STM32的及其它類型的MCU如ATMEL,GD等公司的芯片都自帶有惟一序列碼,在設備開發時能夠用這個芯片惟一碼(UID)來標誌設備的惟一。本節以stm32爲例,介紹如何讀取芯片的惟一碼(UID)並用它產生其它格式的惟一碼。windows

 

示例詳解工具

基於硬件平臺: STM32F10C8T6最小系統板, MCU 的型號是 STM32F103c8t6, 使用stm32cubemx 工具自動產生的配置工程,使用KEIL5編譯代碼。spa

 

本示例所用的最小系統板原理圖:設計

 

    1. 關於CUBEMX工具及KEIL工具的操做將再也不細講,若是還有不熟悉的能夠查看以前的教程文檔。下面直接介紹工程配置:
      1. 系統時鐘樹

      1. 定時器配置

      1. 引腳配置(這一節此IO配置不重要,能夠可無!!)

      1. 中斷配置(保持默認)

 

 

    1. 工程代碼

 

      1. 在stm32 MCU的數據手冊中關於UID的描述有(從0x1FFFF7E8開始的12個字節96bit):

      1. 在main.c中加入以下圖所示代碼

 

    1. 編譯工程,仿真調試觀看UID及MAC的內容,記得需行將變量UID及mac加入到watch窗口:

固然也能夠直接經過內存觀察窗口「View – memory windows – memory1」在memory1地址欄中輸入0x1FFFF7E8直接觀察芯片的UID:調試

Mac變量是UID通過簡單的賦值及相加運算後獲得的咱們需在的8位設備ID。實際應用的能夠根據需求來自行設計算法要據UID計算長度不一樣的ID。blog

 

OK,本期實驗完成!下期見!同時若是你們有什麼疑問或是有想了解的其它內容,也歡迎你們留言!!最後喜歡這個公衆號的同窗們記得加關注了,會有不按期技術乾貨推出!!教程

文中源碼資料下載,在公衆號裏給十三發消息:內存

下載|STM32進階教程 9開發

 

關注十三公衆號