協議堆疊1.3.0版本
其中
1.添加呼叫DHT11采集事件(SimpleBLEPeripheral.c的SimpleBLEPeripheral_ProcessEvent中的SBP_START_DEVICE_EVT事件)
if ( events & SBP_START_DEVICE_EVT )
{
// Start the Device
VOID GAPRole_StartDevice( &simpleBLEPeripheral_PeripheralCBs );
// Start Bond Manager
VOID GAPBondMgr_Register( &simpleBLEPeripheral_BondMgrCBs );
// Set timer for first periodic event
osal_start_timerEx( simpleBLEPeripheral_TaskID, SBP_PERIODIC_EVT, SBP_PERIODIC_EVT_PERIOD );
//添加
//啟動定時器執行周期采集DHT11溫濕度事件
osal_start_timerEx( simpleBLEPeripheral_TaskID, SBP_DHT11_READ_HUMITURE_EVT, SBP_DHT11_READ_HUMITURE_EVT_PERIOD );
//添加
return ( events ^ 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);
}
//添加
結果利用串口除錯助手,列印資料時,發現列印的格式不定時的混亂,如圖所示。請問問題出在哪里?該怎么解決?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/45678.html
標籤:無線
上一篇:這個電路怎么實作基線恢復功能呢?
下一篇:windows平臺下攝像頭的問題
