51单片机PRINTF函数使用注意事项(变量输出不正确的同学进)

2020-01-18 18:49发布

以前我说过KEIL里面写51程序时,如果要使用printf函数时一定要把串口配置好,把TI置1才可以正常使用,但仍然有部分同学遇到一个问题,那就是为什么有时候输出变量不正确,明明是8位的变量最多也就255,居然输出个16位的变量。
    原因很简单:printf如果输出变量的话,一定要用unsigned int型才可以,不能用char型!!!
    如果是char 或unsigned char的变量要打印出来的话一定强制转换成int 或unsigned int才可以!!!
    遇到此类问题的同学可以尝试一下……

    举例子:
    unsigned int i;
    i = 15;
    printf("%d ",i);    可以正确打印

    若是
    unsigned char i;
    i = 15;
    printf("%d ",i);    则会出现错误

    需要改一下
    unsigned char i;
         i = 15;
    printf("%d ",(unsigned int)(i));  可以正确打印
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
tirion
1楼-- · 2020-01-19 18:08
同意5楼,自己重新写一个格式化输出函数比较好。
有些奇奇怪怪的问题出来的时候,你就知道为什么了。
heropy
2楼-- · 2020-01-19 20:27
我自己的打印函数不行啊,字符串竟然是乱码
a20084666
3楼-- · 2020-01-19 22:34
大师啊  大师啊  真是厉害啊  问题解决了  哄哄
昨夜清风
4楼-- · 2020-01-19 23:25
自己写的好,还可以调试
fan2015
5楼-- · 2020-01-20 01:47
 精彩回答 2  元偷偷看……

一周热门 更多>