[单片机芯片] 菜鸟学习功能强大CH32V307之芯片FLASH&UID读取

[复制链接]
 楼主| trucyw 发表于 2023-5-21 16:08 | 显示全部楼层 |阅读模式
@21小跑堂 #申请原创# 距上一次学习学习点屏已经过去两周了今天我们来点新的(SPI屏幕已经没有啥新奇了),那今天到底是啥新奇玩意呢?
上图上图(我们芯片的Flash大小和唯一身份标识UID
1.png
原来Flash的容量可以通过0x1FFFF7E0反馈回来
唯一身份标识UID则可以通过0x1FFFF7E8~0x1FFFF7F0反馈回来
接下来就是展示我们目前在用这颗芯片FLASH大小以及唯一身份标识UID的时候了
2.jpg
我们看到的Flash Size是0x100,结合厂家的规格书我们可以知道这个大小是256K(以 Kbyte 为单位的闪存容量。例:0x0080 = 128 K 字节)
而我们的唯一身份标识UID96bit则是263E1C797AF2383BFFFFFFFF,到这里我们读取已经结束了,接下来就是怎么样显示到屏幕上了
我们先看下屏幕的显示内容
3.jpg
这个和我们串口打印的是一样的哦
如下就是我们读取到数据转换操作(我们用到了Sprintf)
        USART_Printf_Init(115200);       
        printf("SystemClk:%d\r\n",SystemCoreClock);
        printf("ChipID:%08x\r\n", DBGMCU_GetCHIPID());
        printf("ChipFLASH:%08x\r\n", DBGMCU_GetFLACAP());
    UID[2]=DBGMCU_GetUIDH();
    UID[1]=DBGMCU_GetUIDM();
    UID[0]=DBGMCU_GetUIDL();
    sprintf(UID,"%08X%08X%08X",UID[2],UID[1],UID[0]);
    printf("UID:%s\r\n",UID);
    LCD_Init();
    LCD_SetBrightness(60);
        POINT_COLOR=RED;               
        LCD_Clear(BLACK);
    LCD_ShowString(1,1,200,16,24,"WCH CH32V307");
    if(DBGMCU_GetFLACAP()==0x20)LCD_ShowString(1,25,200,16,16,"Flash Size: 32K");
    if(DBGMCU_GetFLACAP()==0x40)LCD_ShowString(1,25,200,16,16,"Flash Size: 64K");
    if(DBGMCU_GetFLACAP()==0x80)LCD_ShowString(1,25,200,16,16,"Flash Size: 128K");
    if(DBGMCU_GetFLACAP()==0x100)LCD_ShowString(1,25,200,16,16,"Flash Size: 256K");
    else LCD_ShowString(1,25,200,16,16,"MCU ERROR");
    LCD_ShowString(1,41,200,16,16,"UID:");
    LCD_ShowString(31,41,200,16,16,UID);

为什么用到用到sprintf是因为我们要把读出来的数据转换成字符串
芯片FLASH&UID读取到这里就结束了
tpgf 发表于 2023-6-6 11:59 | 显示全部楼层
在嵌入式设备开发过程中有时会需要为设备设置唯一的ID用以标识设备唯一,比如要求同一总线上的所有设备ID不能重复,要求设备具体唯一的MAC地址等等
nawu 发表于 2023-6-6 13:14 | 显示全部楼层
同一个厂商的不同芯片的uid存放的地址是一样的吗
aoyi 发表于 2023-6-6 14:01 | 显示全部楼层
芯片UID存在的意义是什么呢 能防伪吗
zljiu 发表于 2023-6-6 14:14 | 显示全部楼层
aoyi 发表于 2023-6-6 14:01
芯片UID存在的意义是什么呢 能防伪吗

估计应该可以  但是不知道能不能具备追踪整个芯片的流向的功能
gwsan 发表于 2023-6-6 14:26 | 显示全部楼层
目前估计没有这么强大的功能  毕竟有一些采购链是比较那啥的
tfqi 发表于 2023-6-6 14:46 | 显示全部楼层
芯片的UID可以通过某些手段进行更改吗
chenjun89 发表于 2023-6-10 22:33 来自手机 | 显示全部楼层
这个是RISCV内核的吗?
 楼主| trucyw 发表于 2023-6-11 09:20 | 显示全部楼层
chenjun89 发表于 2023-6-10 22:33
这个是RISCV内核的吗?

是的,RISCV
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

750

帖子

2

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