ST MCU芯片中的绝大部分都内置一串96位唯一标识码【unique ID】。时不时有人问起这个东西,尤其最近感,觉询问它的人甚是热闹。这里跟大家一起简单分享下。

上面说了ST MCU芯片中的绝大部分都带UID,也就是说并非所有ST MCU芯片都带它。到底谁带谁不带,从各自芯片数据手册的首页即可确认。如果首页没有明确写明,就表示该芯片没有UID或者说即使相应地址有数据但不保证其唯一性。

比方在STM8系列中,STM8S0XX、STM8L0XX系列芯片就不带UID的。

在STM32家族中,STM32F0系列中的STM3F030子系列、STM32F070子系列也是不带UID的【如果此处说错,遵照数据手册所言】,而STM32F042、STM32F071、STM32F031、STM32F051等是带UID的。这点也不用太花心思记它,知道去芯片数据手册首页核查就好。

该UID对用户来讲是只读的,在一些对数据具有唯一性要求、数据加密操作等场合可以派上用场。ST MCU芯片中的这个UID 是对整串92位数据保证唯一性,如果你截取其中一部分就不保证唯一性了。

STM32芯片UID的详细描述是在各系列的参考手册里。比方,STM32F0系列UID介绍如下。

大致内容就是芯片WAFER的坐标信息、编号信息、产品批号信息等多个数据组合在一起的。关于UID的描述,在STM8数据手册里描述更为直观点,截图如下:

至于对该UID数据的读取,没啥特别的。先从ST MCU参考手册中找到UID的地址信息,从相关地址中取出数据,用几条赋值语句即可完成。

最后顺便提一下,不要把这个UID跟STM32芯片器件ID【DEVICE ID】混为一谈,STM32芯片往往还有DEVICE ID,该ID主要包含芯片料号信息和晶圆DIE版本等信息。它可以通过调试接口访问或被用户软件访问。当我们用STLINK UTILITY通过STLINK调试器连接STM32目标板时就可看到有关DEVICE ID的信息。

下图就是使用STLINK UTILITY通过STLINK连接STM32F072目标板时看到的有关DEVICE ID的信息。

此外,对于STM32芯片,除了上面提到的UID,DEVICE ID外,还有其它基于内部调试组件的JTAG ID,有兴趣的话可以自行继续了解。


说明:

文章来自于:茶话MCU

原文地址:https://mp.weixin.qq.com/s?__biz=MzA3OTIxMjQyNQ==&mid=503464188&idx=1&sn=078e8c82771e813199cbe19239f48f12#rd

最新文章

  1. 学习Redis你必须了解的数据结构——双向链表(JavaScript实现)
  2. 领域驱动设计常见问题FAQ
  3. Android笔记:HTTP相关
  4. mybatis insert 如何返回主键
  5. MYSQL源码 与 DBUG
  6. bzoj3575[Hnoi2014]道路堵塞
  7. POJ 2195 Going Home / HDU 1533(最小费用最大流模板)
  8. 一.HttpClient、JsonPath、JsonObject运用
  9. nuget挂了吗?
  10. Luogu P3390 【模板】矩阵快速幂
  11. Python 解LeetCode:671. Second Minimum Node In a Binary Tree
  12. Linux进行AES加密每次结果都不一致并且解密失败报错
  13. mongodb3.6 (四)net 客户端如何连接、访问mongodb集群
  14. js循环json得到 键和值
  15. SeaweedFS的配置使用
  16. matlab中mat文件简单存/取
  17. 迷你MVVM框架 avalonjs 学习教程21、双向绑定链
  18. [实战篇]Tomcat发布项目-虚拟目录
  19. Yii 日志组件
  20. ASP.NET之Request和Response对象

热门文章

  1. linux cmake安装方法
  2. java架构之路(MQ专题)kafka集群配置和简单使用
  3. 暑假CV-QKD的相关论文单词集(第一弹)
  4. Tsx写一个通用的button组件
  5. Python爬虫的开始——requests库建立请求
  6. Kafka幂等性原理及实现剖析
  7. 消除router-link 的下划线问题
  8. [ch02-03] 梯度下降
  9. Stream系列(五)Min Max Average方法使用
  10. nginx实现内网服务唯一端口外网映射