单片机id名单存储(有哪些单片机具有唯一的ID号)
一、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开始工作指示灯
}
}
上一篇:原道n80刷机,原道M8怎么刷机
推荐阅读