c语言小程序设置登陆账号密码,一段在STM32上实现密码设置功能的小程序

本文档详细介绍了如何使用C语言在STM32上通过按键设置密码,并将密码存储到EEPROM中。适合具备C语言基础、STM32硬件知识或界面编程经验的学习者。涉及关键步骤包括按键检测、密码限制、LCD显示以及EEPROM写入操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本程序适用于:1:会C语言,玩过STM32,懂得STM32外部电路的并且会举一反三的同学

2:会C或者C++语言,玩过界面,只需把按键按下变成界面按钮按下,存eeprom变成读写文件即可

3:如果只会C语言,了解一下思想、

4:如果只会硬件,没问题,软件学学也没想象中的那么难

void set_password(void)

{

char i,j = 0;

char password_buf[6] = {0}; //临时存储,为了把密码存储到eeprom

int m=0; //用作密码成功判断

int k = -1;//密码,范围0~9

char store[50] = {0}; //为了lcd显示存储的数据

_REINPUT:

delay(MSec(80)); //延时函数,需自己封装,如带操作系统,根据系统性质编写,如若无系统,两个for循环也行

LCD_Show("请按键设置密码:");//LCD显示函数,需自己封装

j = 0;

m = 0;

while(1)

{

k = -1;

if(scan_key_down("PE1")) //判断按键按下函数,自己根据STM32的IO性质以及实际硬件电路编写

{

delay(MSec(50));

if(scan_key_down("PE1"))

{

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

{

delay(MSec(100));

if(((i%5)==0)&&(i!=0)) //5的倍数才能进if,也起延时作用

{

k++;

if(k>9)

{

k = 0; //限制密码范围为9以内

}

sprintf(store,"密码第%d位: %d",j+1,k); // 配合LCD输出

LCD_Show(store);

}

if(read_IO("PE1")==1) //检测松开按键函数,松开按键跳出循环,k为密码的一位

{

break;

}

}

m++;

password_buf[j] = k; //密码存储

j++;

if(j>5) //限制密码位数

{

j=0;

k=-1;

}

}

}

if(scan_key_down("PE2"))//按下按键选定模式,用另一个按键

{

delay(MSec(50));

if(scan_key_down("PE2"))

{

if(m%6==0&&m!=0)

{

LCD_Show("密码设置OK!");

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

{

printf("密码第%d位:%d\n",i+1,passwordBuf[i]);

eeprom_wr8((char)password_buf[i],900+i); //密码写进eeprom

delay(MSec(10));

}

delay(Sec(2));

}

else

{

LCD_Show("密码设置NG!");

LCD_Show("请重新输入密码!");

delay(Sec(2));

goto _REINPUT; //调回开始重新执行

}

break;

}

}

delay(MSec(20));

}

}欢迎爱技术的小伙伴一起交流,如有错误,希望告知,一起改正,共同进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值