查看: 376|回复: 0

Stduino UNO mini与7线oled显示屏实现Message Box

[复制链接]

27

主题

59

帖子

922

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
922
发表于 2021-8-3 11:50:21 | 显示全部楼层 |阅读模式

手头上有块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所示

image.png

图1线序及Hello World显示效果

2.线序具体连接根据下面这行代码进行连接线即可

U8X8_SSD1306_128X64_NONAME_4W_SW_SPI u8x8(/* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);

3.下载安装库u8g2

4.测试输出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初始化显示效果

image.png

图2Message Box初始界面,内容可自定义

5.2 通过Right/Next=*/ A1按键右移按钮显示位置效果

image.png

图3Message Box右移按钮显示

5.3 通过Select=*/ 7按键选择后效果

image.png

图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 ");
}
}
image.png
image.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

今天在文涛老大的帮助下我的stm32zet6终于把simlpefoc库跑起...
今天在文涛老大的帮助下我
[md]首先本身是刚刚从MDK转到arduino过来的新人,只因为要完开源的simplefoc,期间由
Stduino UNO mini与7线oled显示屏实现Message Box
Stduino UNO mini与7线ole
[md]手头上有块7线的Oled显示屏一直想用stm32驱动下,正好现在通过Stduino UNO mini和
DS1302时钟库分享
DS1302时钟库分享
大家好,最近发现IDE自身的库没有DS1302,因此依据网上的资料写了DS1302的库。这里将
如何实现stm32arduino在官方ide里的tools中的usb设置?
如何实现stm32arduino在官
[md]在官方ide里添加了stm32官方arduino库之后会有tool选项,这个会影响有usb的库的条
stm32 小蓝板快速点亮一颗LED灯(一),无需刷Bootloader
stm32 小蓝板快速点亮一颗
关键词:stm32 小蓝板 STM32F103C8T6 Stduino IDE Stduino Nano 点亮一颗LED灯 通过St
下载库并打开示例教程Arduino框架
下载库并打开示例教程Ardu
[md]注意是Arduino框架!Arduino框架!Arduino框架下! 在对应项目工作空间安装库后,如
37种传感器(五)热敏电阻模块+Stduino Nano&UNO
37种传感器(五)热敏电阻
Stduino Uno/Nano-37种传感器(五)热敏电阻模块 关键词:51 stm32 arduino stduino
©2001-2018  Stduino官网  Powered by©Discuz!   ( 皖ICP备17011998号 )
快速回复 返回顶部 返回列表