unsigned long Time;
Time|= buffer[6];
Time|= buffer[7]<<8;
Time|= (unsigned long)(buffer[8]<<16);
Time|= (unsigned long)(buffer[9]<<24);
junpeng li:
问题解决方案如下
ST_INT32 Uint8_To_Uint32(ST_INT8 * buff){ ST_INT8* p; ST_INT32 ulRet;
p = (ST_INT8*)&ulRet;
*p++ = *buff++; *p++ = *buff++; *p++ = *buff++; *p = *buff;
return ulRet;}
HG:
这样移动出什么问题了?打开反汇编,看看编译器把你的指令又化成啥样了
junpeng li:
回复 HG:
高16数据出问题,会被强制置为 FFFF
junpeng li:
回复 HG:
用指针移位的话没有问题,是不是和16位的单片机有关系
灰小子:
回复 junpeng li:
和编译器有关系。建议翻一下iar的手册看看