arduino ide 环境下U8g2库 stm32 硬件spi驱动ssd1306 0.96 oled 注意事项

测试代码

#include <Arduino.h>
#include <U8g2lib.h>

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

// 软件驱动 指定任意IO口都可以,速度慢
// U8G2_SSD1306_128X64_NONAME_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ PA_5, /* data=*/ PA_7, /* cs=*/ PA_4, /* dc=*/ PA_3, /* reset=*/ PA_2);



//硬件驱动
/**
屏幕接线
VCC-3.3v  电源
GND-GND   接地
D0-PA5    时钟引脚,PA5是硬件时钟,必须接对
D1-PA7    数据引脚  PA7功能MOSI(master out slaver in),主出从入用于发数据,必须接对,PA6也数据引脚,MISO用于收数据,此处由于是主机oled发数据,所以只接PA7就行
CS-PA4    片选,必须接对
DC-PA3    数据控制,随便定义
RST-PA2   复位随便定义    
*/
U8G2_SSD1306_128X64_NONAME_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ PA_4, /* dc=*/ PA_3, /* reset=*/ PA_2);


void setup() {
  // put your setup code here, to run once:
  u8g2.begin();
}

void loop() {
  // put your main code here, to run repeatedly:
  u8g2.clearBuffer();					// clear the internal memory
  u8g2.setFont(u8g2_font_ncenB08_tr);	// choose a suitable font
  u8g2.drawStr(0,10,"Hello World!");	// write something to the internal memory
  u8g2.sendBuffer();					// transfer internal memory to the display
  delay(1000);  


#ifdef U8X8_HAVE_HW_SPI
  u8g2.clearBuffer();					// clear the internal memory
  u8g2.setFont(u8g2_font_ncenB08_tr);	// choose a suitable font
  u8g2.drawStr(0,10,"U8X8_HAVE_HW_SPI");	// write something to the internal memory
  u8g2.sendBuffer();					// transfer internal memory to the display
#endif

}

引脚图

826bf8612eaa49caa955cb5e0c660967
6e02a32757d44317aef8263d07f64d66
6081bc150130431abef75437cb0784bf
cf1e3b8f6b444b9f9a719bad2ca7ac17

评论