MSP430的 printf 实现

2019-03-24 09:24发布

用IAR调试MSP430的ADXL345的程序,发现  读取ADXL345成功后,用printf输出总是有问题。
其中putchar的具体实现为:
int putchar(int ch)
{
  if(ch==' ')  //' '(回车)扩展成' '' '(回车+换行)

  UartWriteChar(' ');//0x0d换行
  else

  UartWriteChar(ch); //从串口发出数据
  return(ch);

}




printf输出部分,程序为:
  Multiple_readI2C(ADXL345_ADDRESS,&buf[0],ADXL345_DATAX0  ,6);
  printf("获得的数据为:");
int i=0;
for (i=0;i<10;i++)
  printf("%d  ",buf);
printf(" ");

输出效果为:
获得的数据为:115  115  115  115  115  115  115  115  115  115  
buf的定义为:
uchar  buf[10];
调试时buf数据为:



此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
568760310
1楼-- · 2019-03-24 17:29
 精彩回答 2  元偷偷看……
lcofjp
2楼-- · 2019-03-24 19:35
< :TI_MSP430_内容页_SA7 --> 这个调试很简单,在putchar处打个断点不就一目了然了。
568760310
3楼-- · 2019-03-24 22:19
lcofjp 发表于 2016-5-1 08:42
这个调试很简单,在putchar处打个断点不就一目了然了。

一目了然到是,关键是putchar的ch的数据是怎么来的?
应该是buf映射到ch的,实际上却不是。
philipchiu
4楼-- · 2019-03-25 02:30
 精彩回答 2  元偷偷看……
568760310
5楼-- · 2019-03-25 04:01
philipchiu 发表于 2016-5-1 16:20
试试看,printf("%d ", buf++);

仍然不对, 我发现printf("%d",1);的输出都不对,输出的中文字符都对遇到数字就出错。
568760310
6楼-- · 2019-03-25 05:00
已解决,


     for (i=0;i<10;i++)
       printf("%d ",((int)xbuf[i]));

一周热门 更多>

相关问题

    相关文章