物联网CH579M驱动OLED实时显示时间的代码

时间: 2024-03-26 15:41:41 浏览: 15
以下是一个基于CH579M芯片和OLED屏幕的物联网应用程序,可以实时显示当前时间: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ch579.h> #include <ch579usb.h> #include <ch579i2c.h> #include <ch579uart.h> #include <ch579gpio.h> #include <ch579spi.h> #include <ch579adc.h> #include <ch579timer.h> #include <ch579iic.h> #include "oled.h" #define I2C_CLOCK_FREQ 400000 #define OLED_ADDR 0x78 /* OLED I2C接口初始化 */ void oled_i2c_init(void) { IICInit(I2C_CLOCK_FREQ); } /* OLED初始化 */ void oled_init(void) { oled_i2c_init(); OLED_Init(); } /* OLED屏幕显示时间 */ void oled_show_time(void) { /* 获取当前时间 */ RTC_TIME_Type rtcTime; RTC_GetTime(&rtcTime); /* 显示时间到OLED屏幕 */ OLED_ShowString(0, 0, "Time: ", 16); OLED_ShowNum(48, 0, rtcTime.hour, 2, 16); OLED_ShowChar(64, 0, ':', 16); OLED_ShowNum(80, 0, rtcTime.minute, 2, 16); OLED_ShowChar(96, 0, ':', 16); OLED_ShowNum(112, 0, rtcTime.second, 2, 16); OLED_Refresh_Gram(); } int main(void) { /* 初始化OLED屏幕 */ oled_init(); /* 初始化RTC时间 */ RTC_TIME_Type rtcTime; rtcTime.year = 2021; rtcTime.month = 9; rtcTime.day = 22; rtcTime.hour = 0; rtcTime.minute = 0; rtcTime.second = 0; RTC_SetTime(&rtcTime); /* 循环显示当前时间 */ while (1) { oled_show_time(); delay_ms(1000); } return 0; } ``` 上述代码中,我们使用了CH579M芯片的RTC模块来获取当前时间,并使用OLED屏幕显示当前时间。我们还需要引入一个OLED屏幕的库文件来实现OLED屏幕的初始化和显示功能,这里我们使用了一个名为"oled.h"的头文件,具体实现可以参考如下代码: ```c #ifndef __OLED_H__ #define __OLED_H__ #include <stdio.h> #include <string.h> #include <ch579i2c.h> void OLED_Init(void); void OLED_ShowChar(uint8_t x,uint8_t y,uint8_t chr,uint8_t Char_Size); void OLED_ShowString(uint8_t x,uint8_t y,uint8_t *chr,uint8_t Char_Size); void OLED_ShowNum(uint8_t x,uint8_t y,uint32_t num,uint8_t len,uint8_t size); void OLED_ShowChinese(uint8_t x,uint8_t y,uint8_t no); void OLED_DrawBMP(uint8_t x0, uint8_t y0,uint8_t x1, uint8_t y1,uint8_t BMP[]); void OLED_Set_Pos(unsigned char x, unsigned char y); void OLED_Fill(unsigned char fill_Data); void OLED_CLS(void); void OLED_ON(void); void OLED_OFF(void); void OLED_Refresh_Gram(void); #endif ``` 上述代码中,我们定义了一些函数来实现OLED屏幕的初始化、字符、字符串、数字、图像等显示功能,具体实现可以参考对应函数的定义。

相关推荐

最新推荐

recommend-type

物联网技术期末资料整理

对应教材:刘云浩.物联网导论(第三版) [M]. 北京: 科学出版社, 2017. 历时整整两天半,纯手工整理,内容均来自于老师上课时所使用PPT。
recommend-type

物联网通信技术ZETA技术白皮书

1.白皮书旨在向读者阐述ZETA技术—一种基于UNB的低功耗广域网(LPWAN)技术协议标准,其具有覆盖范围广、服务成本低、能耗低等特点,满足物联网环境下广域范围内数据交换频次低、连接成本低、适用复杂环境的连接需求...
recommend-type

物联网netty对接socket设备-netty定义

netty定义1.netty定义2.阻塞与非阻塞3.同步与异步 1.netty定义 简单来讲,Netty是一个提供了易于使用的API的客户端/服务端框架。Netty并发非常高,一个非阻塞的IO,Netty传输速度也非常快,因为他是0拷贝,什么是零...
recommend-type

物联网期末测试答案 思科1.docx

对思科物联网期末测试进行总结,图片+文字,更有利于查询,快速找到。1通过源(例如网页、音频或推文)所收集的数据术语以下哪一类? 非结构化数据
recommend-type

基于物联网的智能公交系统设计

系统通过RFID技术对公交车辆进行跟踪、定位、监控和调度,站台的触摸屏统计各路次候车乘客数,及电子站牌实时发布各车次到站时间等信息,利用Zigbee无线网络技术实现车载终端、站台系统和调度监控中心之间的通信。...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

2. 通过python绘制y=e-xsin(2πx)图像

可以使用matplotlib库来绘制这个函数的图像。以下是一段示例代码: ```python import numpy as np import matplotlib.pyplot as plt def func(x): return np.exp(-x) * np.sin(2 * np.pi * x) x = np.linspace(0, 5, 500) y = func(x) plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('y = e^{-x} sin(2πx)') plt.show() ``` 运行这段
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。