上位机一直收到蓝牙发送 AT
oled显示屏也只显示温度湿度汉字而不显示温湿度的数据
但是我编译的时候也没有报错
求求各位大佬帮我看看哪里有问题
下面是主函数
int main(void)
{
u8 t=0;
u8 temperature;
u8 humidity;
u8 reclen=0;
int tmp;
usart_init(9600);
BEEP_Init();//蜂鸣器初始化
delay_init(); //延时初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
DHT11_Init();//dht11初始化
OLED_Init(); //初始化OLED
initial_olcd(); //初始化
usmart_dev.init(72); //初始化USMART
clear_screen(); //清屏
disp_string_8x16_16x16(1,1,"温度:");
disp_string_8x16_16x16(3,1,"湿度:");
delay_ms(1000); //等待蓝牙模块上电稳定
while(HC05_Init()) //初始化ATK-HC05模块
{
delay_ms(200);
}
USART_RX_STA=0;
while(1)
{
if(t%10==0) //每100ms读取一次
{
DHT11_Read_Data(&temperature,&humidity); //读取温湿度值
display_number_16x8(1,46,temperature);
display_number_16x8(3,46,humidity);
u1_printf("%d %d\r\n",temperature,humidity); //发送到蓝牙模块
tmp=(int)temperature;
if((tmp<=10) || (tmp>=25))
{
beep = !beep;
led2 = 1;
}
else
{
beep = 0;
led2 = 0;
}
delay_ms(50);
if(USART_RX_STA&0X8000) //接收到一次数据了
{
reclen=USART_RX_STA&0X7FFF; //得到数据长度
USART_RX_BUF[reclen]=0; //加入结束符
if(reclen==9||reclen==8) //控制DS1检测
{
if(strcmp((const char*)USART_RX_BUF,"关闭报警器")==0); //关闭蜂鸣器
{
beep = 0;
}
}
USART_RX_STA=0;
// disp_string_8x16_16x16(5,1,USART_RX_BUF);
}
}
delay_ms(10);
t++;
if(t==20)
{
t=0;
}
delay_ms(10);
t++;
if(t==20)
{
t=0;
}
}
}
|