标题: 关于oled写入字节的问题 附单片机程序 [打印本页]

作者: egsresrhtrhrtst    时间: 2023-4-24 18:48
标题: 关于oled写入字节的问题 附单片机程序
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] 的值吗。


作者: jinjin999    时间: 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]。
作者: jiangxw    时间: 2023-4-24 22:19
数组cmd_data的首地址,也就是cmd_data[0]的数据,后面那个2应该是数组的长度,就是cmd_data[0]和cmd_data[1]的数据。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1