QY13820576685 2023-10-08 15:45 采纳率: 16.7%
浏览 8

关于u8g2使用的问题。

关于u8g2使用的问题。
我的环境是arm-linux下使用u8g2在lcd上显示信息(ps:都上了linux了为啥还用lcd,我也不知道 摊手)
我所用的lcd驱动ic是ST7567,根据数据手册的描述CMD字节是0xC0 data字节是0X80,可是命令行打印出来的数据发现,CMD变成了0x0,Data变成了0x40。我网上找回调函数,没找到在哪里修改这个字节。请问大家有知道的吗?
如图

img

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-10-09 06:28
    关注

    引自强大而免费的微信小程序:皆我百晓生。


    在u8g2库中,可以通过设置U8G2_ST7567_C0U8G2_ST7567_80来指定命令和数据的字节值。默认情况下,这些值已经被设置为正确的值。如果你发现CMD和Data的字节值错误,可能是因为你使用的u8g2库版本不正确或者你没有正确配置lcd驱动。

    首先,确保你使用的是最新版本的u8g2库,可以从u8g2的官方Github仓库中下载最新的版本。然后,在你的代码中,可以使用如下代码来修改CMD和Data的字节值:

    u8g2_Setup_st7567_p_132x64_1(&u8g2, U8G2_R0, u8x8_byte_linux_hw_spi, u8x8_linux_hw_spi_gpio_and_delay); // 替换为你的设备型号和通信方式
    u8x8_SetI2CAddress(&u8g2.u8x8, 0x78); // 替换为你的IC的I2C地址
    u8g2_SetContrast(&u8g2, 128);
    
    u8g2.u8x8.conn.log_level = U8X8_LOG_LEVEL_ERROR;
    u8g2.u8x8.conn.cmd_byte = 0xC0; // 替换为正确的CMD字节值
    u8g2.u8x8.conn.data_byte = 0x80; // 替换为正确的Data字节值
    
    u8g2_InitDisplay(&u8g2);
    

    在这段代码中,通过修改u8g2.u8x8.conn.cmd_byteu8g2.u8x8.conn.data_byte来设置CMD和Data的字节值。

    另外,你可以查看u8g2库的文档和示例代码,以了解更多关于修改CMD和Data字节值的方法。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月8日

悬赏问题

  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改