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

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

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)

}

进入你的Jlink安装目录

双击JLink.exe

出现如下界面

使用Jlink连接MCU

连接成功后

读取整个芯片数据

前提你需要在第一个界面选择你的MCU型号

自己看看这么选

你的Jlink必须能成功连接MUC

因为没有识别到stm32的驱动。下载的是stlink的驱动,首先得用stlink才能下载程序。单片机不能像u盘一样,插上电脑会显示图标盘符,你得在keil或者iar里面调用下载命令才能把程序下载进去或者将串口驱动安上,然后直接找个串口下载软件下载。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11367101.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存