打印
[STM8]

STM8S printf打印出错,无法打印变量

[复制链接]
4949|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
有意思|  楼主 | 2010-1-26 21:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用printf函数,可以打印字符串,但是不能打印可变参数变量
printf("uart1 ....\x0d\x0a");可以正确打印
但是打印数据就出错如:
for (i=0; i<7; i++) {
    buf[i]=i+1;
}
for (i=0; i<7; i++) {
    printf("buf[%d]=%d\x0d\x0a", i, buf[i]);
}
这样就打印不出来,变成buf[328]=8822之类的,不知道为什么
printf("i=%d\x0d\x0a", 50);结果正确,打印i=50
i=50;
printf("i=%d\x0d\x0a", i);结果就不正确了,

哪里有问题??
沙发
香水城| | 2010-1-27 10:15 | 只看该作者
看看堆栈是否足够大?

使用特权

评论回复
板凳
有意思|  楼主 | 2010-3-5 23:32 | 只看该作者
跟堆栽没关系
使用printf和sprint时,必许将入口参数强制u16转换
u8 x=50;
printf("x=%d\x0d\x0a", (u16)x);

使用特权

评论回复
地板
CBeginners| | 2016-7-21 17:46 | 只看该作者
有意思 发表于 2010-3-5 23:32
跟堆栽没关系
使用printf和sprint时,必许将入口参数强制u16转换
u8 x=50;

一直以为是COSMIC的问题没办法

使用特权

评论回复
5
heisexingqisi| | 2016-7-21 22:51 | 只看该作者
定义的类型出问题了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

79

主题

331

帖子

0

粉丝