打印
[单片机芯片]

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

[复制链接]
1720|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
trucyw|  楼主 | 2023-5-21 16:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
@21小跑堂 #申请原创# 距上一次学习学习点屏已经过去两周了今天我们来点新的(SPI屏幕已经没有啥新奇了),那今天到底是啥新奇玩意呢?
上图上图(我们芯片的Flash大小和唯一身份标识UID

原来Flash的容量可以通过0x1FFFF7E0反馈回来
唯一身份标识UID则可以通过0x1FFFF7E8~0x1FFFF7F0反馈回来
接下来就是展示我们目前在用这颗芯片FLASH大小以及唯一身份标识UID的时候了

我们看到的Flash Size是0x100,结合厂家的规格书我们可以知道这个大小是256K(以 Kbyte 为单位的闪存容量。例:0x0080 = 128 K 字节)
而我们的唯一身份标识UID96bit则是263E1C797AF2383BFFFFFFFF,到这里我们读取已经结束了,接下来就是怎么样显示到屏幕上了
我们先看下屏幕的显示内容

这个和我们串口打印的是一样的哦
如下就是我们读取到数据转换操作(我们用到了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存在的意义是什么呢 能防伪吗

使用特权

评论回复
5
zljiu| | 2023-6-6 14:14 | 只看该作者
aoyi 发表于 2023-6-6 14:01
芯片UID存在的意义是什么呢 能防伪吗

估计应该可以  但是不知道能不能具备追踪整个芯片的流向的功能

使用特权

评论回复
6
gwsan| | 2023-6-6 14:26 | 只看该作者
目前估计没有这么强大的功能  毕竟有一些采购链是比较那啥的

使用特权

评论回复
7
tfqi| | 2023-6-6 14:46 | 只看该作者
芯片的UID可以通过某些手段进行更改吗

使用特权

评论回复
8
chenjun89| | 2023-6-10 22:33 | 只看该作者
这个是RISCV内核的吗?

使用特权

评论回复
9
trucyw|  楼主 | 2023-6-11 09:20 | 只看该作者
chenjun89 发表于 2023-6-10 22:33
这个是RISCV内核的吗?

是的,RISCV

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

705

帖子

2

粉丝