一款新颖的OLED时钟显示界面

通常的OLED界面都是数字显示的而此款则是几何式的,具体显示效果如下:

所需硬件为OLEDSSD1036,Arduino uno,代码如下已验证有效。


 #include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0);  // I2C / TWI 

int hours = 16;
int minutes = 16;
int seconds = 0;
char *number[12]={"6","5","4","3","2","1","12","11","10","9","8","7"};
const int SCREEN_WIDTH = 128;
const int SCREEN_HEIGHT = 64;
float radius = min(SCREEN_HEIGHT, SCREEN_WIDTH)/2-1;

const int X_CENTER = SCREEN_WIDTH / 2;
const int Y_CENTER = SCREEN_HEIGHT / 2;

int x1, y1, x2, y2;
double angle;

void draw(void) {
  //u8g.drawCircle(X_CENTER, Y_CENTER, radius);
  u8g.drawCircle(X_CENTER, Y_CENTER, 1);
  //draw minute&
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 首先,需要将STM32与OLED屏幕连接起来。STM32可以通过SPI或I2C与OLED通信。在连接好之后,需要编写适当的软件程序来实现时间显示功能。 实时显示时间需要使用定时器和中断功能。通过设置定时器的预分频器和计时器,可以实现每秒更新一次时间。当定时器计时到达设定时间时,将触发中断,并在中断程序中更新屏幕上的时间信息。 在软件实现方面,可以使用STM32提供的HAL库,在其基础上,编写相关的控制代码,包括初始化GPIO口、I2C\SPI通信、定时器和中断等,以实现时间显示的功能。需要注意的是,在使用HAL库时,需要正确地配置时钟、引脚、中断优先级等等。 最后,需要将编写好的程序烧录到STM32芯片上,与OLED连接,即可实现 OLED 实时显示时间的功能。 总的来说,实现 STM32 让 OLED 实时显示时间的程序需要多个方面的知识,包括STM32的编程,I2C/SPI接口的控制和对OLED屏幕的了解,同时需要正确的连接引脚和熟练的使用相关开发工具。 ### 回答2: 对于让STM32让OLED实时显示时间的程序,我们需要使用一些基本的硬件和软件组件。首先,我们需要一块OLED显示屏和STM32开发板,此外还需要使用一个定时器来定时刷新时间。下面是具体的实现步骤: 1. 首先,我们需要配置STM32的相关引脚和外设,通过I2C协议将控制指令发送到OLED屏幕,这可以通过使用OLED屏幕相关的库和API来实现。 2. 我们还需要使用一个RTC实时时钟芯片或者晶振来获取当前的时间。通过配置STM32的时钟源,可以将RTC的时间同步到STM32中。 3. 接下来,我们需要使用定时器来定时刷新时间。通过配置定时器,并调用定时器中断函数,我们可以在每秒钟更新一次时间,并将时间信息显示OLED屏幕上。 4. 最后,我们还需要设计一些简单的用户界面,如显示当前时间和日期,以及允许用户通过按键设置和调整时间。 总的来说,实现STM32让OLED实时显示时间的程序并不难,只需要掌握一些基本的硬件和软件知识,并使用适当的库和API,就可以实现一个优秀的OLED时钟应用。 ### 回答3: 要让STM32实现OLED实时显示时间的功能,需要进行以下步骤: 1. 接线:将STM32和OLED屏幕的SCL、SDA、VCC和GND引脚分别连接。 2. 编写程序:使用Keil等开发工具,编写STM32的代码。首先需要初始化I2C接口和OLED屏幕。然后通过调用相关函数获取系统时间,将其转换为年、月、日、时、分、秒等格式,并将其以字符串形式存储。最后,将字符串通过OLED屏幕逐一显示出来即可。 3. 调试:将STM32与OLED屏幕连接好后,通过调试工具将代码下载至STM32,并观察OLED屏幕是否能够正确显示时间信息。如果出现问题,可以通过修改代码进行调试。 总之,通过以上步骤,我们可以让STM32实现OLED实时显示时间的功能,这对于一些需要时间显示的应用来说非常实用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值