大学生
最后登录1970-1-1
在线时间 小时
注册时间2015-7-7
|
输入参数:addr 输入的寄存器地址, *str 被调用的数组
函数功能:Read_addr_dat(addr) 读取 地址为addr的值
void read_addr_str(uint8_t addr,uint8_t *str)
{
uint8_t i,x;
for(i=0;i<7;i++)
{
*str=Read_addr_dat(addr+i);
str++;
// x=Read_addr_dat(addr+i);
// printf("% 0x ",x);
}
}
在mian.c内定义 数组Time【】
uint8_t Time[7];
在主函数内 调用上面的函数 read_addr_str(0,Time);
问题:
若取掉上面的屏蔽
x=Read_addr_dat(addr+i);
printf("% 0x ",x);
打印出结果为
20 50 10 20 2 1 17
这是想要的到的结果 也是对的结果
可如果在调用完read_addr_str(0,Time);
后
printf("\n\rTime \n\r");
while(Time[i]!='\0')
for(i=0;i<7;i++)
{
printf("% 0x ",Time[i]);
i++;
}
打印出来的结果是
20 50 10 20 eb ff 16
这是错误的
请问火哥 这函数read_addr_str(0,Time); 哪里错了???
|
|