2524|6

171

帖子

1

TA的资源

一粒金砂(高级)

楼主
 

MSP430的 printf 实现 [复制链接]

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

  UartWriteChar('\r');//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("\n");

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



QQ截图20160501082836.jpg (5.22 KB, 下载次数: 0)

buf对应的数据(memory)

buf对应的数据(memory)

1.jpg (51.46 KB, 下载次数: 0)

quick watch(buf的数据)

quick watch(buf的数据)

最新回复

试试看,printf("%d\n", buf++);  详情 回复 发表于 2016-5-1 16:20
 
点赞 关注

回复
举报

171

帖子

1

TA的资源

一粒金砂(高级)

沙发
 
printf 输出的数据不对,为什么会出现这种状况??菜鸟求指教
 
 

回复

6040

帖子

196

TA的资源

版主

板凳
 
这个调试很简单,在putchar处打个断点不就一目了然了。

点评

一目了然到是,关键是putchar的ch的数据是怎么来的? 应该是buf映射到ch的,实际上却不是。  详情 回复 发表于 2016-5-1 08:53
 
 
 

回复

171

帖子

1

TA的资源

一粒金砂(高级)

4
 
lcofjp 发表于 2016-5-1 08:42
这个调试很简单,在putchar处打个断点不就一目了然了。

一目了然到是,关键是putchar的ch的数据是怎么来的?
应该是buf映射到ch的,实际上却不是。
 
 
 

回复

216

帖子

0

TA的资源

一粒金砂(中级)

5
 
试试看,printf("%d\n", buf++);

点评

仍然不对, 我发现printf("%d",1);的输出都不对,输出的中文字符都对遇到数字就出错。  详情 回复 发表于 2016-5-2 09:44
 
 
 

回复

171

帖子

1

TA的资源

一粒金砂(高级)

6
 
philipchiu 发表于 2016-5-1 16:20
试试看,printf("%d\n", buf++);

仍然不对, 我发现printf("%d",1);的输出都不对,输出的中文字符都对遇到数字就出错。
 
 
 

回复

171

帖子

1

TA的资源

一粒金砂(高级)

7
 
已解决,


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

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表