unsigned char a=255;
unsigned char b=0x61;
printf("%d\r\n",a);//这样输出的a是并不正确,我希望a直接在串口助手上显示255
然后调用printf输出b,就是直接显示61。我想应该是数据格式不对,可是该怎么写呢?求帮助!
我已经设置好了,只是输出的没人不对,我觉得是%d这里有问题,只是不知道怎么改,请阁下帮忙呀!
追答unsigned char b=0x61;
……
然后调用printf输出b,就是直接显示61。
----
这不是完全正确吗?
你在串口助手上设置,按照ASCII码显示。
然后:
printf("%d",'2');
printf("%d",'5');
printf("%d\r\n",'5');
串口助手就应该显示:255。
51单片机,在keil中调试,调用printf函数,有关于输出的数据格式的问题进行...
然后调用printf输出b,就是直接显示61。显示正确。你用是16进制显示。我想应该是数据格式不对,。。。改改你的串口助手即可,是显示方式不对。 赞同
单片机C8051在Keil C51环境下使用printf函数打印,发现打印值和实际不...
也就是说,使用C51的printf()函数打印%d\/i\/u\/o\/x\/X格式时,你必须要指定该变量的存储格式l\/L\/b\/B。由于你的变量c为char类型,因此可将相应的代码改为如下:printf("%bd\\n",c);printf("%bu\\n",c);printf("%bx\\n",c);即可得到正确的结果。另:若变量c为uint16时,则需将%bd等改为...
printf()输出格式详解(Keil C51 、标准C)
printf()函数,作为C语言的核心输出工具,其核心功能是按照指定的格式将数据输出到标准输出,如终端屏幕。这个函数定义在stdio.h头文件中,其基本调用格式为:printf("格式化字符串", 输出参数)。格式化字符串由三部分构成:首先,字符串常量,直接输出其内容;其次,格式控制字符串,以%开头,用于定义输出...
keil中,putchar函数使用问题
include不同的头文件,就可以调用不同的putchar函数,你所百度的关于printf函数的是include<stdio.h>。如果同时加入stdio和自己又重新写putchar函数的时候,会出现两种情况,一起是C++的函数重载(具体可以看c++相关书籍),即不同的参数调用不同的函数。另外一种就是报错,会出现 Symbol putchar multiply...
keil c51 printf 问题
虽然是仿真,也要初始化串口,keil仿真只不过相当于给了你硬件而已。在keil中printf 默认是向串口中发送数据的,所以,如果应用该函数,必须先初始化串口,否则可能引起死机的情况,并且在printf之前应该先将TI置位,参考资料:http:\/\/blog.csdn.net\/lizhoubob\/archive\/2010\/07\/20\/5749737.aspx ...
关于Keil中的printf()函数的问题
1.printf函数是调用putchar函数输入的,而putchar应该是先判断ti是否为1,不为1则等待为1。如果为1则清0,然后送出一 个字符。因此你如果直接使用printf函数,你的程序就会在putchar函数中等待ti为1。这时你的程序就相当于直接死掉了。你可以通过改写 putchar函数实现自己的目的的。2.Keil的串口处理...
用C51在keil编译的时候,printf串口输出的时候,为什么要"IT=1"才能在...
这是因为printf函数是调用putchar函数输入;而putchar应该是先判断TI是否为1,不为1则等待为1。如果为1则清0,然后送出一个字符。而单片机上电复位后TI是为零的,因此你如果直接使用printf函数,你的程序就会在putchar函数中等待TI为1。所以在使用printf前,必须手动将TI=1。请到keil\/c51\/lib下查看...
51单片机 串口用 printf输出 ,当输出的数据类型是unsigned char的时候...
楼主你好。51单片机与标准C有区别:KEIL里扩展出了b,h,l来对输入字节宽的设置:(1)b八位 (2)h十六位 (3)l三十二位 在Keil C51中用printf输出一个单字节变量时要使用%bd,如 unsigned char counter;printf("Current count: %bd\\n", counter);而在标准C语言中都是使用%d:printf("Current ...
51单片机Keil C51下使用printf输出到串口,为何初始化了串口之后就可以使...
因为是这样的,在Keil\\C51\\LIB目录下有个putchar.c文件,printf函数会调用该文件中的 putchar函数,putchar里面的使用的寄存器都是标准51的(如TI,SBUF),它 们的地址是固定的,由此可知printf函数只针对串口0。如果想让printf函数支持串口1或串口2。。。那么修改putchar函数的寄存器即可,比如SBUF改为...
keil工程中使用printf,在哪输出
首先,这种基本的串行输入输出函数是通用的函数接口,应该是有一个通用库函数,工程中包含进去就好了;其次,printf一般都是通过串口来打印和接收数据的,所以做好单片机或这个ARM中UART接口的初始化。。最后,最好上面这些,当调用printf函数是,会通过板子上的串口(通常是UART0)打印输出数据的,利用串口...