目的很简单:从其他设备读取9字节的数据,再通过串口显示出来
//ReadRAM函数完成连续读取外围设备9字节功能,并把9个字节依次放入指针address开始的位置 ReadRAM(uchar *address) { uchar i; for(i=0;i<9;i++) *(address+i)=ReadByte(); //ReadByte()执行一次读取一个字节 } 方法1 main() { uchar ram; //读取到的9个字节就放入从&ram开始的连续9个位置里 while(1) { ReadRAM(&ram); ReadSerial(&ram);//串口显示函数 } }
实际运行结果发现这样读取到得9字节数据不正确,而把main函数这样改一下读到得数据就对了 方法2 main() { uchar ram[9]; //读取到的9个字节就放入数组ram[9]中 while(1) { ReadRAM(ram); ReadSerial(ram);//串口显示函数 }
} 方法1,我是想通过定义uchar ram;让编辑器为ram分配一内存空间,从而得到一个内存地址&ram,把读到得9字节数据写入到此地址开始的9个字节中 方法2 是预先定义好9个字节的数组,把读到得数据写入此数组中 个人感觉是这两种方法应该都行啊,为什么方法2读到得数据正确,而方法1运行后读出的9字节数据是错误的呢?请高手指点 |