STM32唯一的ID



请看如下程序:

/*------------------------------------------------------------------------------------------------------*/
    /* to get the chipid and put it in ChipUniqueID[3] */
    Get_ChipID();

    /* printf the chipid */
    printf("\r\n芯片的唯一ID为: %X-%X-%X\r\n",
            ChipUniqueID[0],ChipUniqueID[1],ChipUniqueID[2]);

    /* printf the flash memory amount */
    printf("\r\n芯片flash的容量为: %dK \r\n", *(__IO u16 *)(0X1FFFF7E0));
/*------------------------------------------------------------------------------------------------------*/
    

Get_ChipID()函数

void Get_ChipID(void)
{
    ChipUniqueID[0] = *(__IO u32 *)(0X1FFFF7F0); // 高地址
    ChipUniqueID[1] = *(__IO u32 *)(0X1FFFF7EC); //
    ChipUniqueID[2] = *(__IO u32 *)(0X1FFFF7E8); // 低地址
}

(一)产品唯一身份标识寄存器(96位)

96位的产品唯一身份标识所提供的参考号码对任意一个STM32微控制器,在任何情况下都是唯

一的。用户在何种情况下,都不能修改这个身份标识。

这个96位的产品唯一身份标识,按照用户不同的用法,可以以字节(8位)为单位读取,也可以以

半字(16位)或者全字(32位)读取。

基地址:0x1FFF F7E8

地址偏移:0x00

只读,其值在出厂时编写

U_ID[15:0]:唯一身份标志15:0位

器件电子签名

地址偏移:0x02

只读,其值在出厂时编写

U_ID[31:16]:唯一身份标志31:16位

这个域的数值也预留作为未来的其它功能。

地址偏移:0x04

只读,其值在出厂时编写

U_ID[63:32]:唯一身份标志63:32位

地址偏移:0x08

只读,其值在出厂时编写

U_ID[95:64]:唯一身份标志95:64位

(二)闪存容量寄存器

基地址:0x1FFF F7E0

只读,它的内容在出厂时编写

F_SIZE:闪存存储器容量  位15:0

以K字节为单位指示产品中闪存存储器容量。

例:0x0080 = 128 K字节

(3.5版本的库,32参考手册第28章732页,旧版本的应该在642页左右)

时间: 2024-10-10 10:05:19

STM32唯一的ID的相关文章

extjs每个组件要设置唯一的ID

extjs每个组件要设置唯一的ID,否则会造成各种错误 EXTJS基本上是靠ID来识别组件的,假如你在panel1中有个ID:"keyword"的textfield,而panel2中有个ID相同的textfield ,那么,当你关闭panel2,由于extjs发现panel2中的ID:"keyword"组件在panel1中仍然使用中,是不会销毁掉它的,于是它成为一个孤立的对象,从而造成混乱. 无论如何,你得时刻记着,任何时候,必须确保对象ID是唯一的.这有两个做法:

【高性能】生成唯一时间戳ID,如果性能不高可以不用来看

凡事涉及到高性能貌似都是高大上的东西,所以嘛我也试试:其实这个时间戳ID的生成主要为了解决我们公司内部的券号生成,估计有小伙伴认为券号生成有这么麻烦嘛,搞个自增ID完全可以用起来,或者时间取毫微米时间戳等. 如果以上真是这样简单的话,那我要说道说道:首先自增ID资源耗尽的时候,特别礼券号生成的越频繁,毕竟bigInt也有耗尽那天(当然如果有更长数字字段就是慢慢耗呗),而且依靠数据库进行被动生成,在有些业务上比较软肋:我还有一个同事说搞一张表定时去自增生成ID,这样就能随时取已经存在的ID资源数据

学习笔记找到多个具有相同ID“_header”的控件,FindControl要求控件具有唯一的ID.

private void DisplayHotBooks()    {        //获取所有的书分类信息        IList<Category> list = CategoryManager.GetAllCategories();        int i = 0;        foreach (Category item in list)        {            AccordionPane ap = new AccordionPane();           

php中利用uniqid() 函数生成唯一的id

function createId($prefix = ""){    $str = md5(uniqid(mt_rand(), true));    return $prefix . $str;} //uniqid(prefix,more_entropy)uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. prefix 可选.为 ID 规定前缀.如果两个脚本恰好在相同的微秒生成 ID,该参数很有用.more_entropy 可选.规定位于返回值末尾的更多的熵. 如果

js生成唯一的id

1.生成[0,1)的随机数的Math.random Math.random().toString().replace(".", "");// 生成唯一的id 原文地址:https://www.cnblogs.com/ilimengyang/p/8986615.html

可实现的全局唯一有序ID生成策略

在博客园搜素全局唯一有序ID,罗列出来的文章大致讲述了以下几个问题,常见的生成全局唯一id的常见方法 :使用数据库自动增长序列实现 : 使用UUID实现:  使用redis实现: 使用Twitter的snowflake算法实现:使用数据库+本地缓存实现.作为一个记录性质的博客,简单总结一下. 在实际的生产场景中,经常会出现如下的情况比方说订单号:D channelNo 流水号 样例PSDK1600000001, PSDK1600000002, PSDK1600000003... 这种具有业务意义

C#生成唯一的ID保存到数据库

直接用.NET Framework 提供的 Guid() 函数: Guid.NewGuid()是指生成唯一码的规则 System.Guid.NewGuid().ToString()全球唯一标识符 (GUID) 是一个字母数字标识符 System.Guid.NewGuid().ToString(format):生成的ID值的格式: 说明符       返回值的格式   N                  32   位: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   D  

Android设备唯一标识ID的获取

方法一: 返回的是作为唯一64位十六进制字符串的Android设备ID. import android.provider.Settings.Secure; private String android_id = Secure.getString(getContext().getContentResolver(), Secure.ANDROID_ID); 方法二: UUID是一个128位的全局唯一不可变的标识符(UUID). import java.util.UUID; private stati

给大数据文件的每一行产生唯一的id

4个主要思路: 1 单线程处理 2 普通多线程 3 hive 4 Hadoop 搜到一些参考资料 <Hadoop实战>的笔记-2.Hadoop输入与输出 https://book.douban.com/annotation/17068812/ TextInputFormat:文件偏移量:整行数据 但是这个偏移量,貌似是在一个文件的偏移,而不是全局. Generate Auto-increment Id in Map-reduceJob http://shzhangji.com/blog/201