手头上有块7线的Oled显示屏一直想用stm32驱动下,正好现在通过Stduino UNO mini和arduino框架进行测试 材料: 软件:Stduino IDE 1.10.7 硬件:Stduino UNO mini (STM32F103C6主控) 其他:7线OLED显示屏及杜邦线 1.Oled 7线线序Oled 7线分别是GND, VCC, D0, D1, RES, DC, CS ,这里仅说下D0是指Clock,D1是指Data,线序实物如下图1所示
hello
图1线序及Hello World显示效果 2.线序具体连接根据下面这行代码进行连接线即可U8X8_SSD1306_128X64_NONAME_4W_SW_SPI u8x8(/* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8); 3.下载安装库u8g24.测试输出Hello world代码示例,显示效果即为上图1所示- #include <Arduino.h>
- #include <U8x8lib.h>
- #ifdef U8X8_HAVE_HW_SPI
- #include <SPI.h>
- #endif
- U8X8_SSD1306_128X64_NONAME_4W_SW_SPI u8x8(/* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
- void setup(void)
- {
- u8x8.begin();
- u8x8.setPowerSave(0);
- }
- void loop(void)
- {
- u8x8.setFont(u8x8_font_chroma48medium8_r);
- u8x8.drawString(0,1,"Hello World!");
- u8x8.refreshDisplay();
- delay(2000);
- }
复制代码
5.测试Message Box功能这里需要说明的是,Message Box具有两个选择框可以进行控制,因此这里根据Stduino UNO mini板子的引脚进行了自定义为: u8x8.begin(/*Select=*/ 7, /*Right/Next=*/ A1, /*Left/Prev=*/ A2, /*Up=*/ A0, /*Down=*/ A3, /*Home/Cancel=*/ 6); // Stduino 5.1 Message Box初始化显示效果
init
图2Message Box初始界面,内容可自定义 5.2 通过Right/Next=*/ A1按键右移按钮显示位置效果
cancel
图3Message Box右移按钮显示
5.3 通过Select=*/ 7按键选择后效果
ok
图4Message Box确认OK效果
还有更多玩法,此处不再一一列举了 Message Box具体代码如下 - #include <Arduino.h>
- #include <U8x8lib.h>
- #ifdef U8X8_HAVE_HW_SPI
- #include <SPI.h>
- #endif
- U8X8_SSD1306_128X64_NONAME_4W_SW_SPI u8x8(/* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
- void setup(void)
- {
- u8x8.begin(/*Select=*/ 7, /*Right/Next=*/ A1, /*Left/Prev=*/ A2, /*Up=*/ A0, /*Down=*/ A3, /*Home/Cancel=*/ 6); // Stduino
- u8x8.setPowerSave(0);
- }
- void loop(void)
- {
- uint8_t r;
- u8x8.setFont(u8x8_font_chroma48medium8_r);
- r = u8x8_UserInterfaceMessage(u8x8.getU8x8(), "Message", "Box", NULL, " Ok \n Cancel ");
- if ( r == 0 )
- {
- u8x8.userInterfaceMessage("You pressed the", "Home/Quit", "Button", " Ok ");
- }
- else if ( r == 1 )
- {
- u8x8.userInterfaceMessage("You selected the", "Ok", "Button", " Ok ");
- }
- else if ( r == 2 )
- {
- u8x8.userInterfaceMessage("You selected the", "Cancel", "Button", " Ok ");
- }
- }
复制代码
|