找回密码
 立即注册
楼主: wuzhengmin

第一次:环境的创立 | 送实验箱

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:17
  • 最近打卡:2025-08-22 10:12:58
已绑定手机

1

主题

158

回帖

407

积分

中级会员

积分
407
发表于 2025-8-12 11:50:27 | 显示全部楼层
最终测试:


一切顺利,到此我们就结束纪念堂的学习,感谢STC,感谢冲哥!!!
截图202508121149366019.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:17
  • 最近打卡:2025-08-22 10:12:58
已绑定手机

1

主题

158

回帖

407

积分

中级会员

积分
407
发表于 2025-8-13 08:50:51 | 显示全部楼层

第八次:《8051U深度入门到32位51大型实战教学视频》实验五

   


8051U深度入门到32位51大型实战视频
哪怕梦想让我们拼的遍体鳞伤,这一次我们也要勇往直前主讲人:冲哥


        第五集C语言基础



摘要
1.C语言 USB-CDC串口之printf函数的实现
2.数的进制:2进制、10进制、16进制
3.数据的基本类型
4.C语言常用运算符.



本节课是C251入门基础, 特别是C语言 USB-CDC串口之printf函数的实现


调试程序的时候,printf()可以快速的帮我们打印出变量的类型,当前值等等信息!所以我们要用这个USB_CDC串口的printf函数的实现!!!

1.打开USB库中的PRINTF_HID宏定义(去掉//)


先开个新目录--C语音初步,接着把上一节课的项目复制过来

先打开项目,在STC3232_STC_8_USB.H文件里,把第6行的//去掉:

















截图202508130850395165.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:17
  • 最近打卡:2025-08-22 10:12:58
已绑定手机

1

主题

158

回帖

407

积分

中级会员

积分
407
发表于 2025-8-13 09:02:33 | 显示全部楼层
2.理解PRINTF的函数原型的定义
#define printf printf_hid
int printf_hid(const char*fmt;...)

观察头文件里的这几句:
#if defined PRINTP_SEGLED
#define printf SEG7_ShowString
Helif defined PRINIF_HID
#define printf prints_hid

#endit

printf重定向到了这个上面,我们以后所有出现printf的地方,它都可以用 prints_hid去代替。


#define printf  printf_hid  //#define 替换名  被替换名




截图202508130902262596.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:17
  • 最近打卡:2025-08-22 10:12:58
已绑定手机

1

主题

158

回帖

407

积分

中级会员

积分
407
发表于 2025-8-13 09:07:18 | 显示全部楼层
2.理解PRINTF的函数原型的定义
#define printf printf_hid
int printf_hid(const char*fmt;...);

参数fmt--是格式控制字符串,包含了两种类型的对象:普通字符和转换说明。

普通字符:在输出时,普通字符将原样不动地复制到标准输出。

printf("8051U深度入门到32位51大型实战视频\r\n");



截图202508130907122168.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:17
  • 最近打卡:2025-08-22 10:12:58
已绑定手机

1

主题

158

回帖

407

积分

中级会员

积分
407
发表于 2025-8-13 09:10:38 | 显示全部楼层
转换说明:不直接输出,用于控制printf中参数的转换和打印。
每个转换说明都由一个百分号学符(%)开始,以转换说明符结束,从而说明输出数据的类型、宽度、精度等。


printf("80510深度入门到32位51大型实战视频,%s\r\n","加油");


执行结果是:


截图202508130910331655.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:17
  • 最近打卡:2025-08-22 10:12:58
已绑定手机

1

主题

158

回帖

407

积分

中级会员

积分
407
发表于 2025-8-13 09:39:36 | 显示全部楼层
这里%s 的意思是转义符%之后,是逗号之后的字符串


“ ” 自然是英文的!



if (bUsbOutReady)  //如果接受到了数据
        {
            //USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
                       
            printf("STC YYDS\r\n");
                       
            usb_OUT_done();  //清除当前的接收区
        }


编译下载后,COM口会出现CDC 串口



         

截图202508130928185186.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:17
  • 最近打卡:2025-08-22 10:12:58
已绑定手机

1

主题

158

回帖

407

积分

中级会员

积分
407
发表于 2025-8-13 10:19:34 | 显示全部楼层
这个USB-CDC ,和我们普通的串口有什么区别呢?

任意的波特率它都是可以工作的!!!而普通的COM是不可能的!!!


因为它的本质是USB在通信,所以说这里我们不管任意的波特率,都是可以正常工作!这是有硬件芯片的支持的!


转换说明简介:
1·类型:根据不同的fmt字符串,函数可能需要一系列的附加参数,每个参数包含了一个要被插入的值,替换了fmt参数中指定的每个%标签。
关于附加参数,既可以是变量,也可以是常量。


2.位置:printf()函数的普通字符和转换说明放在""双引号内,附加参数放在双引号外,每个附加参数之间用逗号隔开。

3·数量:printf()的附加参数与转换说明符是一一对应关系,如果有n个转。
换说明符;printf()的参数就应该有n+1个。如果参数个数少于对应的转换说明符,printf()可能会输出内存中的任意值。

猜猜下面这句语句結果

printf("今天是%d年%d月%d日\r\n",24,11,16);

前面有三个%,那么这后面就应该有三个数字。这个数既可以是变量,也可以是常量

百分之s输出字符串,字符串就是双引号里扩起来的一个叫字符串,再来看一下这个百分之d,就是以十进制整数的形式输出。


所以上面的输出结果的:今年是 24年11月16日





回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:17
  • 最近打卡:2025-08-22 10:12:58
已绑定手机

1

主题

158

回帖

407

积分

中级会员

积分
407
发表于 2025-8-13 10:24:21 | 显示全部楼层
标志                            含义                                          实例
n.m           n表示整数占几行,m表示小数占                   %2.3f

大家感兴趣可以自己去试一下




截图202508131024161223.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:17
  • 最近打卡:2025-08-22 10:12:58
已绑定手机

1

主题

158

回帖

407

积分

中级会员

积分
407
发表于 2025-8-13 10:26:48 | 显示全部楼层
前面的图片看不清:

再来一次!

截图202508131026415740.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:17
  • 最近打卡:2025-08-22 10:12:58
已绑定手机

1

主题

158

回帖

407

积分

中级会员

积分
407
发表于 2025-8-13 10:33:08 | 显示全部楼层
这里重点要关注的一个就是\t ,就是水平制表符,可以看到这里一个是8个空格


截图202508131033036211.jpg
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-8-24 09:13 , Processed in 0.127213 second(s), 92 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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