96SEO 2026-02-19 18:49 39
1;//显示哪页OLED标志位一级OLED按键可以向上向下移动

tuichudata0;//从一级点进去二级实现红绿灯功能再退出再进入保留之前的OLED页面
fstuichudata0;//从一级点进去二级实现风扇功能再退出再进入保留之前的OLED页面uint8_t
按键一作用:进行以20数值增加风扇转速如果风扇处于关闭状态则按键一按下还是0
按键二作用:进行以20数值减少风扇转速如果风扇处于关闭状态则按键一按下还是0
{switch(KeyFlag)//按键短按按下即可开始实现功能不用松手{case
KEY0_PRES://1,按键0,向下{flag;if(flag
1){Oled_clear();Oledshow1();//光标选中选择灯颜色}if(flag
2){Oled_clear();Oledshow2();//光标选中查看温度}if(flag
3){Oled_clear();Oledshow3();//光标选中风扇开关选择}if(flag
4){Oled_clear();Oledshow1();//光标选中选择灯颜色flag
KEY1_PRES://2,按键1,向上{--flag;if(flag
0){Oled_clear();Oledshow3();//光标选中风扇开关选择flag
1){Oled_clear();Oledshow1();//光标选中选择灯颜色}if(flag
2){Oled_clear();Oledshow2();//光标选中查看温度}if(flag
3){Oled_clear();Oledshow3();//光标选中风扇开关选择}if(flag
4){Oled_clear();Oledshow1();//光标选中选择灯颜色flag
1)//颜色灯二级界面从这里标志位确定更新新的界面后续添加其他一级界面确定flag其他等等{if(tuichudata
0)//从一级界面点进去二级界面之后再一次退出出来,然后第二次点进去的二级界面保留之前二级页面的状态{Oled_clear();Oledshow4();//红灯关和绿灯关}if(tuichudata
1){Oled_clear();Oledshow6();}if(tuichudata
2){Oled_clear();Oledshow8();}if(tuichudata
3){Oled_clear();Oledshow15();}if(tuichudata
4){Oled_clear();Oledshow17();}if(tuichudata
5){Oled_clear();Oledshow5();}if(tuichudata
6){Oled_clear();Oledshow14();}if(tuichudata
7){Oled_clear();Oledshow16();}uuflag1;//颜色灯标志位}if(flag
2)//查看温度二级界面从这里标志位确定更新新的界面后续添加其他一级界面确定flag其他等等{Oled_clear();Oledshow13();//温湿度模块显示数据T_flag
//温湿度标志位让按键二确认之后置1以便在主函数循环里面2s检测一次DHT11模块因为按键按下松开后只能检测一次uuflag2;//温湿度标志位}if(flag
3)//风扇开关选择二级界面从这里标志位确定更新新的界面后续添加其他一级界面确定flag其他等等{if(fstuichudata
0)//从一级界面点进去二级界面之后再一次退出出来,然后第二次点进去的二级界面保留之前二级页面的状态{Oled_clear();Oledshow9();//风扇关和转速数值fsclose
1){Oled_clear();Oledshow10();//风扇开初始转速100fsclose
3){Oled_clear();Oledshow11();//风扇开转速Oled_8_16A(48,2,Speed/100%10);Oled_8_16A(56,2,Speed/10%10);Oled_8_16A(64,2,Speed/1%10);fsclose
4){Oled_clear();Oledshow12();//风扇关转速0fsclose
5)//{Oled_clear();Oledshow11();//风扇开转速Oled_8_16A(48,2,Speed/100%10);Oled_8_16A(56,2,Speed/10%10);Oled_8_16A(64,2,Speed/1%10);fsclose
6){Oled_clear();Oledshow12();//风扇关转速0fsclose
2;//风扇开着}uuflag3;//风扇开关标志位}KeyFlag
1)//选择灯颜色二级界面功能后续可添加其他二级界面用uuflag其他判断{switch(KeyFlag){case
KEY0_PRES://1,按键0,开绿灯{if(LEDGreenflag0
红灯关//*绿灯开(颜色反转)Oledshow6();LED_Green0;LEDGreenflag;LLflag1;//绿灯开tuichudata
1;//从一级界面点进去二级界面之后再一次退出出来,然后第二次点进去的二级界面保留之前二级页面的状态}else
红灯关//*绿灯关(颜色反转)Oledshow8();LED_Green
2;//从一级界面点进去二级界面之后再一次退出出来,然后第二次点进去的二级界面保留之前二级页面的状态}if(LEDGreenflag0
红灯开//*绿灯开(颜色反转)Oledshow15();LED_Green0;LEDGreenflag1;LLflag1;//绿灯开tuichudata
3;//从一级界面点进去二级界面之后再一次退出出来,然后第二次点进去的二级界面保留之前二级页面的状态}else
红灯开//*绿灯关(颜色反转)Oledshow17();LED_Green
4;//从一级界面点进去二级界面之后再一次退出出来,然后第二次点进去的二级界面保留之前二级页面的状态}KeyFlag
KEY1_PRES://2,按键1//开红灯{if(LEDRedflag
0;LEDRedflag;PPflag1;//红灯开tuichudata
5;//从一级界面点进去二级界面之后再一次退出出来,然后第二次点进去的二级界面保留之前二级页面的状态}else
1;LEDRedflag0;PPflag0;//红灯关tuichudata
0;//从一级界面点进去二级界面之后再一次退出出来,然后第二次点进去的二级界面保留之前二级页面的状态}if(LEDRedflag
0;LEDRedflag1;PPflag1;//红灯开tuichudata
6;//从一级界面点进去二级界面之后再一次退出出来,然后第二次点进去的二级界面保留之前二级页面的状态}else
1;LEDRedflag0;PPflag0;//红灯关tuichudata
7;//从一级界面点进去二级界面之后再一次退出出来,然后第二次点进去的二级界面保留之前二级页面的状态}KeyFlag
Oled_clear();Oledshow1();//一级界面flag
2)//查看温度二级界面功能后续可添加其他二级界面用uuflag其他判断{switch(KeyFlag){case
Oled_clear();Oledshow18();//一级界面flag
3)//风扇开关选择二级界面功能后续可添加其他二级界面用uuflag其他判断{switch(KeyFlag){case
0){Oled_clear();Oledshow10();//风扇开初始转速100Motor_SetSpeed(100);fsflag;fsclose
;//从一级界面点进去二级界面之后再一次退出出来,然后第二次点进去的二级界面保留之前二级页面的状态}else
1)//这里不能用if否则上面的fsflag会立马进入这个条件{Oled_clear();Oledshow9();//风扇关初始转速0Motor_SetSpeed(0);fsflag
;//从一级界面点进去二级界面之后再一次退出出来,然后第二次点进去的二级界面保留之前二级页面的状态}KeyFlag
1)//如果第一行的风扇开着这里就可以不断调节转速{Oled_clear();Oledshow11();//风扇开转速fsflag
1;//让点按键一的时候增加风扇转速如果点按键零可以直接关掉风扇Speed
20;}Motor_SetSpeed(Speed);Oled_8_16A(48,2,Speed/100%10);Oled_8_16A(56,2,Speed/10%10);Oled_8_16A(64,2,Speed/1%10);fstuichudata
3;//从一级界面点进去二级界面之后再一次退出出来,然后第二次点进去的二级界面保留之前二级页面的状态}else
2)//如果第一行的风扇关着这里就调节转速则无反应{Oled_clear();Oledshow12();//风扇关转速0Motor_SetSpeed(0);fstuichudata
4;//从一级界面点进去二级界面之后再一次退出出来,然后第二次点进去的二级界面保留之前二级页面的状态}KeyFlag
1)//如果第一行的风扇开着这里就可以不断调节转速{Oled_clear();Oledshow11();//风扇开转速fsflag
1;//让点按键一的时候增加风扇转速如果点按键零可以直接关掉风扇Speed
100;}Motor_SetSpeed(Speed);Oled_8_16A(48,2,Speed/100%10);Oled_8_16A(56,2,Speed/10%10);Oled_8_16A(64,2,Speed/1%10);fstuichudata
5;//从一级界面点进去二级界面之后再一次退出出来,然后第二次点进去的二级界面保留之前二级页面的状态}else
2)//如果第一行的风扇关着这里就调节转速则无反应{Oled_clear();Oledshow12();//风扇关转速0Motor_SetSpeed(0);fstuichudata
6;//从一级界面点进去二级界面之后再一次退出出来,然后第二次点进去的二级界面保留之前二级页面的状态}KeyFlag
KEY3_PRES://4,按键3,退出{Oled_clear();Oledshow3();//一级界面flag
{Timer_Init();//1msLED_Init();OLED_Init();Motor_Init();Key_Init();Oled_clear();Oledshow1();while(1){Key_Show1();//一级界面Key_show2();//二级界面if(T_flag
2000)//2s检测一次,温湿度{if(DHT_Read()
1){//湿度数据整数部分Oled_8_16(48,0,datas[0]/10);//十位Oled_8_16(56,0,datas[0]%10);//个位//湿度符号.Oled_8_16(64,0,13);//湿度数据小数部分Oled_8_16(72,0,datas[1]/10);Oled_8_16(80,0,datas[1]%10);//温度数据整数部分Oled_8_16(48,2,datas[2]/10);Oled_8_16(56,2,datas[2]%10);//温度符号.Oled_8_16(64,2,13);//温度数据小数部分Oled_8_16(72,2,datas[3]/10);Oled_8_16(80,2,datas[3]%10);}}}if(BEEP_TIME500)//500ms响一次蜂鸣器不受按键影响,这里必须写大于,因为OLED按的某个时刻有可能计数值大于500{Beep
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,
GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode
GPIO_Mode_Out_OD;GPIO_InitStructure.GPIO_Speed
GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Pin
GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin
GPIO_InitStructure);OLED_W_SCL(1);OLED_W_SDA(1);
{OLED_W_SDA(1);OLED_W_SCL(1);OLED_W_SDA(0);OLED_W_SCL(0);
{OLED_W_SDA(0);OLED_W_SCL(1);OLED_W_SDA(1);
i));OLED_W_SCL(1);OLED_W_SCL(0);}OLED_W_SCL(1);
{OLED_I2C_Start();OLED_I2C_SendByte(0x78);
//写命令OLED_I2C_SendByte(Command);
{OLED_I2C_Start();OLED_I2C_SendByte(0x78);
//写数据OLED_I2C_SendByte(Data);OLED_I2C_Stop();
y);//页地址从0xB0开始(一共8页)OLED_WriteCommand(((x
0x10);//高四位OLED_WriteCommand((x
i,j;for(i0;i8;i)//PAGE0-PAGE7都给0{OLED_WriteCommand(0xB0i);//PAGE0-PAGE7OLED_WriteCommand(0x00);OLED_WriteCommand(0x10);for(j0;j128;j){OLED_WriteData(0);}}
//端口初始化OLED_WriteCommand(0xAE);
//设置显示时钟分频比/振荡器频率OLED_WriteCommand(0x80);OLED_WriteCommand(0xA8);
//设置多路复用率OLED_WriteCommand(0x3F);OLED_WriteCommand(0xD3);
//设置显示偏移OLED_WriteCommand(0x00);OLED_WriteCommand(0x40);
//设置显示开始行OLED_WriteCommand(0xA1);
0xA0左右反置OLED_WriteCommand(0xC8);
0xC0上下反置OLED_WriteCommand(0xDA);
//设置COM引脚硬件配置OLED_WriteCommand(0x12);OLED_WriteCommand(0x81);
//设置对比度控制OLED_WriteCommand(0xCF);OLED_WriteCommand(0xD9);
//设置预充电周期OLED_WriteCommand(0xF1);OLED_WriteCommand(0xDB);
//设置VCOMH取消选择级别OLED_WriteCommand(0x30);OLED_WriteCommand(0xA4);
//设置整个显示打开/关闭OLED_WriteCommand(0xA6);
//设置正常/倒转显示OLED_WriteCommand(0x8D);
//设置充电泵OLED_WriteCommand(0x14);OLED_WriteCommand(0xAF);
Oled_8_16_R(32,0,1);例子2:第二行显示两个中文
//16*16256位8位为一个字节所以256/832个字节一个汉字就是32字节所以这里adder32*N的意思就是N代表第几个汉字比如第0个就是小然后一开始就是数组从0开始Oled_setpos(x,y);
//汉字的左上部分{OLED_WriteData(F16_16[adder]);
//当第一个汉字的时候32*00所以F16*16[adder]的adder从0开始然后从0开始到7就是左上半部分adder;}Oled_setpos(x,y1);
//汉字的左下部分{OLED_WriteData(F16_16[adder8]);//之后adder的8-15是右上部分所以想取左下部分就8adder;}
//16*16256位8位为一个字节所以256/832个字节一个汉字就是32字节所以这里adder32*N的意思就是N代表第几个汉字比如第0个就是小,然后一开始就是数组从8开始Oled_setpos(x,y);
//汉字的右上部分{OLED_WriteData(F16_16[adder]);
//当第一个汉字的时候32*00所以F16*16[adder]的adder从8开始然后从8开始到15就是右上半部分adder;}Oled_setpos(x,y1);
//汉字的右下部分{OLED_WriteData(F16_16[adder8]);//之后adder的16-23是左下部分所以想取右下部分就8adder;}
功能:显示数字英文字符OLED一共可以显示16列数字英文字符4行数字英文字符
每个数字英文字符每行隔开数值2,,从0开始例子1:第一行显示一个字符Oled_8_16(0,0,11);例子2:第二行显示一个字符Oled_8_16(0,2,11);*/
adder;}Oled_setpos(x,y1);for(i0;i8;i)
功能://显示数字英文字符,颜色反转OLED一共可以显示16列数字英文字符4行数字英文字符
每个数字英文字符每行隔开数值2,,从0开始例子1:第一行显示一个字符Oled_8_16A(0,0,11);例子2:第二行显示一个字符Oled_8_16A(0,2,11);*/
{OLED_WriteData(F8_16A[adder]);
adder;}Oled_setpos(x,y1);for(i0;i8;i)
{OLED_WriteData(F8_16A[adder]);
header/*-------------------------此处添加所要加入的中文字库--------------------------*/
//字模提取app—参数设置:其他选项纵向取模字节倒序保留任何时候都加0
0xBF,0xBF,0xBD,0x33,0xFF,0xAF,0xB1,0x37,0xB7,0x80,0x37,0xB7,0xB7,0xBF,0xFF,0xFF,//0
0xFF,0xBF,0xDF,0xE0,0xDF,0xAF,0xB3,0xBC,0xBF,0xBF,0xB0,0xAF,0xAF,0xA3,0xBF,0xFF,/*--
0xEF,0xEF,0x00,0xEF,0xFF,0x7D,0x79,0xB5,0xAD,0x5D,0xAD,0xB5,0x79,0x7F,0x7F,0xFF,//1
0xBD,0x7D,0x80,0xFE,0xFF,0xEF,0xED,0xED,0xED,0x00,0xED,0xED,0xED,0xEF,0xFF,0xFF,/*--
0x7F,0x8F,0xFF,0x00,0xDF,0xEF,0xFB,0xFB,0xFB,0xFB,0x03,0xFB,0xFB,0xFB,0xFB,0xFF,//2
0x7F,0x9F,0xE7,0xF8,0xF7,0xCF,0xFF,0xFF,0xBF,0x7F,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,/*--
0xFF,0x1B,0xD3,0xCA,0x59,0x8B,0xD3,0xDB,0xFD,0x0D,0xE5,0x29,0xED,0x0D,0xFD,0xFF,//3
0xBF,0xC0,0x7F,0x76,0xBB,0xDD,0xEE,0xF7,0x7F,0xB0,0xCF,0xF0,0xEF,0xD0,0x3F,0xFF,/*--
0xDF,0xEF,0x17,0xDB,0xD8,0xDB,0xDB,0x1B,0xDB,0xCB,0xD3,0xDF,0x1F,0xFF,0xFF,0xFF,//4
0xFF,0xFF,0xC0,0xBD,0xBD,0xBD,0xBD,0xBC,0xBD,0xBD,0xBD,0xBD,0xBC,0xBF,0x87,0xFF,/*--
0xBF,0xBB,0xDB,0x5B,0x6B,0x73,0x7B,0x00,0x7B,0x73,0x6B,0x5B,0xDB,0xBB,0xBF,0xFF,//5
0xBF,0xBF,0xBF,0xA0,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xA0,0xBF,0xBF,0xBF,0xFF,/*--
0xDF,0xDD,0xD5,0xD5,0x55,0x95,0xC5,0xD1,0xD6,0xD6,0xD6,0xD6,0xD6,0xDF,0xDF,0xFF,//6
0xF7,0xFB,0xFD,0xFE,0x00,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x00,0xFF,0xFF,0xFF,0xFF,/*--
0xEF,0x9F,0xFD,0x73,0xFF,0xFF,0x01,0x6D,0x6D,0x6D,0x6D,0x6D,0x01,0xFF,0xFF,0xFF,//7
0xFB,0xFB,0x81,0xFE,0xBF,0x81,0xBD,0xBD,0x81,0xBD,0x81,0xBD,0xBD,0x81,0xBF,0xFF,/*--
0xFF,0xFF,0x03,0xDB,0xDB,0xDB,0x03,0xDA,0xD9,0xDB,0x03,0xDB,0xDB,0xDB,0xFB,0xFF,//8
0xBF,0xCF,0x70,0x7F,0x7B,0xB3,0xAA,0xDA,0xDA,0xDA,0xAA,0xB3,0x7F,0x7F,0x7F,0xFF,/*--
0xFF,0xFF,0x01,0xFD,0xED,0xDD,0x3D,0xFD,0x3D,0xCD,0xFD,0x01,0xFF,0xFF,0xFF,0xFF,//9
0x7F,0x9F,0xE0,0xFF,0xDF,0xEF,0xF3,0xFC,0xF3,0xCF,0xFF,0xF0,0xCF,0xBF,0x07,0xFF,/*--
0xFF,0xFF,0x03,0xDB,0xDB,0xDB,0xDA,0xD9,0xDB,0xDB,0xDB,0xDB,0xDB,0xC3,0xFF,0xFF,//10
0xBF,0xCF,0xF0,0xDE,0xEA,0xB6,0x7E,0x80,0xFF,0xDE,0xEA,0xB6,0x7E,0x80,0xFF,0xFF,/*--
0x7F,0x7D,0x7D,0x7D,0x01,0x7D,0x7D,0x7D,0x7D,0x7D,0x01,0x7D,0x7D,0x7D,0x7F,0xFF,//11
0xFF,0x7F,0xBF,0xCF,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,/*--
0xFF,0xFF,0xEF,0xEE,0xE9,0xEF,0xEF,0x0F,0xEF,0xEF,0xEB,0xEC,0xEF,0xFF,0xFF,0xFF,//12
0x7E,0x7E,0xBE,0xBE,0xDE,0xEE,0xF2,0xFC,0xF2,0xEE,0xDE,0xBE,0xBE,0x7E,0x7E,0xFF,/*--
0xBF,0xBF,0xBD,0x33,0xFF,0xAF,0xB1,0x37,0xB7,0x80,0x37,0xB7,0xB7,0xBF,0xFF,0xFF,//13
0xFF,0xBF,0xDF,0xE0,0xDF,0xAF,0xB3,0xBC,0xBF,0xBF,0xB0,0xAF,0xAF,0xA3,0xBF,0xFF,/*--
0xEF,0xEF,0x00,0xEF,0xFF,0x7D,0x79,0xB5,0xAD,0x5D,0xAD,0xB5,0x79,0x7F,0x7F,0xFF,//14
0xBD,0x7D,0x80,0xFE,0xFF,0xEF,0xED,0xED,0xED,0x00,0xED,0xED,0xED,0xEF,0xFF,0xFF,/*--
0xDF,0xCF,0x53,0x9C,0xDF,0xE7,0xFF,0xFB,0xFB,0xFB,0x03,0xFB,0xFB,0xFB,0xFF,0xFF,//15
0xDD,0x98,0xDD,0xED,0xED,0xED,0xBF,0xBF,0xBF,0xBF,0x80,0xBF,0xBF,0xBF,0xBF,0xFF,/*--
0x7F,0x8F,0xFF,0x00,0xDF,0xEF,0xFB,0xFB,0xFB,0xFB,0x03,0xFB,0xFB,0xFB,0xFB,0xFF,//16
0x7F,0x9F,0xE7,0xF8,0xF7,0xCF,0xFF,0xFF,0xBF,0x7F,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,/*--
0xFF,0xFF,0xEF,0xEE,0xE9,0xEF,0xEF,0x0F,0xEF,0xEF,0xEB,0xEC,0xEF,0xFF,0xFF,0xFF,//17
0x7E,0x7E,0xBE,0xBE,0xDE,0xEE,0xF2,0xFC,0xF2,0xEE,0xDE,0xBE,0xBE,0x7E,0x7E,0xFF,/*--
0x7F,0x7D,0x7D,0x7D,0x01,0x7D,0x7D,0x7D,0x7D,0x7D,0x01,0x7D,0x7D,0x7D,0x7F,0xFF,//18
0xFF,0x7F,0xBF,0xCF,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,/*--
0xDF,0xCF,0x53,0x9C,0xCF,0xFF,0x7F,0x6D,0x6D,0x6D,0x6D,0x6D,0x01,0x7F,0x7F,0xFF,//19
0xDD,0x98,0xDD,0xED,0xED,0xFF,0xDD,0xEB,0xB7,0x7B,0x80,0xFB,0xF7,0xEB,0xDD,0xFF,/*--
0x7F,0x8F,0xFF,0x00,0xDF,0xEF,0xFB,0xFB,0xFB,0xFB,0x03,0xFB,0xFB,0xFB,0xFB,0xFF,//20
0x7F,0x9F,0xE7,0xF8,0xF7,0xCF,0xFF,0xFF,0xBF,0x7F,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,//字模提取app—参数设置:其他选项纵向取模字节倒序保留任何时候都加0
0x40,0x40,0x42,0xCC,0x00,0x50,0x4E,0xC8,0x48,0x7F,0xC8,0x48,0x48,0x40,0x00,0x00,//21
0x00,0x40,0x20,0x1F,0x20,0x50,0x4C,0x43,0x40,0x40,0x4F,0x50,0x50,0x5C,0x40,0x00,/*--
0x10,0x10,0xFF,0x10,0x00,0x82,0x86,0x4A,0x52,0xA2,0x52,0x4A,0x86,0x80,0x80,0x00,//22
0x42,0x82,0x7F,0x01,0x00,0x10,0x12,0x12,0x12,0xFF,0x12,0x12,0x12,0x10,0x00,0x00,/*--
0x80,0x70,0x00,0xFF,0x20,0x10,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x00,//23
0x80,0x60,0x18,0x07,0x08,0x30,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,/*--
0x00,0xE4,0x2C,0x35,0xA6,0x74,0x2C,0x24,0x02,0xF2,0x1A,0xD6,0x12,0xF2,0x02,0x00,//24
0x40,0x3F,0x80,0x89,0x44,0x22,0x11,0x08,0x80,0x4F,0x30,0x0F,0x10,0x2F,0xC0,0x00,/*--
0x20,0x10,0xE8,0x24,0x27,0x24,0x24,0xE4,0x24,0x34,0x2C,0x20,0xE0,0x00,0x00,0x00,//25
0x00,0x00,0x3F,0x42,0x42,0x42,0x42,0x43,0x42,0x42,0x42,0x42,0x43,0x40,0x78,0x00,/*--
0x40,0x44,0x24,0xA4,0x94,0x8C,0x84,0xFF,0x84,0x8C,0x94,0xA4,0x24,0x44,0x40,0x00,//26
0x40,0x40,0x40,0x5F,0x4A,0x4A,0x4A,0x4A,0x4A,0x4A,0x4A,0x5F,0x40,0x40,0x40,0x00,/*--
0x20,0x22,0x2A,0x2A,0xAA,0x6A,0x3A,0x2E,0x29,0x29,0x29,0x29,0x29,0x20,0x20,0x00,//27
0x08,0x04,0x02,0x01,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0x00,0x00,0x00,0x00,/*--
0x10,0x60,0x02,0x8C,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,//28
0x04,0x04,0x7E,0x01,0x40,0x7E,0x42,0x42,0x7E,0x42,0x7E,0x42,0x42,0x7E,0x40,0x00,/*--
0x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0x25,0x26,0x24,0xFC,0x24,0x24,0x24,0x04,0x00,//29
0x40,0x30,0x8F,0x80,0x84,0x4C,0x55,0x25,0x25,0x25,0x55,0x4C,0x80,0x80,0x80,0x00,/*--
0x00,0x00,0xFE,0x02,0x12,0x22,0xC2,0x02,0xC2,0x32,0x02,0xFE,0x00,0x00,0x00,0x00,//30
0x80,0x60,0x1F,0x00,0x20,0x10,0x0C,0x03,0x0C,0x30,0x00,0x0F,0x30,0x40,0xF8,0x00,/*--
0x00,0x00,0xFC,0x24,0x24,0x24,0x25,0x26,0x24,0x24,0x24,0x24,0x24,0x3C,0x00,0x00,//31
0x40,0x30,0x0F,0x21,0x15,0x49,0x81,0x7F,0x00,0x21,0x15,0x49,0x81,0x7F,0x00,0x00,/*--
0x80,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x80,0x00,//32
0x00,0x80,0x40,0x30,0x0F,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,/*--
0x00,0x00,0x10,0x11,0x16,0x10,0x10,0xF0,0x10,0x10,0x14,0x13,0x10,0x00,0x00,0x00,//33
0x81,0x81,0x41,0x41,0x21,0x11,0x0D,0x03,0x0D,0x11,0x21,0x41,0x41,0x81,0x81,0x00,/*--
0x40,0x40,0x42,0xCC,0x00,0x50,0x4E,0xC8,0x48,0x7F,0xC8,0x48,0x48,0x40,0x00,0x00,//34
0x00,0x40,0x20,0x1F,0x20,0x50,0x4C,0x43,0x40,0x40,0x4F,0x50,0x50,0x5C,0x40,0x00,/*--
0x10,0x10,0xFF,0x10,0x00,0x82,0x86,0x4A,0x52,0xA2,0x52,0x4A,0x86,0x80,0x80,0x00,//35
0x42,0x82,0x7F,0x01,0x00,0x10,0x12,0x12,0x12,0xFF,0x12,0x12,0x12,0x10,0x00,0x00,/*--
0x20,0x30,0xAC,0x63,0x20,0x18,0x00,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x00,0x00,//36
0x22,0x67,0x22,0x12,0x12,0x12,0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x40,0x00,/*--
0x80,0x70,0x00,0xFF,0x20,0x10,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x00,//37
0x80,0x60,0x18,0x07,0x08,0x30,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,/*--
0x00,0x00,0x10,0x11,0x16,0x10,0x10,0xF0,0x10,0x10,0x14,0x13,0x10,0x00,0x00,0x00,//38
0x81,0x81,0x41,0x41,0x21,0x11,0x0D,0x03,0x0D,0x11,0x21,0x41,0x41,0x81,0x81,0x00,/*--
0x80,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x80,0x00,//39
0x00,0x80,0x40,0x30,0x0F,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,/*--
0x20,0x30,0xAC,0x63,0x30,0x00,0x80,0x92,0x92,0x92,0x92,0x92,0xFE,0x80,0x80,0x00,//40
0x22,0x67,0x22,0x12,0x12,0x00,0x22,0x14,0x48,0x84,0x7F,0x04,0x08,0x14,0x22,0x00,/*--
0x80,0x70,0x00,0xFF,0x20,0x10,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x00,//41
0x80,0x60,0x18,0x07,0x08,0x30,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,//字模提取app—参数设置:其他选项纵向取模字节倒序保留任何时候都加0
0xFF,0xFF,0x01,0xFD,0xED,0xDD,0x3D,0xFD,0x3D,0xCD,0xFD,0x01,0xFF,0xFF,0xFF,0xFF,//42
0x7F,0x9F,0xE0,0xFF,0xDF,0xEF,0xF3,0xFC,0xF3,0xCF,0xFF,0xF0,0xCF,0xBF,0x07,0xFF,/*--
0xFF,0xFF,0x03,0xDB,0xDB,0xDB,0xDA,0xD9,0xDB,0xDB,0xDB,0xDB,0xDB,0xC3,0xFF,0xFF,//43
0xBF,0xCF,0xF0,0xDE,0xEA,0xB6,0x7E,0x80,0xFF,0xDE,0xEA,0xB6,0x7E,0x80,0xFF,0xFF,/*--
0x37,0x47,0x70,0x17,0x77,0x77,0xBF,0xB7,0xB7,0x17,0xA0,0xB7,0xB7,0xB7,0xBF,0xFF,//44
0xF7,0xE7,0xF7,0x00,0xFB,0xFB,0xFF,0xFD,0xF4,0xED,0xDD,0x2D,0xF5,0xF9,0xFF,0xFF,/*--
0xBF,0xBF,0xBD,0x33,0xFF,0xFB,0x0B,0x6B,0x6B,0x00,0x6B,0x6B,0x0B,0xFB,0xFF,0xFF,//45
0xFF,0xBF,0xDF,0xE0,0xDF,0xB7,0xBB,0xBD,0xBE,0xA0,0xBE,0xBD,0xBB,0xB7,0xBF,0xFF,//字模提取app—参数设置:其他选项纵向取模字节倒序保留任何时候都加0
0x00,0x00,0xFE,0x02,0x12,0x22,0xC2,0x02,0xC2,0x32,0x02,0xFE,0x00,0x00,0x00,0x00,//46
0x80,0x60,0x1F,0x00,0x20,0x10,0x0C,0x03,0x0C,0x30,0x00,0x0F,0x30,0x40,0xF8,0x00,/*--
0x00,0x00,0xFC,0x24,0x24,0x24,0x25,0x26,0x24,0x24,0x24,0x24,0x24,0x3C,0x00,0x00,//47
0x40,0x30,0x0F,0x21,0x15,0x49,0x81,0x7F,0x00,0x21,0x15,0x49,0x81,0x7F,0x00,0x00,/*--
0xC8,0xB8,0x8F,0xE8,0x88,0x88,0x40,0x48,0x48,0xE8,0x5F,0x48,0x48,0x48,0x40,0x00,//48
0x08,0x18,0x08,0xFF,0x04,0x04,0x00,0x02,0x0B,0x12,0x22,0xD2,0x0A,0x06,0x00,0x00,/*--
0x40,0x40,0x42,0xCC,0x00,0x04,0xF4,0x94,0x94,0xFF,0x94,0x94,0xF4,0x04,0x00,0x00,//49
0x00,0x40,0x20,0x1F,0x20,0x48,0x44,0x42,0x41,0x5F,0x41,0x42,0x44,0x48,0x40,0x00,/*--
0x10,0x60,0x02,0x8C,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,//50
0x04,0x04,0x7E,0x01,0x44,0x48,0x50,0x7F,0x40,0x40,0x7F,0x50,0x48,0x44,0x40,0x00,/*--
0x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0x25,0x26,0x24,0xFC,0x24,0x24,0x24,0x04,0x00,//51
0x40,0x30,0x8F,0x80,0x84,0x4C,0x55,0x25,0x25,0x25,0x55,0x4C,0x80,0x80,0x80,0x00,/*--
0x10,0x60,0x02,0x8C,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,//52
0x04,0x04,0x7E,0x01,0x40,0x7E,0x42,0x42,0x7E,0x42,0x7E,0x42,0x42,0x7E,0x40,0x00,/*--
0x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0x25,0x26,0x24,0xFC,0x24,0x24,0x24,0x04,0x00,//53
0x40,0x30,0x8F,0x80,0x84,0x4C,0x55,0x25,0x25,0x25,0x55,0x4C,0x80,0x80,0x80,0x00,};
/*-------------------------此处添加所要加入的英文符号数字字库--------------------------*/
//字模提取app—参数设置:其他选项纵向取模字节倒序保留任何时候都加0
0x00,0x00,0xF0,0xF8,0x08,0x68,0xF8,0xF0,0x00,0x00,0x07,0x0F,0x0B,0x08,0x0F,0x07,//数字0,00x00,0x20,0x20,0x30,0xF8,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00,//数字1,10x00,0x30,0x38,0x08,0x88,0xF8,0x70,0x00,0x00,0x0C,0x0E,0x0B,0x09,0x08,0x08,0x00,0x00,0x30,0x38,0x88,0x88,0xF8,0x70,0x00,0x00,0x06,0x0E,0x08,0x08,0x0F,0x07,0x00,0x00,0x00,0xF8,0xF8,0x00,0xE0,0xE0,0x00,0x00,0x03,0x03,0x02,0x02,0x0F,0x0F,0x02,0x00,0xF8,0xF8,0x88,0x88,0x88,0x08,0x00,0x00,0x08,0x08,0x08,0x0C,0x07,0x03,0x00,0x00,0xC0,0xE0,0x78,0x58,0xC8,0x80,0x00,0x00,0x07,0x0F,0x08,0x08,0x0F,0x07,0x00,0x00,0x08,0x08,0x88,0xE8,0x78,0x18,0x00,0x00,0x00,0x0E,0x0F,0x01,0x00,0x00,0x00,0x00,0x70,0xF8,0xC8,0x88,0xF8,0x70,0x00,0x00,0x07,0x0F,0x08,0x09,0x0F,0x07,0x00,0x00,0xF0,0xF8,0x08,0x08,0xF8,0xF0,0x00,0x00,0x00,0x09,0x0D,0x0F,0x03,0x01,0x00,//数字9,9/*--
0x00,0x80,0xA0,0xE0,0xC0,0xE0,0xA0,0x80,0x00,0x00,0x02,0x03,0x01,0x03,0x02,0x00,//10/*--
0x00,0x00,0x00,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x0C,0x00,0x00,//11/*--
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//12/*--
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x0C,0x00,0x00,//13};/*-------------------------此处添加所要加入的英文符号数字字库,颜色反转--------------------------*/
//字模提取app—参数设置:其他选项纵向取模字节倒序保留任何时候都加0
0xFF,0xFF,0x0F,0x07,0xF7,0x97,0x07,0x0F,0xFF,0xFF,0xF8,0xF0,0xF4,0xF7,0xF0,0xF8,/*--
0xFF,0xDF,0xDF,0xCF,0x07,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0xF0,0xFF,0xFF,/*--
0xFF,0xCF,0xC7,0xF7,0x77,0x07,0x8F,0xFF,0xFF,0xF3,0xF1,0xF4,0xF6,0xF7,0xF7,0xFF,/*--
0xFF,0xCF,0xC7,0x77,0x77,0x07,0x8F,0xFF,0xFF,0xF9,0xF1,0xF7,0xF7,0xF0,0xF8,0xFF,/*--
0xFF,0xFF,0x07,0x07,0xFF,0x1F,0x1F,0xFF,0xFF,0xFC,0xFC,0xFD,0xFD,0xF0,0xF0,0xFD,/*--
0xFF,0x07,0x07,0x77,0x77,0x77,0xF7,0xFF,0xFF,0xF7,0xF7,0xF7,0xF3,0xF8,0xFC,0xFF,/*--
0xFF,0x3F,0x1F,0x87,0xA7,0x37,0x7F,0xFF,0xFF,0xF8,0xF0,0xF7,0xF7,0xF0,0xF8,0xFF,/*--
0xFF,0xF7,0xF7,0x77,0x17,0x87,0xE7,0xFF,0xFF,0xFF,0xF1,0xF0,0xFE,0xFF,0xFF,0xFF,/*--
0xFF,0x8F,0x07,0x37,0x77,0x07,0x8F,0xFF,0xFF,0xF8,0xF0,0xF7,0xF6,0xF0,0xF8,0xFF,/*--
0xFF,0x0F,0x07,0xF7,0xF7,0x07,0x0F,0xFF,0xFF,0xFF,0xF6,0xF2,0xF0,0xFC,0xFE,0xFF,/*--
0xFF,0xFF,0xFF,0x9F,0x9F,0x9F,0xFF,0xFF,0xFF,0xFF,0xFF,0xF3,0xF3,0xF3,0xFF,0xFF,//10};
{OLED_WriteCommand(0x2E);//关闭滚动OLED_WriteCommand(0x26);//向右滚动OLED_WriteCommand(0x00);//A:固定指令0OLED_WriteCommand(0x00);//B:起始页0OLED_WriteCommand(0x07);//C:刷新帧OLED_WriteCommand(0x07);//D:结束页OLED_WriteCommand(0x00);//虚拟字节OLED_WriteCommand(0xFF);//虚拟字节Oled_8_16(0,0,10);//字符*//选Oled_8_16_L(8,0,0);Oled_8_16_R(16,0,0);//择Oled_8_16_L(24,0,1);Oled_8_16_R(32,0,1);//灯Oled_8_16_L(40,0,2);Oled_8_16_R(48,0,2);//颜
Oled_8_16_L(56,0,3);Oled_8_16_R(64,0,3);//色Oled_8_16_L(72,0,4);Oled_8_16_R(80,0,4);//查Oled_8_16_L(8,2,26);Oled_8_16_R(16,2,26);//看Oled_8_16_L(24,2,27);Oled_8_16_R(32,2,27);//温Oled_8_16_L(40,2,28);Oled_8_16_R(48,2,28);//度Oled_8_16_L(56,2,29);Oled_8_16_R(64,2,29);//风Oled_8_16_L(8,4,30);Oled_8_16_R(16,4,30);//扇Oled_8_16_L(24,4,31);Oled_8_16_R(32,4,31);//开Oled_8_16_L(40,4,32);Oled_8_16_R(48,4,32);//关Oled_8_16_L(56,4,33);Oled_8_16_R(64,4,33);//选Oled_8_16_L(72,4,34);Oled_8_16_R(80,4,34);//择Oled_8_16_L(88,4,35);Oled_8_16_R(96,4,35);}//初始一级界面
{OLED_WriteCommand(0x2E);//关闭滚动OLED_WriteCommand(0x26);//向右滚动OLED_WriteCommand(0x00);//A:固定指令0OLED_WriteCommand(0x00);//B:起始页0OLED_WriteCommand(0x07);//C:刷新帧OLED_WriteCommand(0x07);//D:结束页OLED_WriteCommand(0x00);//虚拟字节OLED_WriteCommand(0xFF);//虚拟字节Oled_8_16(0,2,10);//字符*//选Oled_8_16_L(8,0,21);Oled_8_16_R(16,0,21);//择Oled_8_16_L(24,0,22);Oled_8_16_R(32,0,22);//灯Oled_8_16_L(40,0,23);Oled_8_16_R(48,0,23);//颜
Oled_8_16_L(56,0,24);Oled_8_16_R(64,0,24);//色Oled_8_16_L(72,0,25);Oled_8_16_R(80,0,25);//查Oled_8_16_L(8,2,5);Oled_8_16_R(16,2,5);//看Oled_8_16_L(24,2,6);Oled_8_16_R(32,2,6);//温Oled_8_16_L(40,2,7);Oled_8_16_R(48,2,7);//度Oled_8_16_L(56,2,8);Oled_8_16_R(64,2,8);//风Oled_8_16_L(8,4,30);Oled_8_16_R(16,4,30);//扇Oled_8_16_L(24,4,31);Oled_8_16_R(32,4,31);//开Oled_8_16_L(40,4,32);Oled_8_16_R(48,4,32);//关Oled_8_16_L(56,4,33);Oled_8_16_R(64,4,33);//选Oled_8_16_L(72,4,34);Oled_8_16_R(80,4,34);//择Oled_8_16_L(88,4,35);Oled_8_16_R(96,4,35);}//初始一级界面
{OLED_WriteCommand(0x2E);//关闭滚动OLED_WriteCommand(0x26);//向右滚动OLED_WriteCommand(0x00);//A:固定指令0OLED_WriteCommand(0x00);//B:起始页0OLED_WriteCommand(0x07);//C:刷新帧OLED_WriteCommand(0x07);//D:结束页OLED_WriteCommand(0x00);//虚拟字节OLED_WriteCommand(0xFF);//虚拟字节Oled_8_16(0,4,10);//字符*//选Oled_8_16_L(8,0,21);Oled_8_16_R(16,0,21);//择Oled_8_16_L(24,0,22);Oled_8_16_R(32,0,22);//灯Oled_8_16_L(40,0,23);Oled_8_16_R(48,0,23);//颜
Oled_8_16_L(56,0,24);Oled_8_16_R(64,0,24);//色Oled_8_16_L(72,0,25);Oled_8_16_R(80,0,25);//查Oled_8_16_L(8,2,26);Oled_8_16_R(16,2,26);//看Oled_8_16_L(24,2,27);Oled_8_16_R(32,2,27);//温Oled_8_16_L(40,2,28);Oled_8_16_R(48,2,28);//度Oled_8_16_L(56,2,29);Oled_8_16_R(64,2,29);//风Oled_8_16_L(8,4,9);Oled_8_16_R(16,4,9);//扇Oled_8_16_L(24,4,10);Oled_8_16_R(32,4,10);//开Oled_8_16_L(40,4,11);Oled_8_16_R(48,4,11);//关Oled_8_16_L(56,4,12);Oled_8_16_R(64,4,12);//选Oled_8_16_L(72,4,13);Oled_8_16_R(80,4,13);//择Oled_8_16_L(88,4,14);Oled_8_16_R(96,4,14);//OLED_WriteCommand(0x2F);//开启滚动}//选择灯颜色二级界面
{OLED_WriteCommand(0x2E);//关闭滚动OLED_WriteCommand(0x26);//向右滚动OLED_WriteCommand(0x00);//A:固定指令0OLED_WriteCommand(0x00);//B:起始页0OLED_WriteCommand(0x07);//C:刷新帧OLED_WriteCommand(0x07);//D:结束页OLED_WriteCommand(0x00);//虚拟字节OLED_WriteCommand(0xFF);//虚拟字节Oled_8_16(0,0,10);//字符*//红Oled_8_16_L(8,0,15);Oled_8_16_R(16,0,15);//灯Oled_8_16_L(24,0,16);Oled_8_16_R(32,0,16);//字符:Oled_8_16A(40,0,10);//关Oled_8_16_L(48,0,17);Oled_8_16_R(56,0,17);//绿Oled_8_16_L(8,2,40);Oled_8_16_R(16,2,40);//灯Oled_8_16_L(24,2,41);Oled_8_16_R(32,2,41);//字符:Oled_8_16(40,2,11);//关Oled_8_16_L(48,2,38);Oled_8_16_R(56,2,38);
{OLED_WriteCommand(0x2E);//关闭滚动OLED_WriteCommand(0x26);//向右滚动OLED_WriteCommand(0x00);//A:固定指令0OLED_WriteCommand(0x00);//B:起始页0OLED_WriteCommand(0x07);//C:刷新帧OLED_WriteCommand(0x07);//D:结束页OLED_WriteCommand(0x00);//虚拟字节OLED_WriteCommand(0xFF);//虚拟字节Oled_8_16(0,2,12);//全黑,把原来的第二行的*覆盖掉Oled_8_16(0,0,10);//字符*//红Oled_8_16_L(8,0,15);Oled_8_16_R(16,0,15);//灯Oled_8_16_L(24,0,16);Oled_8_16_R(32,0,16);//字符:Oled_8_16A(40,0,10);//开Oled_8_16_L(48,0,18);Oled_8_16_R(56,0,18);//绿Oled_8_16_L(8,2,40);Oled_8_16_R(16,2,40);//灯Oled_8_16_L(24,2,41);Oled_8_16_R(32,2,41);//字符:Oled_8_16(40,2,11);//关Oled_8_16_L(48,2,38);Oled_8_16_R(56,2,38);}//选择灯颜色二级界面
{OLED_WriteCommand(0x2E);//关闭滚动OLED_WriteCommand(0x26);//向右滚动OLED_WriteCommand(0x00);//A:固定指令0OLED_WriteCommand(0x00);//B:起始页0OLED_WriteCommand(0x07);//C:刷新帧OLED_WriteCommand(0x07);//D:结束页OLED_WriteCommand(0x00);//虚拟字节OLED_WriteCommand(0xFF);//虚拟字节Oled_8_16(0,0,12);//全黑,把原来的第一行的*覆盖掉Oled_8_16(0,2,10);//字符*//红Oled_8_16_L(8,0,36);Oled_8_16_R(16,0,36);//灯Oled_8_16_L(24,0,37);Oled_8_16_R(32,0,37);//字符:Oled_8_16(40,0,11);//关Oled_8_16_L(48,0,38);Oled_8_16_R(56,0,38);//绿Oled_8_16_L(8,2,19);Oled_8_16_R(16,2,19);//灯Oled_8_16_L(24,2,20);Oled_8_16_R(32,2,20);//字符:Oled_8_16A(40,2,10);//开Oled_8_16_L(48,2,18);Oled_8_16_R(56,2,18);
{OLED_WriteCommand(0x2E);//关闭滚动OLED_WriteCommand(0x26);//向右滚动OLED_WriteCommand(0x00);//A:固定指令0OLED_WriteCommand(0x00);//B:起始页0OLED_WriteCommand(0x07);//C:刷新帧OLED_WriteCommand(0x07);//D:结束页OLED_WriteCommand(0x00);//虚拟字节OLED_WriteCommand(0xFF);//虚拟字节Oled_8_16(0,2,12);//全黑,把原来的第一行的*覆盖掉Oled_8_16(0,0,10);//字符*//红Oled_8_16_L(8,0,15);Oled_8_16_R(16,0,15);//灯Oled_8_16_L(24,0,16);Oled_8_16_R(32,0,16);//字符:Oled_8_16A(40,0,10);//关Oled_8_16_L(48,0,17);Oled_8_16_R(56,0,17);//绿Oled_8_16_L(8,2,40);Oled_8_16_R(16,2,40);//灯Oled_8_16_L(24,2,41);Oled_8_16_R(32,2,41);//字符:Oled_8_16(40,2,11);//关Oled_8_16_L(48,2,38);Oled_8_16_R(56,2,38);
{OLED_WriteCommand(0x2E);//关闭滚动OLED_WriteCommand(0x26);//向右滚动OLED_WriteCommand(0x00);//A:固定指令0OLED_WriteCommand(0x00);//B:起始页0OLED_WriteCommand(0x07);//C:刷新帧OLED_WriteCommand(0x07);//D:结束页OLED_WriteCommand(0x00);//虚拟字节OLED_WriteCommand(0xFF);//虚拟字节Oled_8_16(0,0,12);//全黑,把原来的第一行的*覆盖掉Oled_8_16(0,2,10);//字符*//红Oled_8_16_L(8,0,36);Oled_8_16_R(16,0,36);//灯Oled_8_16_L(24,0,37);Oled_8_16_R(32,0,37);//字符:Oled_8_16(40,0,11);//关Oled_8_16_L(48,0,38);Oled_8_16_R(56,0,38);//绿Oled_8_16_L(8,2,19);Oled_8_16_R(16,2,19);//灯Oled_8_16_L(24,2,20);Oled_8_16_R(32,2,20);//字符:Oled_8_16A(40,2,10);//关Oled_8_16_L(48,2,17);Oled_8_16_R(56,2,17);
{OLED_WriteCommand(0x2E);//关闭滚动OLED_WriteCommand(0x26);//向右滚动OLED_WriteCommand(0x00);//A:固定指令0OLED_WriteCommand(0x00);//B:起始页0OLED_WriteCommand(0x07);//C:刷新帧OLED_WriteCommand(0x07);//D:结束页OLED_WriteCommand(0x00);//虚拟字节OLED_WriteCommand(0xFF);//虚拟字节Oled_8_16(0,0,10);//字符*//风Oled_8_16_L(8,0,42);Oled_8_16_R(16,0,42);//扇Oled_8_16_L(24,0,43);Oled_8_16_R(32,0,43);//字符:Oled_8_16A(40,0,10);//关Oled_8_16_L(48,0,17);Oled_8_16_R(56,0,17);//转Oled_8_16_L(8,2,48);Oled_8_16_R(16,2,48);//速Oled_8_16_L(24,2,49);Oled_8_16_R(32,2,49);//字符:Oled_8_16(40,2,11);//速度数字0Oled_8_16(48,2,0);}//风扇开关选择二级界面
{OLED_WriteCommand(0x2E);//关闭滚动OLED_WriteCommand(0x26);//向右滚动OLED_WriteCommand(0x00);//A:固定指令0OLED_WriteCommand(0x00);//B:起始页0OLED_WriteCommand(0x07);//C:刷新帧OLED_WriteCommand(0x07);//D:结束页OLED_WriteCommand(0x00);//虚拟字节OLED_WriteCommand(0xFF);//虚拟字节Oled_8_16(0,0,10);//字符*//风Oled_8_16_L(8,0,42);Oled_8_16_R(16,0,42);//扇Oled_8_16_L(24,0,43);Oled_8_16_R(32,0,43);//字符:Oled_8_16A(40,0,10);//开Oled_8_16_L(48,0,18);Oled_8_16_R(56,0,18);//转Oled_8_16_L(8,2,48);Oled_8_16_R(16,2,48);//速Oled_8_16_L(24,2,49);Oled_8_16_R(32,2,49);//字符:Oled_8_16(40,2,11);//速度数字100Oled_8_16(48,2,1);Oled_8_16(56,2,0);Oled_8_16(64,2,0);}//风扇开关选择二级界面
{OLED_WriteCommand(0x2E);//关闭滚动OLED_WriteCommand(0x26);//向右滚动OLED_WriteCommand(0x00);//A:固定指令0OLED_WriteCommand(0x00);//B:起始页0OLED_WriteCommand(0x07);//C:刷新帧OLED_WriteCommand(0x07);//D:结束页OLED_WriteCommand(0x00);//虚拟字节OLED_WriteCommand(0xFF);//虚拟字节Oled_8_16(0,2,10);//字符*//风Oled_8_16_L(8,0,46);Oled_8_16_R(16,0,46);//扇Oled_8_16_L(24,0,47);Oled_8_16_R(32,0,47);//字符:Oled_8_16(40,0,11);//开Oled_8_16_L(48,0,32);Oled_8_16_R(56,0,32);//转Oled_8_16_L(8,2,44);Oled_8_16_R(16,2,44);//速Oled_8_16_L(24,2,45);Oled_8_16_R(32,2,45);//字符:Oled_8_16A(40,2,10);}//风扇开关选择二级界面
{OLED_WriteCommand(0x2E);//关闭滚动OLED_WriteCommand(0x26);//向右滚动OLED_WriteCommand(0x00);//A:固定指令0OLED_WriteCommand(0x00);//B:起始页0OLED_WriteCommand(0x07);//C:刷新帧OLED_WriteCommand(0x07);//D:结束页OLED_WriteCommand(0x00);//虚拟字节OLED_WriteCommand(0xFF);//虚拟字节Oled_8_16(0,2,10);//字符*//风Oled_8_16_L(8,0,46);Oled_8_16_R(16,0,46);//扇Oled_8_16_L(24,0,47);Oled_8_16_R(32,0,47);//字符:Oled_8_16(40,0,11);//开Oled_8_16_L(48,0,33);Oled_8_16_R(56,0,33);//转Oled_8_16_L(8,2,44);Oled_8_16_R(16,2,44);//速Oled_8_16_L(24,2,45);Oled_8_16_R(32,2,45);//字符:Oled_8_16A(40,2,10);Oled_8_16A(48,2,0);
{OLED_WriteCommand(0x2E);//关闭滚动OLED_WriteCommand(0x26);//向右滚动OLED_WriteCommand(0x00);//A:固定指令0OLED_WriteCommand(0x00);//B:起始页0OLED_WriteCommand(0x07);//C:刷新帧OLED_WriteCommand(0x07);//D:结束页OLED_WriteCommand(0x00);//虚拟字节OLED_WriteCommand(0xFF);//虚拟字节//湿Oled_8_16_L(8,0,50);Oled_8_16_R(16,0,50);//度Oled_8_16_L(24,0,51);Oled_8_16_R(32,0,51);//字符:Oled_8_16(40,0,11);//温Oled_8_16_L(8,2,52);Oled_8_16_R(16,2,52);//度Oled_8_16_L(24,2,53);Oled_8_16_R(32,2,53);//字符:Oled_8_16(40,2,11);}//选择灯颜色二级界面
{OLED_WriteCommand(0x2E);//关闭滚动OLED_WriteCommand(0x26);//向右滚动OLED_WriteCommand(0x00);//A:固定指令0OLED_WriteCommand(0x00);//B:起始页0OLED_WriteCommand(0x07);//C:刷新帧OLED_WriteCommand(0x07);//D:结束页OLED_WriteCommand(0x00);//虚拟字节OLED_WriteCommand(0xFF);//虚拟字节Oled_8_16(0,2,12);//全黑,把原来的第二行的*覆盖掉Oled_8_16(0,0,10);//字符*//红Oled_8_16_L(8,0,15);Oled_8_16_R(16,0,15);//灯Oled_8_16_L(24,0,16);Oled_8_16_R(32,0,16);//字符:Oled_8_16A(40,0,10);//开Oled_8_16_L(48,0,18);Oled_8_16_R(56,0,18);//绿Oled_8_16_L(8,2,40);Oled_8_16_R(16,2,40);//灯Oled_8_16_L(24,2,41);Oled_8_16_R(32,2,41);//字符:Oled_8_16(40,2,11);//开Oled_8_16_L(48,2,39);Oled_8_16_R(56,2,39);
{OLED_WriteCommand(0x2E);//关闭滚动OLED_WriteCommand(0x26);//向右滚动OLED_WriteCommand(0x00);//A:固定指令0OLED_WriteCommand(0x00);//B:起始页0OLED_WriteCommand(0x07);//C:刷新帧OLED_WriteCommand(0x07);//D:结束页OLED_WriteCommand(0x00);//虚拟字节OLED_WriteCommand(0xFF);//虚拟字节Oled_8_16(0,0,12);//全黑,把原来的第一行的*覆盖掉Oled_8_16(0,2,10);//字符*//红Oled_8_16_L(8,0,36);Oled_8_16_R(16,0,36);//灯Oled_8_16_L(24,0,37);Oled_8_16_R(32,0,37);//字符:Oled_8_16(40,0,11);//开Oled_8_16_L(48,0,39);Oled_8_16_R(56,0,39);//绿Oled_8_16_L(8,2,19);Oled_8_16_R(16,2,19);//灯Oled_8_16_L(24,2,20);Oled_8_16_R(32,2,20);//字符:Oled_8_16A(40,2,10);//开Oled_8_16_L(48,2,18);Oled_8_16_R(56,2,18);
{OLED_WriteCommand(0x2E);//关闭滚动OLED_WriteCommand(0x26);//向右滚动OLED_WriteCommand(0x00);//A:固定指令0OLED_WriteCommand(0x00);//B:起始页0OLED_WriteCommand(0x07);//C:刷新帧OLED_WriteCommand(0x07);//D:结束页OLED_WriteCommand(0x00);//虚拟字节OLED_WriteCommand(0xFF);//虚拟字节Oled_8_16(0,2,12);//全黑,把原来的第二行的*覆盖掉Oled_8_16(0,0,10);//字符*//红Oled_8_16_L(8,0,15);Oled_8_16_R(16,0,15);//灯Oled_8_16_L(24,0,16);Oled_8_16_R(32,0,16);//字符:Oled_8_16A(40,0,10);//关Oled_8_16_L(48,0,17);Oled_8_16_R(56,0,17);//绿Oled_8_16_L(8,2,40);Oled_8_16_R(16,2,40);//灯Oled_8_16_L(24,2,41);Oled_8_16_R(32,2,41);//字符:Oled_8_16(40,2,11);//开Oled_8_16_L(48,2,39);Oled_8_16_R(56,2,39);
{OLED_WriteCommand(0x2E);//关闭滚动OLED_WriteCommand(0x26);//向右滚动OLED_WriteCommand(0x00);//A:固定指令0OLED_WriteCommand(0x00);//B:起始页0OLED_WriteCommand(0x07);//C:刷新帧OLED_WriteCommand(0x07);//D:结束页OLED_WriteCommand(0x00);//虚拟字节OLED_WriteCommand(0xFF);//虚拟字节Oled_8_16(0,0,12);//全黑,把原来的第一行的*覆盖掉Oled_8_16(0,2,10);//字符*//红Oled_8_16_L(8,0,36);Oled_8_16_R(16,0,36);//灯Oled_8_16_L(24,0,37);Oled_8_16_R(32,0,37);//字符:Oled_8_16(40,0,11);//开Oled_8_16_L(48,0,39);Oled_8_16_R(56,0,39);//绿Oled_8_16_L(8,2,19);Oled_8_16_R(16,2,19);//灯Oled_8_16_L(24,2,20);Oled_8_16_R(32,2,20);//字符:Oled_8_16A(40,2,10);//关Oled_8_16_L(48,2,17);Oled_8_16_R(56,2,17);
{OLED_WriteCommand(0x2E);//关闭滚动OLED_WriteCommand(0x26);//向右滚动OLED_WriteCommand(0x00);//A:固定指令0OLED_WriteCommand(0x00);//B:起始页0OLED_WriteCommand(0x07);//C:刷新帧OLED_WriteCommand(0x07);//D:结束页OLED_WriteCommand(0x00);//虚拟字节OLED_WriteCommand(0xFF);//虚拟字节Oled_8_16(0,2,10);//字符*//选Oled_8_16_L(8,0,21);Oled_8_16_R(16,0,21);//择Oled_8_16_L(24,0,22);Oled_8_16_R(32,0,22);//灯Oled_8_16_L(40,0,23);Oled_8_16_R(48,0,23);//颜
Oled_8_16_L(56,0,24);Oled_8_16_R(64,0,24);//色Oled_8_16_L(72,0,25);Oled_8_16_R(80,0,25);//查Oled_8_16_L(8,2,5);Oled_8_16_R(16,2,5);//看Oled_8_16_L(24,2,6);Oled_8_16_R(32,2,6);//温Oled_8_16_L(40,2,7);Oled_8_16_R(48,2,7);//度Oled_8_16_L(56,2,8);Oled_8_16_R(64,2,8);//风Oled_8_16_L(8,4,30);Oled_8_16_R(16,4,30);//扇Oled_8_16_L(24,4,31);Oled_8_16_R(32,4,31);//开Oled_8_16_L(40,4,32);Oled_8_16_R(48,4,32);//关Oled_8_16_L(56,4,33);Oled_8_16_R(64,4,33);//选Oled_8_16_L(72,4,34);Oled_8_16_R(80,4,34);//择Oled_8_16_L(88,4,35);Oled_8_16_R(96,4,35);}
//设置时钟源为HCLK启动定时器while(!(SysTick-CTRL
//初始化按键状态为检测状态,KeyState是变量KEY_CHECK是数值初始化为0void
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);GPIO_InitTypeDef
GPIO_InitStruct;GPIO_InitStruct.GPIO_ModeGPIO_Mode_IPU;GPIO_InitStruct.GPIO_PinGPIO_Pin_2
GPIO_Pin_6;GPIO_InitStruct.GPIO_SpeedGPIO_Speed_50MHz;GPIO_Init(GPIOE,GPIO_InitStruct);
//按键标志switch(KeyState)//按键状态KeyState为012其中一个{case
KEY_CHECK://按键状态:0if(!KEY)//如果按键值为0说明按键被按下切换状态,if是为1才能进入按键按下了变为0反转为1才进入{KeyState
KEY_CONFIRM;//按键状态从0切换为1}break;case
KEY_CONFIRM://按键状态:1if(!KEY)//判断当前按键值是否为0确认是否按下{KeyState
KEY0_PRES;//KEY0_PRES1,KeyFlag1}if(0
KEY1_PRES;//KEY1_PRES2,KeyFlag2}if(0
KEY2_PRES;//KEY2_PRES3,KeyFlag3}if(0
KEY3_PRES;//KEY3_PRES3,KeyFlag4}}else//按键没有被按下返回上一状态{KeyState
KEY_RELEASE://按键状态:2if(KEY)//当前按键值为1说明按键已经释放切换到开始状态{KeyState
KEY_CHECK;//按键状态从2切换为0,以便下一次使用return
KeyFlag;//释放以后才把按键数值返回}break;}return
(Key3))//两个条件都为真时结果才为真,否则为假,我们按键只能按一个无法同时按人手速度没有这么快所以始终无论哪个按键按下KEY都是0
stm32f10x.h//位带操作,实现51类似的GPIO控制功能
//具体实现思想,参考CM3权威指南第五章(87页~92页).
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitTypeDef
GPIO_InitStruct;GPIO_InitStruct.GPIO_ModeGPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_PinGPIO_Pin_5;GPIO_InitStruct.GPIO_SpeedGPIO_Speed_50MHz;
GPIO_Init(GPIOB,GPIO_InitStruct);GPIO_SetBits(GPIOB,GPIO_Pin_5);GPIO_InitStruct.GPIO_ModeGPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_PinGPIO_Pin_12;GPIO_InitStruct.GPIO_SpeedGPIO_Speed_50MHz;
GPIO_Init(GPIOC,GPIO_InitStruct);GPIO_SetBits(GPIOC,GPIO_Pin_12);GPIO_InitStruct.GPIO_ModeGPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_PinGPIO_Pin_5;GPIO_InitStruct.GPIO_SpeedGPIO_Speed_50MHz;
GPIO_Init(GPIOE,GPIO_InitStruct);GPIO_SetBits(GPIOE,GPIO_Pin_5);
//IN1和IN2分别接PA4和PA5,然后P4和P5就是用作普通引脚输出高低电平。
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,
GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode
GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin
GPIO_Pin_5;GPIO_InitStructure.GPIO_Speed
GPIO_Speed_50MHz;GPIO_Init(GPIOA,
GPIO_InitStructure);PWM_Init();
GPIO_Pin_4);GPIO_ResetBits(GPIOA,
GPIO_Pin_5);PWM_SetCompare3(Speed);}else{GPIO_ResetBits(GPIOA,
GPIO_Pin_4);GPIO_SetBits(GPIOA,
GPIO_Pin_5);PWM_SetCompare3(-Speed);}
{RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,
ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,
GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode
GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Pin
GPIO_Pin_2;GPIO_InitStructure.GPIO_Speed
GPIO_Speed_50MHz;GPIO_Init(GPIOA,
GPIO_InitStructure);TIM_InternalClockConfig(TIM2);TIM_TimeBaseInitTypeDef
TIM_TimeBaseInitStructure;TIM_TimeBaseInitStructure.TIM_ClockDivision
TIM_CKD_DIV1;TIM_TimeBaseInitStructure.TIM_CounterMode
TIM_CounterMode_Up;TIM_TimeBaseInitStructure.TIM_Period
//ARRTIM_TimeBaseInitStructure.TIM_Prescaler
//PSCTIM_TimeBaseInitStructure.TIM_RepetitionCounter
TIM_TimeBaseInitStructure);TIM_OCInitTypeDef
TIM_OCInitStructure;TIM_OCStructInit(TIM_OCInitStructure);TIM_OCInitStructure.TIM_OCMode
TIM_OCMode_PWM1;TIM_OCInitStructure.TIM_OCPolarity
TIM_OCPolarity_High;TIM_OCInitStructure.TIM_OutputState
TIM_OutputState_Enable;TIM_OCInitStructure.TIM_Pulse
TIM_OCInitStructure);TIM_Cmd(TIM2,
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitTypeDef
GPIO_InitStruct;GPIO_InitStruct.GPIO_ModeGPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_PinGPIO_Pin_7;GPIO_InitStruct.GPIO_SpeedGPIO_Speed_50MHz;GPIO_Init(GPIOA,GPIO_InitStruct);
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitTypeDef
GPIO_InitStruct;GPIO_InitStruct.GPIO_ModeGPIO_Mode_IPU;GPIO_InitStruct.GPIO_PinGPIO_Pin_7;GPIO_InitStruct.GPIO_SpeedGPIO_Speed_50MHz;GPIO_Init(GPIOA,GPIO_InitStruct);
{DHT11_Init_Out();//输出模式//根据时序进行高低电平变化dhtout
0;Delay_ms(20);dhtout1;Delay_us(20);//主机拉高20usDHT11_Init_In();//输入状态if(!dhtin)
0的话则代表DHT发送了响应信号{while(!dhtin);//DHT正在发送响应信号dhtin
1,DHT处于高电平状态等待变为低电平则退出循环则代表开始传送数据return
i0;i8;i){buffer1;//一共八次每次向左移1位while(!dhtin);//主机信号等待低电平结束,无论是数据0还是1都是54us不需要管等待结束即可Delay_us(30);//30us后如果是高电平就是数字1低电平就是数字0dhtin
~0x01);//三目运算符如果dhtin为1则执行buffer|0x01,否则buffer
~0x01while(dhtin);//30us后因为高电平是68us-74us,高电平还有多的时间需要等待高电平结束如果是低电平直接就跳过去了}return
{if(DHT_Start())//如果开始传输数据则进入条件{datas[0]DHT_Get_Data();datas[1]DHT_Get_Data();datas[2]DHT_Get_Data();datas[3]DHT_Get_Data();datas[4]DHT_Get_Data();Delay_us(60);//传感器释放总线时间
}if(datas[4](datas[0]datas[1]datas[2]datas[3]))//校验和{return
{RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,
ENABLE);TIM_TimeBaseInitTypeDef
TIM_TimeBaseInitStructure;TIM_TimeBaseInitStructure.TIM_ClockDivision
TIM_CKD_DIV1;TIM_TimeBaseInitStructure.TIM_CounterMode
TIM_CounterMode_Up;TIM_TimeBaseInitStructure.TIM_Period
1;TIM_TimeBaseInitStructure.TIM_Prescaler
1;TIM_TimeBaseInitStructure.TIM_RepetitionCounter
TIM_TimeBaseInitStructure);TIM_ClearFlag(TIM4,
TIM_FLAG_Update);TIM_ITConfig(TIM4,
ENABLE);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);NVIC_InitTypeDef
NVIC_InitStructure;NVIC_InitStructure.NVIC_IRQChannel
TIM4_IRQn;NVIC_InitStructure.NVIC_IRQChannelCmd
ENABLE;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority
2;NVIC_InitStructure.NVIC_IRQChannelSubPriority
1;NVIC_Init(NVIC_InitStructure);TIM_Cmd(TIM4,
SET)//1ms{global_times;BEEP_TIME
Key_Scan();global_times0;}TIM_ClearITPendingBit(TIM4,
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback