协议栈1.3.0版本,从机文件
其中
1.添加调用DHT11采集事件(SimpleBLEPeripheral.c的SimpleBLEPeripheral_ProcessEvent中的SBP_START_DEVICE_EVT事件)
2.定义DHT11采集事件、DHT11串口发送事件(SimpleBLEPeripheral.c的SimpleBLEPeripheral_ProcessEvent中)
//添加
//周期采集DHT11温湿度事件
if
( events & SBP_DHT11_READ_HUMITURE_EVT )
{
//关总中断,不关会出现0的数据
EA = 0;
//采集DHT11温湿度
DHT11_Read_Humiture(sbDHT11_data);
//开总中断
EA = 1;
//启动定时器执行串口打印DHT11温湿度事件
osal_start_timerEx( simpleBLEPeripheral_TaskID, SBP_DHT11_USART_EVT, SBP_DHT11_USART_EVT_PERIOD );
//启动定时器执行周期采集DHT11温湿度事件
osal_start_timerEx( simpleBLEPeripheral_TaskID, SBP_DHT11_READ_HUMITURE_EVT, SBP_DHT11_READ_HUMITURE_EVT_PERIOD );
return
(events ^ SBP_DHT11_READ_HUMITURE_EVT);
}
//串口打印DHT11温湿度事件
if
( events & SBP_DHT11_USART_EVT )
{
uint8 nString[15] = {0};
//温度
sprintf
((
char
*)nString,
"DHT11 temp: %d.%d"
, sbDHT11_data[2], sbDHT11_data[3]);
NPI_PrintString(nString);
NPI_PrintString(
" "
);
//湿度
sprintf
((
char
*)nString,
"DHT11 humi: %d.%d"
, sbDHT11_data[0], sbDHT11_data[1]);
NPI_PrintString(nString);
NPI_PrintString(
"\r\n"
);
return
(events ^ SBP_DHT11_USART_EVT);
}
//添加
结果利用串口调试助手,打印数据时,发现打印的格式不定时的混乱,如图所示。请问问题出在哪里?该怎么解决?
1
|
|
专业的人才,应该很好解决的