【 聲明:版權所有,歡迎轉載,請勿用于商業用途。 聯系信箱:feixiaoxing @163.com】
對于stm32f103系列mcu來說,一般每一顆原廠的mcu,都會對應一個唯一的id。那這個id可以用來做什么用呢?個人認為,可以用來做激活使用。舉個例子,第一次mcu模塊使用的時候,一般可以通過認證的上位機激活。激活的時候,模塊把自己的id告訴上位機,等上位機根據id生成一串校驗碼之后傳給模塊,模塊收到這個檢驗碼,并且保存到自己的flash上面。下次模塊啟動的時候,就會確認當前模塊是不是合法認證過,如果是,繼續啟動;反之,則拒絕啟動運行。這樣,即使別人把flash里面的程序和數據都copy走,換到新的設備上,也是啟動不起來的。
1、芯片id的獲取
103系列的芯片id主要就是從三個地址獲取三個32位數據就可以了。這三個地址分別是0X1FFFF7F0、0X1FFFF7EC、0X1FFFF7E8。
void Get_ChipID(void)
{ChipUniqueID[0] = *(__IO uint32_t *)(0X1FFFF7F0); // highChipUniqueID[1] = *(__IO uint32_t *)(0X1FFFF7EC); // ChipUniqueID[2] = *(__IO uint32_t *)(0X1FFFF7E8); // low
}