使用 Raspberry Pi 和 BCM2835 库写入 LCD 屏幕时出现问题

Problem writing to LCD screen with Raspberry Pi and BCM2835 libraries

我正在尝试使用 PCF8574 IO 扩展板写入 LCD(LCD1602 显示屏)。我使用了一些我找到的示例代码,但尽管它确实使背景灯闪烁(所以我知道它正在与 LCD 通信)但它不打印数字。

我不想使用 WiringPI 库,因为它不再受支持,我想使用 BCM2835 库。任何人都知道我如何将字符写入 LCD?我以为我只需要发送 ascii 码?

#include <bcm2835.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>


int main(int argc, char **argv)
{
    char buf[1];
    char wbuf[] = "Hello World!";

    if (!bcm2835_init())return 1;
    bcm2835_i2c_begin();                //Start I2C operations.                                                       
    bcm2835_i2c_setSlaveAddress(0x27);  //I2C address                                                                 
    bcm2835_i2c_set_baudrate(10000);    //1M baudrate                                                                 

    buf[0] = 0xEF;    //LED ON                                                                                        
    bcm2835_i2c_write(buf,1);
    int ln = strlen(wbuf);
    for (int i=0; i< ln; i++)
    {
        buf[0] = wbuf[i];
        bcm2835_i2c_write(buf,1);
        bcm2835_delay(5);
    }

    bcm2835_i2c_end();
    bcm2835_close();
    return 0;
}

我没有直接通过 bcm2835 完成所有工作,而是发现了一个通过 i2c 与 lcd 屏幕对话的库。

https://github.com/albertherd/LCD1602

如果您确实只想通过 bcm2835 执行此操作,那么看起来您只需要为 PI 上的 I2C 控制器执行一些文件 IO 操作。 (更容易使用图书馆)