移植原子哥的ESP8266——STM32F407
通过WIFI发送mcu6050得到的数据
我想循环发送这个数据
但是如果去掉
else if(key==KEY0){。。。。。。。}这个条件
mpudata[0],mpudata[1],mpudata[2],mpudata[3]这几个数值就会变成 0;
PowerSendData(),LightSendData(),StartModule()这几个可以;
加上这个条件才能得到有效数值;
或者去掉
atk_8266_send_cmd("AT+CIPSEND=0,21","OK",200); //发送指定长度的数据
delay_ms(200);
atk_8266_send_data(p,"OK",100); //发送指定长度的数据timex=100;
这几句 也可以得到有效数据 不过这样也就没有意义了
这是为啥
这是循环
while(1)
{
McuSendDataX();
sprintf((char*)p,"T:%03dX:%03dY:%03dZ:%03d \r\n",mpudata[0],mpudata[1],mpudata[2],mpudata[3]);
Show_Str(15,155,180,190,p,12,0);
key=KEY_Scan(0);
if(key==WKUP_PRES) //WK_UP 退出测试
{
res=0;
break;
}
else if(key==KEY0)
{
sprintf((char*)p,"%03d%03d%03d%03d%03d%03d%03d",PowerSendData(),LightSendData(),StartModule(),mpudata[0],mpudata[1],mpudata[2],mpudata[3]);
Show_Str(15+54,125,200,12,p,12,0);
atk_8266_send_cmd("AT+CIPSEND=0,21","OK",200); //发送指定长度的数据
delay_ms(200);
atk_8266_send_data(p,"OK",100); //发送指定长度的数据timex=100;
}
}
///////////////////////////////
void McuSendDataX()
{
float pitch,roll,yaw; //欧拉角
short aacx,aacy,aacz; //加速度传感器原始数据
short gyrox,gyroy,gyroz; //陀螺仪原始数据
short temp; //温度
if((mpu_dmp_get_data(&pitch,&roll,&yaw)==0))
{
temp=MPU_Get_Temperature(); //得到温度值
MPU_Get_Accelerometer(&aacx,&aacy,&aacz); //得到加速度传感器数据
MPU_Get_Gyroscope(&gyrox,&gyroy,&gyroz); //得到陀螺仪数据
mpudata[0]=(int)temp/100;
mpudata[1]=(int)pitch;
mpudata[2]=(int)roll;
mpudata[3]=(int)yaw;
}
}
|