请教怎么用st-link API或者dll读出stm32或者8的唯一ID

 我来答
翥甾天下
2016-09-09 · TA获得超过177个赞
知道答主
回答量:69
采纳率:0%
帮助的人:21.6万
展开全部

STM32 设备电子签名

电子签名存储在 Flash 区。可以使用 JTAG/SWD 或 CPU 对其进行读取。它包含出厂前编程   

的标识数据,这些标识数据允许用户固件或其它外部设备将其接口与 STM32F4xx 微控制器  

的特性自动匹配。

唯一设备 ID 寄存器(96 位)

唯一设备标识符最适合:

● 用作序列号(例如 USB 字符串序列号或其它终端应用程序)

● 在对内部 Flash 进行编程前将唯一 ID 与软件加密原语和协议结合使用时用作安全密钥以    

提高 Flash 中代码的安全性

● 激活安全自举过程等

96 位的唯一设备标识符提供了一个对于任何设备和任何上下文都唯一的参考号码。用户永远 

不能改变这些位。

96 位的唯一设备标识符也可以以单字节/半字/字等不同方式读取,然后使用自定义算法连接 

起来。

以下程序可以直接读取设备ID,但是根据你STM32芯片型号不同可能地址(0x1FFF7A10)会不同,需要查看手册最后的“设备电子签名”章节

nsigned int mcuID[] ={0,0,0};

void cpuidGetId(void)

{

    mcuID[0] = *(__IO u32*)(0x1FFF7A10);

    mcuID[1] = *(__IO u32*)(0x1FFF7A14);

    mcuID[2] = *(__IO u32*)(0x1FFF7A18);

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式