u8 key,mode;
u16 t=0;
u8 tmp_buf[33];
short *t_buf;
long * quat_buf;
int i;
u8 *p=0;
float a;
这是要下面代码用到的数据格式的定义
if(NRF24L01_RxPacket(tmp_buf)==0)//一旦接收到信息,则显示出来.
{
t_buf=(short *)tmp_buf;
quat_buf=(long *)tmp_buf;
if((t_buf[6] == 0x1234)&&(t_buf[7]==0x5678))
{
for(i=0;i<6;i++)
{
if(i<3)
{
a=t_buf/16384.00;
sprintf((char *)p,"the value of accel is :%f",a);
LCD_ShowString(0,0+i*20,200,16,16,p);
}else
{
a=t_buf/16.38;
sprintf((char *)p,"the value of gyro is :%f",a);
LCD_ShowString(0,0+i*20,200,16,16,p);
}
}
}else
{
for(i=0;i<4;i++)
{
a=quat_buf/1073741824.0f;
sprintf((char *)p,"the value of four_element is :%f",a);
LCD_ShowString(0,200+i*20,200,16,16,p);
}
}
}
else delay_us(100);
t++;
if(t==10000)//大约1s钟改变一次状态
{
t=0;
LED0=!LED0;
}
};
上面是我在用无线通信的方式把6050三轴加速度和四元素发给另一个单片机,这是把数据包解析出来的函数,但是程序一旦运行到sprintf()这个函数这里就会死在下面这里。我把“string.h”和“stdio.h”这两个文件都包含进来,但是还是这个错误。求救啊
HardFault_Handler\
PROC
EXPORT HardFault_Handler [WEAK]
B .
ENDP