学习笔记|printf函数的实现|不同操作系统中的换行|数的进制:2进制、10进制、16进制转换|STC32G单片机视频开发教程(冲哥)|第五集:C语言基础

文章目录

1.C语言 printf函数的实现

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

STC32中对printf重新进行了实现。


Tips:ASCII码表

Tips:找不到头文件怎么办?

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

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

主函数添加程序:

C 复制代码
		if( DeviceState != DEVSTATE_CONFIGURED ) 	//
			continue;
		if( bUsbOutReady )
		{
			usb_OUT_done(); //接收应答(固定格式)
			//用户需执行的printf代码段
		}

常规用法:

C 复制代码
			printf("%03.3f\r\n",1.12);
			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进制数,之后按位对应即可:

应用:整体端口的操作

设置P2点灯代码为:P2 = 0xED; //11101101

3.C语言常用运算符

1、算术运算符

加(+)减(---)乘(*)除(/)

模(余)运算符(%):不允许出现浮点型,余数正负取决于被除数正负

自增(++i,--i;i++,i--)

2、位运算符

右移(>>)左移(<<)

按位与(&)

按位或(|)

按位异或(^)

取反(~)

测试代码

C 复制代码
			printf("%u \r\n",1<<1);

			printf("%u \r\n",1<<2);

			printf("%u \r\n",1<<3);

			printf("%u \r\n",0x11 & 0x10); //

			printf("%u \r\n",0x11 | 0x10); //

			printf("%u \r\n",~0x11); //

代码运算结果:

左移运算:

代码运算解析:

4.数据的基本类型

总结

1.学会printf的格式化输出(后面会反复用到)

2.了解进制数

3.学会加减乘除等运算符

4.了解数据类型和数值范围

课后练习:自己练习一下printf的用法。

相关推荐
chushiyunen6 小时前
欧洲地理笔记
笔记
吃着火锅x唱着歌6 小时前
Effective C++ 学习笔记 条款43 学习处理模板化基类内的名称
c++·笔记·学习
weixin_431600447 小时前
Agent Workflow 学习向:Code 节点,比模板更强的变量加工
后端·python·学习·ai·
Xuanzang Road8 小时前
第 40 届学习强企玄奘路戈壁挑战赛:在绝境中重塑自我
学习
tju新生代魔迷9 小时前
Python学习日记3
学习
恒锐丰小瑞9 小时前
率能SS8841T 40V/2.5A/双通道H桥驱动芯片,PWM控制接口与低导通电阻(350mΩ),用于POS打印机/安防相机/机器人
单片机·嵌入式硬件·机器人
zcmodeltech10 小时前
钢铁冶金沙盘模型控制系统设计与实现:高炉-连铸-热轧多工序联动方案
分布式·stm32·单片机·嵌入式硬件·交互
hsjiasb11 小时前
FreeRTOS学习(三十九)——最终总结
学习·学习笔记·freertos
徽京人11 小时前
VS Code 接入Esp 32步骤
vscode·单片机·嵌入式硬件
m4Rk_12 小时前
【论文阅读】Agent 记忆机制(47):Nemori——用“预测误差”判断什么经验值得被记住
论文阅读·人工智能·学习·开源·github