TA的每日心情 | 开心 昨天 08:31 |
---|
签到天数: 185 天 [LV.7]常住居民III
高级会员
- 积分
- 904
|
楼主 |
发表于 2024-5-31 13:47:52
|
显示全部楼层
不是这句. 这是宏定义, 原文是这样的吧?
#define OLED_CMD 0 //写命令
#define OLED_DATA 1 //写数据
宏定义的作用是用比较好理解和记忆的用词来代替一些(不太好记忆的、枯燥的、意义不明确的)变量或数值.
比如有了上述定义后,
凡是用"OLED_CMD"的地方, 就代表是用数值0;
凡是用"OLED_DATA"的地方,就代表是用数值1;
关于写字节数的函数OLED_WR_Byte(); 是 oled.c文件中的那个语句..
原文是这样的: (网上流传的)
//========================================================================
// 函数名称: OLED_WR_Byte
// 函数功能: OLED地址/数据写入函数
// 入口参数: @dat:数据 @cmd:命令
// 函数返回: 无
// 当前版本: VER1.0
// 修改日期: 2023 - 6 - 7
// 当前作者: ZCF
// 其他备注:
//========================================================================
void OLED_WR_Byte(u8 dat,u8 cmd)
{
u8 udat[1] ;
udat[0] = dat;
if( cmd==1 )
IIC_Write_NByte(0X78,0x40,udat,1);
else
IIC_Write_NByte(0X78,0x00,udat,1);
}
你看它的位置就是写在延时函数之后, 其它函数之前的, 这样其它函数就可直接调用... 而不一定必须要在头文件中申明的.
这函数的第一个参数dat就是表示所要写入的字节数字,
第二个参数cmd就是表示所写的是命令呢还是一个数值,是一个标识字。
当写作"OLED_CMD"时, 其实就是0, 代表第一参数写的是"命令",
当写作"OLED_DATA"时, 其实就是1, 代表第一参数写的是"数值",
有的地方写 "OLED_CMD" 就是告诉OLED显示屏, 第一参数dat这是指令, 要执行某个动作了...
有的地方写 "OLED_DATA", 就是告诉OLED显示屏, 第一参数dat这是数据, 要写入是数据了...
比如后边OLED_BuffShow()函数, 就用到了"OLED_DATA"。
// 入口参数: @dat:数据 @cmd:命令
这样的写法,可能会使初学者不太好理解.....
|
|