OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5778|回复: 3

STM32的电子签名:怎么通过程序读取唯一身份标志?或者读取容量大小??

[复制链接]

15

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2014-4-28
在线时间
16 小时
发表于 2014-5-7 16:52:35 | 显示全部楼层 |阅读模式
5金钱
怎么通过程序读取唯一身份标志?或者读取容量大小?

基地址:0x1FFF F7E0
只读,它的内容在出厂时编写
F_SIZE:闪存存储器容量
位15:0
以K字节为单位指示产品中闪存存储器容量。
例:0x0080 = 128 K字节


基地址:0x1FFF F7E8
地址偏移:0x00
只读,其值在出厂时编写
U_ID[15:0]:唯一身份标志15:0位
地址偏移:0x02
只读,其值在出厂时编写
U_ID[31:16]:唯一身份标志31:16位
位15:0
这个域的数值也预留作为未来的其它功能。
地址偏移:0x04
U_ID[63:32]:唯一身份标志63:32位

最佳答案

查看完整内容[请看2#楼]

int ID1 = *((int *)(0x1FFFF7E8));   int ID2 = *((int *)(0x1FFFF7E8+4));   int ID3 = *((int *)(0x1FFFF7E8+8)); printf("%08x%08x%08X",ID1,ID2,ID3); int flashsize = (*((int *)(0x1FFFF7E0)))&0xFFFF;  printf("flash size = %d",flashsize);  这样可以吗?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2014-4-28
在线时间
16 小时
 楼主| 发表于 2014-5-7 16:52:36 | 显示全部楼层
int ID1 = *((int *)(0x1FFFF7E8));
  int ID2 = *((int *)(0x1FFFF7E8+4));
  int ID3 = *((int *)(0x1FFFF7E8+8));

printf("%08x%08x%08X",ID1,ID2,ID3);

int flashsize = (*((int *)(0x1FFFF7E0)))&0xFFFF; 
printf("flash size = %d",flashsize); 


这样可以吗?
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-5-7 18:05:24 | 显示全部楼层
最好的验证方法就是下载到板子上面跑一下,或者软件仿真一下也是可以的
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-7 22:49:56 | 显示全部楼层
回复【2楼】yunhongli:
---------------------------------
看上去很对,你可以下载到单片机运行测试下.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-7 22:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表