问题已解决。是传输函数的问题。只是不明白,这个传输函数在stm32上用的好好的,在TMS320F28335上咋就不行。高8位和低8位的截取。
#define BYTE0(dwTemp) (*(char *)(&dwTemp))
#define BYTE1(dwTemp) (*((char *)(&dwTemp) + 1))
#define BYTE2(dwTemp) (*((char *)(&dwTemp) + 2))
#define BYTE3(dwTemp) (*((char *)(&dwTemp) + 3))
void Data_Send_Status(void)
{
unsigned char _cnt=0;
int _temp;
unsigned char sum = 0;
unsigned char i=0;
data_to_send[_cnt++]=0xAA;
data_to_send[_cnt++]=0xAA;
data_to_send[_cnt++]=0x01;
data_to_send[_cnt++]=0;
_temp = (int)(Rool*100);
data_to_send[_cnt++]=BYTE1(_temp);
data_to_send[_cnt++]=BYTE0(_temp);
_temp = (int)(Pitch*100);
data_to_send[_cnt++]=BYTE1(_temp);
data_to_send[_cnt++]=BYTE0(_temp);
_temp = (int)(Yaw*100);
data_to_send[_cnt++]=BYTE1(_temp);
data_to_send[_cnt++]=BYTE0(_temp);
…………
最后用了简单的方式:
dwTemp & 0xFF
(dwTemp >> 8) & 0xFF
c语言没学好,第一种匿名四轴的方式没看懂
|