这是一个获取温湿度的函数。
void Get_TempHum(short hum,unsigned short temp)
{
unsigned short crc_value;
Wakeup_AM2321();
OSTimeDly(1);
I2C_write(AM2321_ADDR,tx_buff,3,0);
OSTimeDly(2);
I2C_read(AM2321_ADDR,rx_buff,8);
crc_value=MakeWord(rx_buff[7],rx_buff[6]); //接收到的CRC值低位在前
if(crc_value==crc16(rx_buff,6)) //如果校验值正确,计算温湿度值
{
hum=MakeWord(rx_buff[2],rx_buff[3]);
temp=MakeWord(rx_buff[4],rx_buff[5]);
//printf("The hum is %d;the temp is %d\n",hum,temp);
}
}
调用的时候:
Get_TempHum(Hum,Temp);
发现Hum和Temp都没有改变,hum和Hum也不是同一个地址,hum地址在任务堆栈里,这是怎么回事呢?