981|2

1403

帖子

1

TA的资源

五彩晶圆(初级)

[N32WB031_STB开发板测评]+OLED屏显示驱动 [复制链接]

本帖最后由 jinglixixi 于 2023-5-6 09:30 编辑

N32WB031开发板是一款近于最小系统型的开发板,为它配置一个小巧的显示屏可以更好地与其体型相匹配。这里所驱动的是一款I2C接口的准双色OLED显示屏,其特点是占用引脚资源少,显示信息量也相等比较多,其显示分辨率为64*128像素点,其显示效果如下图所示。

image.png

OLED屏与开发板的连接关系为:

SCL---PB4

SDA---PB5

以GPIO口输出高低电平的语句定义为:

#define SCL_high   GPIO_SetBits(GPIOB, GPIO_PIN_4)

#define SCL_low    GPIO_ResetBits(GPIOB, GPIO_PIN_4)

#define SDA_high   GPIO_SetBits(GPIOB, GPIO_PIN_5)

#define SDA_low    GPIO_ResetBits(GPIOB, GPIO_PIN_5)

使用GPIO口模拟I2C方式启动和停止信号的函数为:

void IIC_Start()
{
   SCL_high;
   SDA_high;
   SDA_low;
   SCL_low;
}

void IIC_Stop()
{
   SCL_low;
   SDA_low;
   SCL_high;
   SDA_high;
}

 实现应答等待的函数是:

void IIC_Wait_Ack()
{
    SCL_high;
    SCL_low;
}

模拟I2C方式发送字节数据的函数内容是:

void Write_IIC_Byte(unsigned char IIC_Byte)
{
    unsigned char i;
    unsigned char m,da;
    da=IIC_Byte;
    SCL_low;
    for(i=0;i<8;i++)
    {
        m=da;
        m=m&0x80;
        if(m==0x80)
        {
            SDA_high;
        }
        else  SDA_low;
        da=da<<1;
        SCL_high;
        SCL_low;
     }
}

实现指令和数据发送函数是:

void Write_IIC_Command(unsigned char IIC_Command)
{
   IIC_Start();
   Write_IIC_Byte(0x78);
   IIC_Wait_Ack();
   Write_IIC_Byte(0x00);
   IIC_Wait_Ack();
   Write_IIC_Byte(IIC_Command);
   IIC_Wait_Ack();
   IIC_Stop();
}

void Write_IIC_Data(unsigned char IIC_Data)
{
   IIC_Start();
   Write_IIC_Byte(0x78);
   IIC_Wait_Ack();
   Write_IIC_Byte(0x40);
   IIC_Wait_Ack();
   Write_IIC_Byte(IIC_Data);
   IIC_Wait_Ack();
   IIC_Stop();
}

void OLED_WR_Byte(unsigned dat,unsigned cmd)
{
   if(cmd)
   {
        Write_IIC_Data(dat);
   }
   else
   {
        Write_IIC_Command(dat);
   }
}

实现图示效果的主程序为:

int main(void)
{
    OLED_gpio();
	OLED_Init();
    OLED_Clear();
    OLED_ShowString(20,0,"N32WB031",16);
    OLED_ShowString(20,4,"jinglixixi",16);
    while(1);
}

这样就完成了OLED屏的显示驱动,后面再有显示的任务就可以交它来完成了。

此帖出自RF/无线论坛

最新回复

这显示屏挺好的,有没有试验一下硬件I2C呀。  详情 回复 发表于 2023-5-6 17:54

回复
举报

6491

帖子

9

TA的资源

版主

这显示屏挺好的,有没有试验一下硬件I2C呀。
此帖出自RF/无线论坛

点评

尚且没有!  详情 回复 发表于 2023-5-6 21:15

回复

1403

帖子

1

TA的资源

五彩晶圆(初级)

lugl4313820 发表于 2023-5-6 17:54 这显示屏挺好的,有没有试验一下硬件I2C呀。

尚且没有!

此帖出自RF/无线论坛

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

猜你喜欢
随便看看
查找数据手册?

EEWorld Datasheet 技术支持

推荐帖子
MPEG4编解C源代码-以移植到ARM和DSP上

MPEG4编解C源代码-以移植到ARM和DSP上,经典

有同行者不孤单

昨天网上袁兄加我MSN,小聊片刻后,今天约着和他一起吃饭,谈了很多想法和感受。 袁兄是个执着而坚持的人,03年本科毕业至今工 ...

Helper2416开发板移植minigui3.0.12之二:移植到开发板

本帖最后由 Gyroxp 于 2015-1-25 11:51 编辑 第二阶段:移植minigui到Helper2416开发板 让开发板运行minigui要稍微麻烦一 ...

【TI C2000的使用经验】+ 使用Energia开发C2000-LaunchPad应用

使用Energia开发C2000-LaunchPad应用Energia 是一个开源和社区驱动型集成开发环境 (IDE) 与软件框架。Energia 基于接线框架,为 ...

【感恩TI】学习TI的28335启动过程以及代码搬运

学习版主的一个精华帖,学习c2000的启动过程和搬运代码过程。 【TI C2000的使用经验】CMD文件解读&从flash里搬运RAM函数 ...

【测评SGP40】+STM32CUBE+STM32G4+UART通信测试传感器

本帖最后由 damiaa 于 2021-3-27 16:26 编辑 【测评SGP40】+STM32CUBE+STM32G4+UART通信测试传感器 1,打开STM32CUBE环境。 ...

4.2V的断线监测,各位有没有好的方法?

4.2V的断线监测,各位有没有好的方法? 电流设定在30K时,根据规格书公式恒流充电电流1000/30000=33mA,,ME4054 涓流充 ...

可穿戴心电ECG监测

本帖最后由 姜子牙疼 于 2022-6-28 11:25 编辑 近年来,个人智能心电ECG监测设备研发加速,可穿戴心电监测设备种类繁多, ...

有没有讨论的微信群,望请推荐。

有没有讨论的微信群,望请推荐。

【正点原子阿尔法 IMX6ULL Linux开发板】第13篇 Python Platform测试

Platform 模块用于查看当前操作系统的信息,来采集系统版本位数计算机类型名称内核等一系列信息。os模块中某些功能不是跨平台的 ...

快速回复 返回顶部 返回列表