输入参数: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(&quot;% 0x &quot;,x);
}
}
在mian.c内定义 数组Time【】
uint8_t Time[7];
在主函数内 调用上面的函数 read_addr_str(0,Time);
问题:
若取掉上面的屏蔽
x=Read_addr_dat(addr+i);
printf(&quot;% 0x &quot;,x);
打印出结果为
20 50 10 20 2 1 17
这是想要的到的结果 也是对的结果
可如果在调用完read_addr_str(0,Time);
后
printf(&quot;\n\rTime \n\r&quot;);
while(Time!='\0')
for(i=0;i<7;i++)
{
printf(&quot;% 0x &quot;,Time);
i++;
}
打印出来的结果是
20 50 10 20 eb ff 16
这是错误的
请问这函数read_addr_str(0,Time); 哪里错了??? |