在51里面是这样写的 在stm32里面 就是不知道怎么存 怎么发 用了6片ADC DB0-DB15用了GPIOF void Read(void) { int n; int j; int byte_num=0; unsigned int H_Data; unsigned int L_Data; unsigned int m=0x40; CON=0; CON=1; while(BUSY==1) // BUSY=1; for(j=0;j<6;j++) { switch(j) { case 0:CS_A=0; CS_B=0; CS_C=0;break; case 1:CS_A=1; CS_B=0; CS_C=0;break; case 2:CS_A=0; CS_B=1; CS_C=0;break; case 3:CS_A=1; CS_B=1; CS_C=0;break; case 4:CS_A=0; CS_B=0; CS_C=1;break; case 5:CS_A=1; CS_B=0; CS_C=1;break; default: break; } for(n=0;n<8;n++) { RD=0; H_Data=P1; L_Data=P0; RD=1; Data[byte_num++]=H_Data; Data[byte_num++]=L_Data; } } } ///////////////////////////////////////////// void Send() { int k; int i=0; char Datas; send_byte(0x99); for(k=1;k<49;k++) { send_byte(k); Datas=Data[i++]; send_byte(Datas); Datas=Data; i=i+1; send_byte(Datas); } send_byte(0x99); send_byte(0x99); } |
具体看你编译器和平台的设置,是大端还是小端
然后高低字节处理起来就轻松了
使用以下结构确认大小端
union sv {
unsigned short Val;
unsigned char c[2];
}sv_16;
union sv {
unsigned int Val;
unsigned char c[4];
}sv_32;
sv_16 temp_16;
sv_32 temp_32;
temp_16.Val = xxxx;
temp_32.Val = xxxx;
printf("%02x %02x ", temp_16.c[0], temp_16.c[1] );
printf("%02x %02x %02x %02x", temp_32.c[0], temp_32.c[1], temp_32.c[2], temp_32.c[3]);
评分
查看全部评分