温湿度显示不出来,完整的工程代码如下,
部分关键代码如下,完整工程文件在下面的链接
自定义的函数!
static void SampleApp_Send_P2P_Message(void)
{
char temp[3], humidity[3], strTemp[7];
DHT11(); //获取温湿度
//将数据整合后方便发给协调器显示
osal_memcpy(strTemp, temp, 2);
osal_memcpy(&strTemp[2], " ", 1);
osal_memcpy(&strTemp[3], humidity, 3);
//获得的温湿度通过串口输出到电脑显示
HalUARTWrite(0, "T&H:", 4);
HalUARTWrite(0, (uint8 *)strTemp, 5);
HalUARTWrite(0, "\n",1);
afAddrType_t SerialApp_TxAddr;
SerialApp_TxAddr.addrMode = (afAddrMode_t)Addr16Bit;
SerialApp_TxAddr.endPoint = SERIALAPP_ENDPOINT;
SerialApp_TxAddr.addr.shortAddr = 0x0000;
if (afStatus_SUCCESS != AF_DataRequest(&SerialApp_TxAddr,
(endPointDesc_t *)&SerialApp_epDesc,
SAMPLEAPP_P2P_CLUSTERID,
5, (uint8 *)strTemp,
&SerialApp_MsgID, 0, AF_DEFAULT_RADIUS))
{
osal_set_event(SerialApp_TaskID, SampleApp_Send_P2P_EVT);
}
}
void SerialApp_ProcessMSGCmd( afIncomingMSGPacket_t *pkt )
{
case SAMPLEAPP_P2P_CLUSTERID:
HalUARTWrite(SERIAL_APP_PORT, "T&H:", 4); //提示接收到数据
HalUARTWrite(SERIAL_APP_PORT, pkt->cmd.Data, pkt->cmd.DataLength); //输出接收到的数据
HalUARTWrite(SERIAL_APP_PORT, "\n", 1); // 回车换行
}
## 在事件处理函数中 自己添加了一个事件
在事件处理函数中 自己添加了一个事件
if ( events & SampleApp_Send_P2P_EVT )
{
SampleApp_Send_P2P_Message();
//osal_start_timerEx( SerialApp_TaskID, SampleApp_Send_P2P_EVT, 1000 );
return ( events ^ SampleApp_Send_P2P_EVT );
}
在这个例子模板中都是点播发送!
哪位前辈能帮忙指导一下,先谢过!