本帖最后由 zeshoufx 于 2019-7-8 17:21 编辑
一、读取片上flash信息地址为=0x1FFFF7E0,其中高十六位为sram信息,低16位为flash信息
二、读取UID地址=0x1FFFF7E8
三、以上两个地址除了E23x的不一样外,,其他系列都一样
四、程序#include "bitband.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "get_uid.h"
#include <math.h>
int main(void)
{
u32 uid[3]={0};
u32 mem;
u16 flashsize;
u16 sramsize;
u8 i;
delay_init(96);
nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2);
usart0_init(115200);
led_config();
mem=get_uid(0x1FFFF7E0);
sramsize=(mem&0xffff0000)>>16;
flashsize=mem&0x0000ffff;
uid[0]=get_uid(0x1FFFF7E8);
uid[1]=get_uid(0x1FFFF7E8+4);
uid[2]=get_uid(0x1FFFF7E8+8);
printf(" 静夜思 \r\n");
printf(" 【唐】李白 \r\n");
printf(" 床前明月光,\r\n");
printf(" 疑是地上霜。\r\n");
printf(" 举头望明月,\r\n");
printf(" 低头思故乡。\r\n");
while(1)
{
i++;
if(i%50==0)
{
led1=!led1;
printf("Flash Size=%d k,Sram Size=%d k\r\n",flashsize,sramsize);
printf("UID=%x %x %x\r\n",uid[0],uid[1],uid[2]);
}
delay_nms(20);
}
}
五、运行结果
|