typedef unsigned long u32;
typedef unsigned char u16;
typedef unsigned char u8;
#warning cpstm8 ..ds1302.c:702(44) truncating assignment
#warning cpstm8 ..ds1302.c:703(44) truncating assignment
#warning cpstm8 ..ds1302.c:704(43) truncating assignment
#warning cpstm8 ..ds1302.c:705(47) truncating assignment
出现上述警告,使用cosmic +stvd
进入调适 ,查看变量 不是我要的,但在 keil arm compiler ok!!
u8 a,b,c,d;
u8 dat_arr [4];
u16 tmp,tmp1;
u32 cnt,result;
cnt=0x33200532;
dat_arr [0] =(cnt>>24);
dat_arr [1] =(cnt>>16);
dat_arr [2]=(cnt>>8);
dat_arr [3]=(cnt& 0xFF);
得到 dat_arr [0]=0x03; dat_arr [1]=0x32; dat_arr [2]=0x05; dat_arr [3]=0x32;
我希望得到如下:
dat_arr [0]=0x33;
dat_arr [1]=0x20;
dat_arr [2]=0x05;
dat_arr [3]=0x32;
//=============================================
我需要将 4各字节分别组合起来成32bit,4各字节这个程序在keil arm ok,用在stvd+cosmic 如何可以让转换正常
a =0x33;
b=0x20;
c=0x05;
d=0x32;
tmp=(u16) (a<<8)+b;
tmp1=(u16) (c<<8)+d;
result=(tmp<<16) | tmp1;
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>