gd32读取片上flash信息和UID

[复制链接]
58|0
 楼主 | 2019-7-8 16:59 | 显示全部楼层 |阅读模式
本帖最后由 zeshoufx 于 2019-7-8 17:21 编辑

一、读取片上flash信息地址为=0x1FFFF7E0,其中高十六位为sram信息,低16位为flash信息

二、读取UID地址=0x1FFFF7E8


三、以上两个地址除了E23x的不一样外,,其他系列都一样


四、程序
  1. #include "bitband.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"

  5. #include "get_uid.h"
  6. #include <math.h>


  7. int main(void)
  8. {
  9.         u32 uid[3]={0};
  10.         u32 mem;
  11.         u16 flashsize;
  12.         u16 sramsize;
  13.         u8 i;
  14.         
  15.         delay_init(96);
  16.         nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2);
  17.         usart0_init(115200);
  18.         led_config();
  19.         
  20.         
  21.         mem=get_uid(0x1FFFF7E0);
  22.         sramsize=(mem&0xffff0000)>>16;
  23.         flashsize=mem&0x0000ffff;
  24.         uid[0]=get_uid(0x1FFFF7E8);
  25.         uid[1]=get_uid(0x1FFFF7E8+4);
  26.         uid[2]=get_uid(0x1FFFF7E8+8);
  27.         
  28.         
  29.         
  30.         printf("   静夜思    \r\n");
  31.         printf(" 【唐】李白    \r\n");
  32.         printf(" 床前明月光,\r\n");
  33.         printf(" 疑是地上霜。\r\n");
  34.         printf(" 举头望明月,\r\n");
  35.         printf(" 低头思故乡。\r\n");
  36.         
  37.         
  38.         while(1)
  39.         {
  40.                
  41.                 i++;
  42.                 if(i%50==0)
  43.                 {
  44.                         led1=!led1;
  45.                         printf("Flash Size=%d k,Sram Size=%d k\r\n",flashsize,sramsize);
  46.                         printf("UID=%x %x %x\r\n",uid[0],uid[1],uid[2]);                        
  47.                 }
  48.                 delay_nms(20);
  49.         }
  50. }
复制代码

五、运行结果
597145d230a5e72ca4.png
589065d2305d4b7ab3.png

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表