找回密码
 立即注册
查看: 334|回复: 0

学习笔记|printf函数的实现||STC32G单片机视频开发教程(冲哥)|第五集:C语言基础

[复制链接]

该用户从未签到

12

主题

7

回帖

82

积分

注册会员

积分
82
发表于 2023-8-11 14:08:13 | 显示全部楼层 |阅读模式
本帖最后由 打酱油的工程师 于 2023-8-11 14:11 编辑

1.C语言 printf函数的实现
printf 是指格式化输出函数,主要功能是向标准输出设备按规定格式输出信息。printf是C语言标准库函数,定义于头文件 。printf 函数的一般调用格式为:printf("<格式化字符串>", <参量表>) [1] 。输出的字符串除了可以是字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。 STC32中对printf重新进行了实现。








Tips:ASCII码表







Tips:找不到头文件怎么办?
冲哥视频附带的每课测试程序会用到一些头文件,都在每课资源包的COMM文件夹中,打开工程后options-C251加入lib path中即可 :





之后重新编译,代码通过。 注意:开始本节程序代码添加前,必须有一次正确的编译。

主函数添加程序:
  1.   if( DeviceState != DEVSTATE_CONFIGURED )         //
  2.                         continue;
  3.                 if( bUsbOutReady )
  4.                 {
  5.                         usb_OUT_done(); //接收应答(固定格式)
  6.                         //用户需执行的printf代码段
  7.                 }
复制代码

常规用法:
  1. printf("%03.3f\r\n",1.12);
  2.                         printf("%u \r\n",1<<3);
复制代码

打开上节课写过的demo:0.Sample -CDC,重命名为:C-Printf的实现,打开工程,并编译,无问题,无警告。 注册COMM引用的头文件需采用冲哥视频配套配件,与最新版的头文件存在差异,会造成编译失败。 打开STC-ISP,重复延时选2-3s,因为CDC串口生成需要点时间。 可以勾选每次下载前都先发送自定义命令和当目标文件变化时自动装载并发送下载命令,下载至开发板。





选USB一CDC/串口助手:





可以看到串口返回了数据(文本模式),后期可以通过printf实现温度等数据的打印输出。

Tips:不同操作系统中的换行
在Windows系统中我们输入回车时,输入的字符是\r\n,unix系统中回车为\n, mac系统中回车的字符为\r。 一个16进制的数代表一个字符,以字符“0”为例,16进制为30,转换为十进制是48:









⒉数的进制:2进制、10进制、16进制.
常见的对应:















16进制的f代表了2进制里的4个位,








二进制转为10进制的计算方法:

















10进制转16进制,可以用10进制数先除以16,得到整数15,对应“f”(十位)。







剩余11,对应b,所有251对应fb,和计算器结果相符:










2进制转16进制数,4位一组(2^4=16)对应1个16进制数,之后按位对应即可:













欢迎大家访问我的CSDN:打酱油的工程师
回复 送花

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 06:02 , Processed in 0.054037 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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