神农鼎 发表于 2024-2-27 11:56:03

printf函数 的 格式参数; USB接口 使用 printf 打印数据

keil C51 编译器使用 printf 打印数据时,
在%后面根据数据格式需要加关键字:8位"b", (默认)16位"h"或不加, 32位"l"

例如打印有符号十进制数据:
打印8位数据:%bd
打印16位数据:%hd 或者 %d
打印32位数据:%ld

keil C251 编译器使用 printf 打印数据时,
8位/16位不加参数, 32位加"l"

USB接口 使用 printf 打印数据时
在USB头文件前定义 #define PRINTF_HID         //将printf函数映射到USB接口
或者在USB头文件里面开启 #define PRINTF_HID定义
===有视频讲解

乘风飞扬 发表于 2024-2-27 14:59:57

keil C51 编译器使用 printf 打印数据时,
在%后面根据数据格式需要加关键字:8位"b", (默认)16位"h"或不加, 32位"l"

例如打印有符号十进制数据:
打印8位数据:%bd
打印16位数据:%hd 或者 %d
打印32位数据:%ld
      printf("cnt8=%bu, ",cnt8++);      //C51编译器printf输出8位数据需要使用"%b"
      printf("cnt16=%hu, ",cnt16++);      //C51编译器printf输出16位数据需要使用"%h"或不加参数
      printf("cnt32=%lu\r\n",cnt32++);    //C51编译器printf输出32位数据需要使用"%l"

keil C251 编译器使用 printf 打印数据时,8位/16位不加参数, 32位加"l"
      printf("cnt8=%u, ",cnt8++);         //C251编译器printf可直接输出8位/16位数据
      printf("cnt16=%u, ",cnt16++);       //C251编译器printf可直接输出8位/16位数据
      printf("cnt32=%lu\r\n",cnt32++);
USB接口 使用 printf 打印数据时
在USB头文件前定义 #define PRINTF_HID      //将printf函数映射到USB接口
或者在USB头文件里面开启 #define PRINTF_HID定义
【USB-CDC@STC32, USB-CDC@STC8H】 中如何用

【USB-HID@STC32, USB-HID@STC8H】 中如何用



2023/7/3期,STC32位8051实战宣讲会演示视频:

https://www.stcaimcu.com/forum.p ... 2990&extra=page%3D1



LAOXU 发表于 2024-2-27 15:57:08

补充一下:
1.   16位数据 "h" 和 'i' 同等效果
2.不区分大小写.
3."f"        浮点数用格式[-]dddd.dddd
4."e"        浮点数用格式[-]d.dddde[-]dd
5."E"        浮点数用格式[-]d.ddddE[-]dd
6."g"        浮点数用 e或 f格式, 无论那个对指定的值或精度更简洁
7."G"        和 g格式一样, 除了可能指数前为 E而不是 e

神农鼎 发表于 2024-2-27 12:00:28

这个知识点 已完善解释,大家收藏下 !
重要的是,还补充了:
【USB-CDC@STC32, USB-CDC@STC8H】 中如何用
【USB-HID@STC32, USB-HID@STC8H】 中如何用



xxkj2010 发表于 2024-2-27 13:56:20

printf函数,现在找不到输出二进制的参数,也许原生就是没有的。

WHX 发表于 2024-3-2 06:47:41

学习了,谢谢

biaogreat 发表于 2024-3-2 07:47:00

keil C51 编译器使用 printf 打印数据时,
在%后面根据数据格式需要加关键字:8位"b", (默认)16位"h"或不加, 32位"l"

例如打印有符号十进制数据:
打印8位数据:%bd
打印16位数据:%hd 或者 %d
打印32位数据:%ld

Tuier 发表于 2024-3-17 11:21:05

总结得很好,收藏了

soma 发表于 2024-3-21 19:16:36

还没使用过printf函数{:4_167:}

haishi28 发表于 2024-4-12 10:57:42

Mark, printf 需要定义char putchar(char c)
页: [1] 2
查看完整版本: printf函数 的 格式参数; USB接口 使用 printf 打印数据