- 打卡等级:偶尔看看II
- 打卡总天数:21
- 最近打卡:2025-01-19 13:42:05
注册会员
- 积分
- 99
|
发表于 2024-7-2 21:41:53
|
显示全部楼层
第五集
冲哥先是把这段程序复制进了keil里
这里#include "COMM/stc.h"
#include "COMM/usb.h"
sys_init(); //USB功能+io初始化
usb_init(); //usb库的初始化
EA = 1; //开中断
if( DeviceState != DEVSTATE_CONFIGURED ) //这里是看usb有没有连接成功
continue;
if( bUsbOutReady ) //判断有没有接收到数据
{
usb_OUT_done(); //这个可能是开启串口输出 keil看不到函数内容不知道emmm
printf("%03.3f\r\n",1.12); //发送数据
}
}
这个usb只有个头文件 我用keil想看函数内容还看不到 如图1
接下来冲哥讲了printf的使用教程
%d:输出有符号十进制整数。
%u:输出无符号十进制整数。
%f:输出浮点数。
%e 或 %E:输出指数形式的浮点数。
%g 或 %G:输出浮点数,自动选择 %f 或 %e。
%c:输出单个字符。
%s:输出字符串。
%p:输出指针的值(通常是十六进制形式)。
%x 或 %X:输出十六进制整数,%x 输出小写字母,%X 输出大写字母。
%o:输出八进制整数。
%ld、%lu、%lf 等:用于输出长整型、无符号长整型、长浮点数等,l 表示 long。
printf("这里写格式指定符",这里写要写入的对应的数据)
后面冲哥讲了ASCII码表里面的对应编码来使用 printf输出相应数据
二进制 十进制 十六进制转换方法
二进制转十进制
二进制转十进制的步骤是将每个二进制位乘以其对应的2的幂次,然后将结果相加。
例如将1101转换成十进制
1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0
= 8 + 4 + 0 + 1
= 13
将十进制转换为二进制数可以用除2取余
第一个除2余 得到的数为个位
第二个为十位依次类推
2进制转16进制
将二进制数分为四位的组
将每组转换为相应的十六进制数字
我觉得还是用计算器算方便 但是不排除需要自己算的时候 比如考试。。。。
后面冲哥讲的是c语言运算符在printf中的使用
我将这些运算符列出来
算术运算符
+:加法运算符,用于两个数相加。
-:减法运算符,用于两个数相减。
*:乘法运算符,用于两个数相乘。
/:除法运算符,用于两个数相除。
%:取模运算符,用于求两个数相除的余数。
关系运算符
==:等于运算符,用于判断两个数是否相等。
!=:不等于运算符,用于判断两个数是否不相等。
>:大于运算符,用于判断左边的数是否大于右边的数。
<:小于运算符,用于判断左边的数是否小于右边的数。
>=:大于或等于运算符,用于判断左边的数是否大于或等于右边的数。
<=:小于或等于运算符,用于判断左边的数是否小于或等于右边的数。
逻辑运算符
&&:逻辑与运算符,用于两个条件都为真时结果才为真。
||:逻辑或运算符,用于两个条件中有一个为真时结果就为真。
!:逻辑非运算符,用于反转条件的真假。
赋值运算符
=:赋值运算符,用于将右边的值赋给左边的变量。
+=:加后赋值运算符,相当于 x = x + y。
-=:减后赋值运算符,相当于 x = x - y。
*=:乘后赋值运算符,相当于 x = x * y。
/=:除后赋值运算符,相当于 x = x / y。
%=:取模后赋值运算符,相当于 x = x % y。
位运算符
&:按位与运算符,用于两个数的每一位进行逻辑与操作。
|:按位或运算符,用于两个数的每一位进行逻辑或操作。
^:按位异或运算符,用于两个数的每一位进行逻辑异或操作。
~:按位取反运算符,用于对一个数的每一位进行取反操作。
<<:左移运算符,用于将一个数的所有位向左移动指定的位数。
>>:右移运算符,用于将一个数的所有位向右移动指定的位数。
杂项运算符
? ::条件运算符,用于基于条件表达式的结果选择两个值中的一个。
sizeof():sizeof运算符,用于返回数据类型或变量的大小(以字节为单位)。
&:取地址运算符,用于返回变量的地址。
*:指针运算符,用于解引用指针,访问指向的变量。
自增和自减运算符
++:自增运算符,用于将变量的值增加1。
--:自减运算符,用于将变量的值减少1。
C语言中的运算符具有特定的优先级,决定了表达式中的运算顺序。例如,乘法和除法的优先级高于加法和减法,括号可以用来改变优先级顺序。
最后讲了基本数据类型和取值范围 这里看图2
|
-
-
|