找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 575|回复: 2
打印 上一主题 下一主题
收起左侧

关于oled写入字节的问题 附单片机程序

[复制链接]
跳转到指定楼层
楼主
ID:978416 发表于 2023-4-24 18:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void oled_write_byte(uint8_t dat, uint8_t cmd)
{
    static uint8_t cmd_data[2];
    if(cmd == OLED_CMD)
    {
        cmd_data[0] = 0x00;
    }
    else
    {
        cmd_data[0] = 0x40;
    }
    cmd_data[1] = dat;
    HAL_I2C_Master_Transmit(&hi2c1, OLED_I2C_ADDRESS, cmd_data, 2, 10);
}

问一下各位这个oled写入字节的程序里 HAL_I2C_Master_Transmit(&hi2c1, OLED_I2C_ADDRESS, cmd_data, 2, 10);中的cmd_data的值是多少,是cmd_data[1] 的值吗。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1073856 发表于 2023-4-24 19:57 | 只看该作者
在这个程序中,cmd_data 是一个长度为 2 的静态 uint8_t 数组,其中 cmd_data[0] 存储命令和数据的控制位,cmd_data[1] 存储具体的数据。在程序中,cmd_data[0] 的值根据 cmd 参数的值确定,当 cmd 参数为 OLED_CMD 时,cmd_data[0] 的值为 0x00,表示发送的是命令;当 cmd 参数为其他值时,cmd_data[0] 的值为 0x40,表示发送的是数据。

因此,在 HAL_I2C_Master_Transmit 函数的参数中,cmd_data 参数是一个指向 cmd_data[0] 的指针,长度为 2,表示需要发送 2 个字节的数据,其中第一个字节是控制位,第二个字节是具体的数据。所以,cmd_data 数组中的值应该是 cmd_data[0] 和 cmd_data[1]。
回复

使用道具 举报

板凳
ID:43720 发表于 2023-4-24 22:19 | 只看该作者
数组cmd_data的首地址,也就是cmd_data[0]的数据,后面那个2应该是数组的长度,就是cmd_data[0]和cmd_data[1]的数据。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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