这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【EV76S68A试用】驱动OLED屏以及IIC发送指令注意事项

共4条 1/1 1 跳转至

【EV76S68A试用】驱动OLED屏以及IIC发送指令注意事项

工程师
2025-07-05 09:33:32     打赏

【前言】

EV76S68A外设中非常重要的外设为IIC,他加载在SERCOM2中,使用MCC可以非常简单的配置他。这一篇我将分享如何使用。

【原理图】

在官方的用户手册中,可以看只有SERCOM2可以配置为IIC:

image.png

PA12为IIC的SDA,PA13为IIC的SCL接口。

【MCC配置】

打开MCC添加SERCOM2到工程中,并配置其为Master,速度配置为400K

image.png

配置好后生成代码

打开plib_sercom2_i2c_masters.h中可以看到有对I2C操作的所有功能函数。

image.png

我们在驱动OLED中,需要使用到的为SERCOM2_I2C_Initialize进行外设的初始化,以及Write就行了,通过源码可以看到我们需要传入的参数与输出的参数:

bool SERCOM2_I2C_Write(uint16_t address, uint8_t* wrData, uint32_t wrLength)
{
    return SERCOM2_I2C_XferSetup(address, wrData, wrLength, NULL, 0, false, false);
}

【移植OLED屏】

我找到ssd1306的驱动包,添加进工程中。

image.png

【添加测试程序】

image.png

【填坑】

我按照以上工程下载到开发板后,即发现没有按预期的效果点亮OLED,于是上逻辑分析仪查看,发现只发送了从机地址后,接着没有发剩余的数据。经过各种查找,最后在论坛中找到了一个同样现象的:

image.png

上面是有人提出在发送命令后需要延时一会。

于是我修改程序如下:

image.png

然后居然可以了。

究其原因,是可能IIC发送需要一定的时间。

【实验效果】

image.png

【总结】

通过以上IIC的配置,ssd1306的代码移植,以及问题查找,终于驱动好了OLED屏。






关键词: EV76S68A     工程创建     MCC     IIC     OLE    

专家
2025-07-05 12:21:22     打赏
2楼

感谢分享


专家
2025-07-05 12:23:24     打赏
3楼

感谢分享


工程师
2025-07-07 06:18:54     打赏
4楼

大佬写的真好



共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]