- 打卡等级:常住居民III
- 打卡总天数:115
- 最近打卡:2025-03-28 11:36:20
中级会员
- 积分
- 384
|
发表于 2024-5-22 09:18:33
|
显示全部楼层
通过设定的数值,与新按键的数值进行二次对比,相同就保存
#include "bijiao.h"
static u8 old_key[6];
static u8 in_len = 0;
u8 i;
//#define BLOCK_PASS_TOTAL 80 //每个块密码存放的用户数
static U_ManageData man_data = {{0,0,0,0,0,0},{3,4,5,3,4,5},{1,1,2,2,3,3},{0xff,0xff,0xff,0xff},6,6,6};
/******************************************************/
/******************************************************/
void update_eeprom_passwd()
{
EEPROM_SectorErase(0);
EEPROM_write_n(0 //写入的起始地址
, (void*)&man_data.passwd //buf数据存放的起始地址
, sizeof(man_data.passwd)); //
}
/******************************************************/
/*
更新系统的密码,这里需要输入两次密码,第一次做保存使用。
*/
u8 update_admin_passwd(u8 buf[],u8 len)
{
if(in_len == 0)
{
for(i=0;i<len;i++)
{
old_key[i] = buf[i];
}
in_len = len;
TX1_write2buff(i%10+'0'); //测试用
return 1;
}
return 0;
}
//****************************************************
u8 update_admin_passwd1(u8 buf[],u8 len)
{
/************************************************************************/
if(in_len != len) //第二次输入长度不对
{
PrintString1("erci changdu ng\n\r");
return 0; //返回错误。
}
for(i=0;i<len;i++)
{
if(old_key[i] != buf[i])
{
PrintString1("erci shuju ng\n\r");
return 0; //返回错误,第一次和第二次输入的不一致
}
}
in_len = 0; //输入正确,清零全局变量。
for(i=0;i<len;i++)
{
man_data.passwd[i] = buf[i];
}
man_data.passwd_len = len;
for(;i<6;i++)
{
man_data.passwd[i] = 0xff;
}
delay_ms(20);
update_eeprom_passwd();
PrintString1("123123\n\r");
return 1;
/************************************************************************/
} |
|