本帖最后由 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);
- }
- }
五、运行结果
|