测试代码
#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
}
引脚图