中级会员
- 积分
- 292
- 金钱
- 292
- 注册时间
- 2016-1-2
- 在线时间
- 80 小时
|
2金钱
void SampleApp_Send_P2P_Message(void)
{
byte state;
if(DATA_PIN == 1)
{
state = 0x31; //高电平时说明没有检测到气体。
HalUARTWrite(0,"security\n", 9); //串口显示
}
else
{
MicroWait (10000); // Wait 10ms
if(DATA_PIN == 0)
{
state = 0x30; //当输出低电平时信号灯亮,检测到气体
HalUARTWrite(0,"Got bad Air\n",12); //串口显示
}
}
if ( AF_DataRequest( &SampleApp_P2P_DstAddr, &SampleApp_epDesc,
SAMPLEAPP_P2P_CLUSTERID,
1,
&state,
&SampleApp_TransID,
AF_DISCV_ROUTE,
AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
{
}
我知道在ASCII编码 0x30对应的是数字 0 ,而state仅仅是一个变量。那为啥不能用state = 0; 这种方式来写呀?
当然这种方式传输数据时 是空白,现象不对。
我想知道为什么?
但是在另一个程序中直接赋值0,就好使
uint8 LedState = 0; //全局变量
void SampleApp_SendPeriodicMessage( void )
{
LedState = ~LedState;
if ( AF_DataRequest( &SampleApp_Periodic_DstAddr, &SampleApp_epDesc,
SAMPLEAPP_PERIODIC_CLUSTERID,
1,
&LedState,
&SampleApp_TransID,
AF_DISCV_ROUTE,
AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
{
}
else
{
// Error occurred in request to send.
}
}
不知道各位明白我的意思没?
|
|