修改代码中的错误#include "oled.h" #include "oledfont.h" #include "matrix_key.h" #define PassWord_MAX_Num 8 void password_correct() { OLED_ShowCHinese(16,2,20,1); OLED_ShowCHinese(32,2,21,1); OLED_ShowCHinese(48,2,24,1); OLED_ShowCHinese(64,2,25,1); } void password_Error() { OLED_ShowCHinese(16,2,20,1); OLED_ShowCHinese(32,2,21,1); OLED_ShowCHinese(48,2,22,1); OLED_ShowCHinese(64,2,23,1); } void password_input() { OLED_ShowCHinese(0,0,17,0); OLED_ShowCHinese(16,0,18,0); OLED_ShowCHinese(32,0,19,0); OLED_ShowCHinese(48,0,20,0); OLED_ShowCHinese(64,0,21,0); } uint8_t flag=1; void oled_xs(){ if(flag==1){ password_input(); } if(flag==2){ password_correct(); } if(flag==3){ password_Error(); } } void oled_skip(uint8_t num) { OLED_Clear(); flag = num; } uint8_t PassWord[PassWord_MAX_Num+1] = "123456\0"; uint8_t PassWord_Temp[PassWord_MAX_Num +1]; uint8_t password_verifiers(){ uint8_t n =0; for(n =0;n<PassWord_MAX_Num;n++) { if(PassWord_Temp[n]!=PassWord[n]) return 0; } return 1; } void key_command(){ uint8_t key_num = 0; uint8_t text =0; key_num = matrix_key(); if(flag==1){ if(PassWord_n<PassWord_MAX_Num) { switch(key_num) { case 1 :text ='1';break; case 2 :text ='2';break; case 3 :text ='3';break; case 4 :text ='4';break; case 5 :text ='5';break; case 6 :text ='6';break; case 7 :text ='7';break; case 8 :text ='8';break; case 9 :text ='9';break; case 10 :text ='10';break; case 11 :text ='11';break; case 12 :text ='12';break; case 13 :text ='13';break; case 14 :text ='14';break; default: break; } if(text) { PassWord_Temp[PassWord_n] = text; PassWord_n++; } } if (key_num ==15) { PassWord_Temp[PassWord_n] ='\0'; PassWord_n++; if(password_verifiers()==1) { oled_skip(2); LED2_ON(); } else { oled_skip(3); } } if(key_num ==13) { Clear_PassWord_Temp(); } } }
时间: 2024-02-16 15:03:04 浏览: 109
在代码中,有一个错误是在函数`password_verifiers()`的第7行,`!=`应该改为`!=`。正确的代码如下:
```c
uint8_t password_verifiers(){
uint8_t n =0;
for(n =0;n<PassWord_MAX_Num;n++)
{
if(PassWord_Temp[n]!=PassWord[n])
return 0;
}
return 1;
}
```
另外,在函数`key_command()`中,有两个问题需要注意:
1. `PassWord_n`没有声明。假设它是全局变量,否则需要在函数内部定义。
2. `Clear_PassWord_Temp()`函数没有在代码中出现,需要确认它是否存在。如果不存在,需要自己编写清空`PassWord_Temp`数组的函数。
相关问题
#ifndef __KERNEL__ #define __KERNEL__ #endif #ifndef MODULE #define MODULE #endif #include <linuxersion.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux.h> #include <linuxpes.h> #include <linux/errno.h> #include <linux/fs.h> #include <linux/sched.h> #include <linux/ioport.h> #include <linuxab.h> #include <linuxring.h> #include <asm/io.h> #include <asmgment.h> #include <asm/uaccess.h> #include "scull.h"
这段代码中包含了多个头文件,其中可能有一个错误的头文件名字。具体来说,`<asmgment.h>` 是一个非标准的头文件,不属于 Linux 内核或者标准的 C/C++ 库。如果你的代码中包含了这个头文件,编译器就会找不到它并报错。
你需要检查代码中的头文件名字是否正确,如果有误,需要将其更正为正确的头文件名字。如果你不确定应该包含哪个头文件,可以查看相关函数或变量的文档或者示例代码,确定正确的头文件名字。
#include+<stdio.h> #include+<stdlib.h> #include<string.h> #define+MAX_NAME+5 #define+MAX_VERTEX_NUM
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME 5
#define MAX_VERTEX_NUM 40
int main() {
// Your code here
return 0;
}
```
这是一个简单的C程序的框架,包含了头文件`stdio.h`、`stdlib.h`和`string.h`,以及定义了常量`MAX_NAME`和`MAX_VERTEX_NUM`。你可以在`// Your code here`的位置编写你的具体代码逻辑。这个程序的作用是创建一个空的C程序框架,你可以在其中添加你需要的功能。
阅读全文