stm32設定唯一MAC位址

2021-09-10 01:21:57 字數 1808 閱讀 5720

stm32參考手冊中指出,在位址為0x1ffff7e8處,有乙個唯一的身份標識暫存器。

可以直接訪問該值。

printf

("\r\nchip id: %x, %x, %x\r\n",*

(vu32*)(

0x1ffff7e8),

*(vu32*)(

0x1ffff7e8+4

),*(vu32*)(

0x1ffff7e8+8));

chip id: 5d8ff39, 36364e4e, 43137403
雖然這個96bit的id是唯一的,但是mac位址卻只有48bit,因為量產有不同批次,而且採購的很隨機的話這個id號也是不唯一的,比較靠譜一點的還是自己在指定flash位置定義乙個變數,這樣程式就寫死去讀這個地方的值,而這個地方的值我們再用別的方式去修改,如自己寫個上位機用串列埠通訊設定等。

uint32_t chipid __attribute__((

at(0x800f000))

)=0x12345678

;printf

("\r\nchip id: %x\r\n",*

(vu32*)(

0x800f000))

;printf

("\r\nchip id: %x\r\n",*

(vu8*)(

0x800f000))

;printf

("\r\nchip id: %x\r\n",*

(vu8*)(

0x800f001))

;printf

("\r\nchip id: %x\r\n",*

(vu8*)(

0x800f002))

;printf

("\r\nchip id: %x\r\n",*

(vu8*)(

0x800f003))

;

chip id: 55550002

chip id: 2

chip id: 0

chip id: 55

chip id: 55

對應**如下:

printf

("\r\nchip id: %x\r\n",*

(vu32*)(

0x800f000))

;printf

("\r\nchip id: %x\r\n",*

(vu8*)(

0x800f000))

;printf

("\r\nchip id: %x\r\n",*

(vu8*)(

0x800f001))

;printf

("\r\nchip id: %x\r\n",*

(vu8*)(

0x800f002))

;printf

("\r\nchip id: %x\r\n",*

(vu8*)(

0x800f003))

;

mac位址的前12bit固定,後面的便可以直接如此自定義設定。

STM32 系統時鐘設定

stm32f103rbt6採用外部時鐘8mhz,利用軟體可以將系統時鐘設定為72mhz。在啟動檔案startup stm32f10x md.s中,有這樣兩句話 import main 從外部檔案引入main函式 import systeminit 從外部檔案引入systeminit檔案 當晶元上電復...

STM32 Mac開發STM32之邏輯分析儀

在微控制器 嵌入式硬體開發時,邏輯分析儀是乙個非常常用的工具。它用來捕獲數碼訊號,開發者通過專用軟體,圖形化訊號,並按照相應協議分析軟體或硬體中的錯誤。在分析時序問題時,比如uart iic spi can hdmi cec等資料時,應用邏輯分析儀快速解決問題 本例子使用saleaelogic8來分...

如何讀取STM32晶元的唯一ID

產品唯一的身份標識的作用 用來作為序列號 例如usb字串行號或者其他的終端應用 用來作為密碼,在編寫快閃儲存器時,將此唯一標識與軟體加解密演算法結合使用,提高 在快閃儲存器儲存器內的安全性 用來啟用帶安全機制的自舉過程 96位的產品唯一身份標識所提供的參考號碼對任意乙個 stm32 微控制器,在任何...