|
上位機(jī)一直收到藍(lán)牙發(fā)送 AT
oled顯示屏也只顯示溫度濕度漢字而不顯示溫濕度的數(shù)據(jù)
但是我編譯的時(shí)候也沒(méi)有報(bào)錯(cuò)
求求各位大佬幫我看看哪里有問(wèn)題
下面是主函數(shù)
int main(void)
{
u8 t=0;
u8 temperature;
u8 humidity;
u8 reclen=0;
int tmp;
usart_init(9600);
BEEP_Init();//蜂鳴器初始化
delay_init(); //延時(shí)初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
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); //等待藍(lán)牙模塊上電穩(wěn)定
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); //發(fā)送到藍(lán)牙模塊
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) //接收到一次數(shù)據(jù)了
{
reclen=USART_RX_STA&0X7FFF; //得到數(shù)據(jù)長(zhǎng)度
USART_RX_BUF[reclen]=0; //加入結(jié)束符
if(reclen==9||reclen==8) //控制DS1檢測(cè)
{
if(strcmp((const char*)USART_RX_BUF,"關(guān)閉報(bào)警器")==0); //關(guān)閉蜂鳴器
{
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;
}
}
}
|
|