迪文科技论坛

 找回密码
 立即注册
搜索
查看: 267|回复: 2

【提问】关于printf输出数值的问题

[复制链接]

3

主题

8

回帖

56

积分

注册会员

Rank: 2

积分
56
发表于 2022-4-9 10:35:41 | 显示全部楼层 |阅读模式
看视频谢了一个demo,发现输出数值的时候有问题,
1. 定义一个数aaa,然后通过串口输出,
xdata u32 aaa;
aaa=123456789;
printf("aaa=%d \n",aaa);


2. 结果却是
aaa=1883

3. 串口输出方法
// 发送一个字节
void uart2_send_byte(u8 byte)
{
    ES0 = 0;                      // 发送时禁止全局中断
    SBUF0 = byte;         // 往发送寄存器中写入一个字节
    // 等待发送完成
    while (!TI0)
    {
        ;
    }
    TI0 = 0;                 // 清除发送标示值
    ES0 = 1;                 // 允许全局中断
}

// 重写方法
char putchar(char c)
{
    uart2_send_byte(c);
    return c;
}

回复

使用道具 举报

3

主题

8

回帖

56

积分

注册会员

Rank: 2

积分
56
 楼主| 发表于 2022-4-9 10:56:42 | 显示全部楼层
看了论坛其它人的帖子,已解决,输出语句有问题,输出应该写成printf("aaa=%ld ",aaa);
回复

使用道具 举报

0

主题

1276

回帖

5390

积分

论坛元老

Rank: 8Rank: 8

积分
5390
发表于 2022-5-26 11:02:47 | 显示全部楼层
daylylife 发表于 2022-4-9 10:56
看了论坛其它人的帖子,已解决,输出语句有问题,输出应该写成printf("aaa=%ld ",aaa); ...

感谢楼主 分享经验
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2025-4-6 11:33 , Processed in 0.045285 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表