51单片机 printf unsigned char型数组,输出格式写什么?
作者&投稿:枞章 (若有异议请与网页底部的电邮联系)
unsigned char的格式输入输出单个符是%c, 因为char是字符类型所以没有下负不分。
如果是一连串字符就要用%s.
楼主你好。
51单片机与标准C有区别:
KEIL里扩展出了b,h,l来对输入字节宽的设置:
(1)b八位
(2)h十六位
(3)l三十二位
在Keil C51中用printf输出一个单字节变量时要使用%bd,如
unsigned char counter;
printf("Current count: %bd
", counter);
而在标准C语言中都是使用%d:
printf("Current count: %d
", counter);
希望对你有帮助。
想以十进制输出就写%u
%s字符串,你可以循环用%C
伊曼安福: 51单片机中没有printf这个函数,你如果想用printf的话,要自己去写一个函数(在里面附上实现打印的代码).也就是说printf的原代码.调用它就能实现了 #include 包含进去 tp=ADCRead(adr);读取AD转换的值 sprintf(str, "AD Result is: %dmV \r"
抚宁县17528174354: 51单片机 串口用 printf输出 ,当输出的数据类型是unsigned char的时候 电脑收到的数自动乘上了256 - ?
伊曼安福: 楼主你好. 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 count: %d\n", counter); 希望对你有帮助.
抚宁县17528174354: 51单片机C语言中使用printf函数需要设置什么? - ?
伊曼安福: 其实和直接的串口发送是一样的#include <intrins.h> 包含进去 tp=ADCRead(adr);读取AD转换的值 sprintf(str, "AD Result is: %dmV \r", tp);str是个char型数组 再调用你编写的串口发送字符串程序发送str void sentstr(uchar *str) { while(1) { if(*str='\0')break; putbuffer(*str++); } } sentstr(str);
抚宁县17528174354: 51单片机Keil C51下使用printf输出到串口,为何初始化了串口之后就可以使用了? - ?
伊曼安福: 加了串口初始化程序后的printf函数能用的真正关键在于TI0先拉高了(TI0=1),因为第一次运行到printf函数的时候,如果前面没有TI0=1,那么程序指针PC就一直在这条语句上判断,也就死在这里等待.所以要使用printf,开头必须要先置TI0(传统51为TI)为1. 详见 http://wenku.baidu.com/link?url=av9rridiaYoRfjr-Wty7ynDQw2tQ8qsv4kUQDQW_vZavfxFg7cp5eFehO80pnwsj8pvRSnWaQFWajG2vpa8HKVY8vVeWbmaAeUmtaj8ONsm 望采纳!
抚宁县17528174354: 51单片机中的print与C中的printf有什么区别么? - ?
伊曼安福: 这个print函数是液晶屏驱动程序中自己编写的一个函数,与C库中的print没有联系,他是建立在1602液晶底层的程序基础之上的,应该还有两个函数一个是LCM2402_WriteData();和LCM2402_WriteCMD().C中的printf是输出到文件
抚宁县17528174354: c语言中使用printf要利用到系统内核吗? 假如在没有系统的环境下能够使用printf吗?如51单片机? - ?
伊曼安福: 当然可以,不过要实现你要的功能,得自己去重定向一个函数.例如,我利用串口来显示字符/* * 函数名:fputc * 描述 :重定向c库函数printf到USART1 * 输入 :无 * 输出 :无 * 调用 :由printf调用 */ int fputc(int ch, FILE *f) {/* 将Printf内容发往串...
抚宁县17528174354: 51单片机怎样实现SPI通讯 - ?
伊曼安福: 用传统的51单片机实现SPI通讯,需要用I/O脚来模拟SPI协议,这比较麻烦. 选用STC8系列单片机,就具有了SPI接口了 ,只需要对寄存器操作就行了.方便了很多了.如下图,这是STC8系列中的4个子系列,还有其它的子系列,就不再列举了.
抚宁县17528174354: 51单片机初学重点 - ?
伊曼安福: 引脚是肯定要学的 比如51有40个脚 有P0,P1,P2这3个口,另外还有特殊功能引脚 还有P0口是作为数据口 也可以作为地址口 存放低8位地址信号 那么P2口也可以作为数据口 同时也可以作为地址口 存放高8位地址信号 这样你要外部访问16位的地址 那么就要P0和P2一起用了 这只是个例子 这些引脚都要背熟的 存储器结构还好吧 也就编程的时候用到比较多 一般不怎么用到 只要知道你的芯片RAM,ROM大小就行了 如果你写的程序太大 超过了 就要用到外部扩展的RAM了 关键还是多画一些电路吧 熟悉一些常见的电路的画法 比如连LED显示啦 键盘啦 外部中断啦 计时器啦 还有一些常见的东西 比如动态显示啦 简单计算器啦 简单电子表啦
抚宁县17528174354: 51单片机是冯诺依曼还是哈佛结构 - ?
伊曼安福: 51单片机的 ROM 、RAM,是分别编址的.因此,是哈佛结构.
抚宁县17528174354: MCS - 51单片机谁给介绍下~?
伊曼安福: 1:其主要功能如下: ·8位CPU ·4kbytes 程序存储器(ROM) ·128bytes的数据存储器(RAM) ·32条I/O口线 ·111条指令,大部分为单字节指令 ·21个专用寄存器 ·2个可编程定时/计数器 ·5个中断源,2个优先级 ·一个全双工串行通...