本荣数码网,分享日用电子产品资讯,数码科技电脑类测评。
您现在的位置是:首页 > 产品评测

单片机id名单存储(有哪些单片机具有唯一的ID号)

vnshog9462 2024-04-19

一、gd32单片机id好解吗

不太好解。

如果精通这方面应该容易,就是常说的会者不难难者不会。使用J-Link配合seggerj-link软件中的Unsecure命令就很容易进行解除读保护。打开JLink-commander,可以发现芯片,输入mem0x1ffff80010,从0x1ffff800地址读取10个字节,如果读出来的前两个字节全是FF的话说明芯片处于读保护状态。

单片机是典型的嵌入式微控制器,由运算器,控制器,存储器,输入输出设备等构成,相当于一个微型的计算机。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。

二、stc的单片机怎么用id号来加密

STC读内部ID号工具组(自解压文件:103K),原文件是一个自解压文件,这里改为RAR,只有5K,也帮你贴到这里来了。(注意:该工具组好像只能使用在有物理串口的单片机使用。例如STC15F系列因串口需IO模拟,应该是运行后无效的)

解开后有一个EXE文件和一个HEX文件。将HEX文件 ISP写入单片机,运行ShowID.exe,设置好串口号,波特率随便设,例如9600,按【读取信息】键即可读取ID等信息。

(该工具组主要是方便检验唯一ID的,实际应用请看官方数据表里有C语言的范例。图中为一块STC12C5A08S2为例,请看其显示的结果与使用编程读取以上15位数据通过串口发送,用最新的程序匠人的“串口猎人”V26接收显示是一样的!:))

不同的芯片的ID都是唯一的,上图是两个不同批次的STC12C5410AD的ID。该ID使用7位字符,可以描述的总数为: 256^7=72,057,594,037,927,936个(天文数字)!应该不会重复了吧。。呵呵。。。

三、有哪些单片机具有唯一的ID号

ST的单片机大多都有唯一的ID

8位单片机,比如STM8S103F3、STM8S105C6

32位单片机,比如STM32F103C8、STM32F103RC

对于ST单片机的唯一ID,是96位,对于某些应用来说太长了,ST的下载程序软件或者淘宝上卖离线下载器的都有“滚码”这个功能,其实就是下载程序的时候给每个单片机的flash写入一个不同的数,这个数的字节数可以根据需要设定,这样可以得到符合我们要求的唯一ID。

四、如何读取STC单片机的ID号码

这个是通过串口读出ID号

//读内部R/C时钟及ID号C语言参考程序

#include<reg51.h>

#include<intrins.h>

sfr IAP_CONTR= 0xC7;

sbit MCU_Start_Led= P1^7;

//unsigned char self_command_array[4]={0x22,0x33,0x44,0x55};

#define Self_Define_ISP_Download_Command 0x22

#define RELOAD_COUNT 0xfb//18.432MHz,12T,SMOD=0,9600bps

void serial_port_initial();

void send_UART(unsigned char);

void UART_Interrupt_Receive(void);

void soft_reset_to_ISP_Monitor(void);

void delay(void);

void display_MCU_Start_Led(void);

void main(void)

{

unsigned char i= 0;

unsigned char j= 0;

unsigned char idata*idata_point;

serial_port_initial();//串口初始化

// display_MCU_Start_Led();//点亮发光二极管表示单片机开始工作

// send_UART(0x34);//串口发送数据表示单片机串口正常工作

// send_UART(0xa7);//串口发送数据表示单片机串口正常工作

idata_point= 0xF1;

for(j=0;j<15;j++)

{

i=*idata_point;

send_UART(i);

idata_point++;

}

while(1);

}

void serial_port_initial()

{

SCON= 0x50;//0101,0000 8位可变波特率,无奇偶校验位

TMOD= 0x21;//0011,0001设置顶时器1为8位自动重装计数器

TH1= RELOAD_COUNT;//设置定时器1自动重装数

TL1= RELOAD_COUNT;

TR1= 1;//开定时器1

ES= 1;//允许串口中断

EA= 1;//开总中断

}

void send_UART(unsigned char i)

{

ES= 0;//关串口中断

TI= 0;//清零串口发送完成中断请求标志

SBUF= i;

while(TI==0);//等待发送完成

TI= 0;//清零串口发送完成中断请求标志

ES= 1;//允许串口中断

}

void UART_Interrupt_Receive(void) interrupt 4

{

unsigned char k= 0;

if(RI==1)

{

RI= 0;

k= SBUF;

if(k==Self_Define_ISP_Download_Command)//是自定义下载命令

{

delay();//延时1秒就足够了

delay();//延时1秒就足够了

soft_reset_to_ISP_Monitor();//软复位到系统ISP监控区

}

send_UART(k);

}

else

{

TI= 0;

}

}

void soft_reset_to_ISP_Monitor(void)

{

IAP_CONTR= 0x60;//0110,0000软复位到系统ISP监控区

}

void delay(void)

{

unsigned int j= 0;

unsigned int g= 0;

for(j=0;j<5;j++)

{

for(g=0;g<60000;g++)

{

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

}

}

}

void display_MCU_Start_Led(void)

{

unsigned char i= 0;

for(i=0;i<3;i++)

{

MCU_Start_Led= 0;//顶亮MCU开始工作指示灯

delay();

MCU_Start_Led= 1;//熄灭MCU开始工作指示灯

delay();

MCU_Start_Led= 0;//顶亮MCU开始工作指示灯

}

}

文章版权声明:除非注明,否则均为本荣数码网原创文章,转载或复制请以超链接形式并注明出处。