(十七)树莓派3B+ wiringPi库的使用--软件SPI驱动NOKIA5110液晶

在上一篇《 (十六)树莓派3B+ wiringPi库的使用–硬件SPI驱动NOKIA5110液晶》中介绍了使用树莓派的硬件SPI驱动NOKIA5110液晶屏幕。其实还可以软件驱动,这里我保存使用的引脚和程序功能和上一篇一致,就只需要修改两个函数。
第一个数初始化管脚:

// 初始化GPIO 端口
void gpioInit(){
    pinMode(LCD_DC,OUTPUT);
    pinMode(LCD_DIN,OUTPUT);
    pinMode(LCD_CLK,OUTPUT);
    pinMode(LCD_RST,OUTPUT);
    pinMode(LCD_CE,OUTPUT);
}

第二个是SPI数据传输:

// 往LCD写入数据
// wbyte: 需要写入的数据
// dat_cmd: 1-数据 0-命令 
void lcd_writeByte(u8 wbyte, u8 dat_cmd){
    u8 i;
    digitalWrite(LCD_CE,LOW);
    if (dat_cmd == 1) { // 写数据
        digitalWrite(LCD_DC,HIGH);
    }
    else { // 写命令
        digitalWrite(LCD_DC,LOW);
    }
    // 开始写入数据
    for(i = 0; i < 8; i++)
    {
        if (wbyte & 0x80) {
            digitalWrite(LCD_DIN,HIGH);
        }
        else {
            digitalWrite(LCD_DIN,LOW);
        }
        digitalWrite(LCD_CLK, LOW);
        wbyte = wbyte << 1;
        digitalWrite(LCD_CLK, HIGH);
    }
    digitalWrite (LCD_CE, HIGH);
}

其他和上一篇《 (十六)树莓派3B+ wiringPi库的使用–硬件SPI驱动NOKIA5110液晶》中介绍的一致,效果也一致,这里不再描述了。

你可能感兴趣的:(树莓派学习记录)