全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 接口/总线/驱动 >

基于Psoc6开发板的OLED时钟设计方案

时间:2023-07-28 15:23

人气:

作者:admin

标签: 基于    OLE  PSOC6    开发 

导读:基于Psoc6开发板的OLED时钟设计方案-我组大部分成员皆是初次接触嵌入式开发系统,因此根据本次夏令营学习及导师推荐下我们选择了设计难度较低的OLED时钟设计。在导师的帮助下完成了...

设计背景

我组大部分成员皆是初次接触嵌入式开发系统,因此根据本次夏令营学习及导师推荐下我们选择了设计难度较低的OLED时钟设计。在导师的帮助下完成了整个工程的搭建。

设计思路

采用市面上比较常见的SSD1306显示屏作为时钟的载体。设计的思路是:

1.使用本次夏令营下发的Psoc6-evaluationkit-062S2开发板驱动OLED屏
2.使用RT-THREAD Studio设置RTC获取时间
3.将时间显示在OLED屏上并设计简单的数字滚动功能

开发工具

1.Psoc6-evaluationkit-062S2开发板
2.RT-THREAD Studio
3.SSD1306四排真OLED屏

RT-THREAD Studio软件包设置

其中参考了SSD1306软件包及RTC例程因此SSD1306软件包需单独下载

1.jpg

1.jpg

1.jpg

开发心得

作为初次接触嵌入式操作系统的初学者,学习中有些许困难。主要在于不能清楚的掌握模块的调用,初次接触线程的概念、使用经过rtt封装过的C语言头文件及rtt中的基本函数。在大致读懂后明白了rtt已经将许多模块写好可以直接调用,各位前辈的软件包是的开发更具模块化。裸机开发与嵌入式操作系统开发的区别很大但EOS的简洁明了显而易见,不过代码的移植也是入门的难点之一。

下附完整的工程代码

工程代码
1.OLED屏驱动

#include "oled.h"
#include
#include
#include "codetab.h"
//oled显示尺寸
uint16_t const displayWidth = 128;
uint16_t const displayHeight = 64;
/* OLED显存
[0]0 1 2 3 ... 127
[1]0 1 2 3 ... 127
[2]0 1 2 3 ... 127
[3]0 1 2 3 ... 127
[4]0 1 2 3 ... 127
[5]0 1 2 3 ... 127
[6]0 1 2 3 ... 127
[7]0 1 2 3 ... 127 /
static uint8_t OLED_RAM[8][128];//定义GDDRAM缓存区
#define CW_OLED_I2C CW_I2C1
#define OLED_ADDR 0x3c
#define SSD1306_CTRL_CMD 0x00
#define SSD1306_CTRL_DATA 0x40
#define SSD1306_MASK_CONT (0x1<<7)
static struct rt_i2c_bus_device i2c_bus;
void OLED_I2C_Init(void)
{
i2c_bus = (struct rt_i2c_bus_device )rt_device_find(PKG_USING_SSD1306_I2C_BUS_NAME);
if (i2c_bus == RT_NULL)
{
rt_kprintf("can not find %s device", PKG_USING_SSD1306_I2C_BUS_NAME);
return;
}
}
//向OLED寄存器地址写一个byte的数据
//int I2C_WriteByte(uint8_t addr,uint8_t data)
//{
//
// return 0;
/

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信