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 微控制器,在任何...