OLED_Clear(); OLED_ShowChinese(0,0,0,16);//中 OLED_ShowChinese(18,0,1,16);//景 OLED_ShowChinese(36,0,2,16);//园 OLED_ShowChinese(54,0,3,16);//电 OLED_ShowChinese(72,0,4,16);//子 OLED_ShowChinese(90,0,5,16);//科 OLED_ShowChinese(108,0,6,16);//技 OLED_ShowString(8,2,"ZHONGJINGYUAN",16); delay(500);
时间: 2024-04-02 19:33:18 浏览: 252
这段代码看起来是在控制 OLED 显示屏上显示一些内容,具体来说:
- OLED_Clear() 函数用于清除 OLED 显示屏上的内容;
- 然后通过 OLED_ShowChinese() 函数分别在第 1 行、第 2 行、第 3 行、第 4 行、第 5 行、第 6 行、第 7 行显示了“中”、“景”、“园”、“电”、“子”、“科”、“技”这几个汉字;
- 最后通过 OLED_ShowString() 函数在第 3 行显示了一个字符串“ZHONGJINGYUAN”,这个字符串是由英文字母组成的,字体大小为 16 号;
- 在最后还有一个 delay() 函数,用于延迟 500 毫秒,可能是为了让显示效果更好。
相关问题
if(key==1) { //delay_ms(10);//消抖 OLED_Clear(); if(obj==1) { OLED_Clear(); OLED_ShowCHinese(0,0,30); OLED_ShowCHinese(16,0,31);//油价:30 31 OLED_ShowString(32,0,":",16); OLED_FloatNum(48,0,7.81,16); OLED_ShowCHinese(80,0,32);//元 OLED_ShowString(96,0,"/",16); OLED_ShowCHinese(112,0,40);//升 //金额: 元 35 36 OLED_ShowCHinese(0,2,35); OLED_ShowCHinese(16,2,36); OLED_ShowString(32,2,":",16); OLED_ShowCHinese(80,2,32);//元 OLED_ShowCHinese(0,4,30);//油量: 升 40 OLED_ShowCHinese(16,4,12); OLED_ShowString(32,2,":",16); OLED_ShowCHinese(80,4,40); //开始加油 OLED_ShowCHinese(0,6,37); OLED_ShowCHinese(16,6,38); OLED_ShowCHinese(32,6,23); OLED_ShowCHinese(48,6,24); }如何让该段代码不显示上一个界面的画面箭头
如果要让该段代码不显示上一个界面的画面箭头,可以在调用该函数之前先调用一个清空屏幕的函数,例如 `OLED_Clear()`。这样可以清除上一个界面的内容,然后再调用该函数以显示新的内容。例如:
```
OLED_Clear(); // 清空屏幕
if(key==1) {
// 显示新的内容
// ...
}
```
这样就可以确保每次调用该函数时都是显示新的内容,而不会有上一个界面的画面箭头残留。
u8 obj=0; if(key==3)//向下 { BEEP=0; //OLED_Clear(); while(1) { key = KEY_Scan(0); if(key==3) { obj++; if(obj>=3) { obj=0 ; } } // sprintf((char *)buff,"Working md:%4d",mode); // OLED_ShowString(8,0,buff,12); // sprintf((char *)buff,"A_Temp :%4d",A_DHT11_Temp); // OLED_ShowString(8,1,buff,12); // sprintf((char *)buff,"A_Hum :%4d",A_DHT11_Hum); // OLED_ShowString(8,2,buff,12); // sprintf((char *)buff,"A_pre :%4d",A_pre); // OLED_ShowString(8,3,buff,12); // sprintf((char *)buff,"A_gz_val :%4d",A_gz_value); // OLED_ShowString(8,4,buff,12); // sprintf((char *)buff,"A_m2_val :%4d",A_m2_value); // OLED_ShowString(8,5,buff,12); // sprintf((char *)buff,"A_m7_val :%4d",A_m7_value); // OLED_ShowString(8,6,buff,12); // sprintf((char *)buff,"A_m135_val:%4d",A_m135_value); // OLED_ShowString(8,7,buff,12); if(obj==0) { OLED_ShowString(112,0,"<",16);//: OLED_ShowCHinese(112,2,39); OLED_ShowCHinese(112,4,39); } if(obj==1) { OLED_ShowCHinese(112,0,39); OLED_ShowString(112,2,"<",16); OLED_ShowCHinese(112,4,39); } if(obj==2) { OLED_ShowCHinese(112,0,39); OLED_ShowCHinese(112,2,39); OLED_ShowString(112,4,"<",16); } if(key==4)//向上 { obj--; if(obj<0) { obj=2 ; } }如何让这段函数又能上又能下
你可以将下面的代码:
```
if(key==3) //向下
{
BEEP=0;
//OLED_Clear();
while(1)
{
key = KEY_Scan(0);
if(key==3)
{
obj++;
if(obj>=3)
{
obj=0 ;
}
}
...
}
```
改成以下的代码:
```
while(1)
{
key = KEY_Scan(0);
if(key==3) //向下
{
BEEP=0;
obj++;
if(obj>=3)
{
obj=0 ;
}
}
if(key==4) //向上
{
obj--;
if(obj<0)
{
obj=2 ;
}
}
...
}
```
这样就可以通过按键4向上选择,按键3向下选择了。注意,因为while循环里面没有延时函数,所以可能会导致程序卡死,你需要根据实际情况添加延时函数。
阅读全文