news 2026/5/2 11:19:49

[STM32C0] 【STM32C092RC 测评】5、板载外设——IIC

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[STM32C0] 【STM32C092RC 测评】5、板载外设——IIC

IIC也是我们常用的串行接口,我们常用其驱动一些传感器,这次我们用其驱动OLED。
本次采用的是Seeed品牌的一款小型OLED显示模块,其分辨率为128x64像素,屏幕尺寸为0.96英寸,属于单色显示类型。该模块采用SSD1315作为驱动芯片,尽管SSD1306亦是常用之选。OLED屏幕的发光机制与LCD截然不同,上电后需经过初始化流程方能正常显示信息,此特性与IPS彩色液晶屏幕存在相似之处。SSD1315是一款集成的CMOS OLED/PLED驱动控制芯片,能够直接从其内置的128x64像素GDDRAM中读取并显示数据。采用SSD1315作为控制核心的OLED显示屏,在硬件连接上存在两种配置方式,核心差异在于是否启用DC引脚。若采用DC引脚方案,则需由主控芯片负责操控DC引脚,以明确当前传输的是指令信息还是数据内容。反之,若不启用DC引脚,则要求主控在数据发送前,预先传输一个比特位来界定后续内容为指令或数据。鉴于目标模块接口仅包含IIC通信的两根引脚及电源引脚,因此,必须通过非DC引脚方案,即预先传输界定比特的方式,实现对OLED显示屏的控制。
单色显示对于大多数单片机而言,控制上相对充裕,所需资源较少。本次设计采用硬件IIC接口,尽管个人倾向于使用IO口模拟方式控制,但硬件IIC的尝试亦颇具意义,在STM32CubeMX中的配置过程极为简洁:

启动IIC后,直接就可以,采用常规模式100K的速度,什么都不用配置,初始化也不用像定时器那样需要启动,我们直接用一下进行适配就OK了:

复制

  1. <p>void OLED_WR_CMD(uint8_t cmd)</p><p>{</p><p>HAL_I2C_Mem_Write(&hi2c1 ,0x78,0x00,I2C_MEMADD_SIZE_8BIT,&cmd,1,0x100);</p><p>}</p><p>void OLED_WR_DATA(uint8_t data)</p><p>{</p><p>HAL_I2C_Mem_Write(&hi2c1 ,0x78,0x40,I2C_MEMADD_SIZE_8BIT,&data,1,0x100);</p><p>}</p>


在SSD1315的驱动编写过程中,核心在于对网络资源的有效利用及寄存器的精确配置。中景园提供的官方例程对于初始化步骤具有指导意义,该步骤是实现显示功能的前提。显示操作本身并不复杂,关键在于完成必要的初始化后,执行固定位置的显示指令。鉴于显示区域的局限性,采用英文内容展示能更有效地利用空间,同时保证显示的连贯性和可读性:

复制

  1. <p>uint8_t CMD_Data[]={</p><p>0xAE, 0xD5, 0x80, 0xA8, 0x3F, 0xD3, 0x00, 0x40,0xA1, 0xC8, 0xDA,</p><p>0x12, 0x81, 0xCF, 0xD9, 0xF1, 0xDB, 0x40, 0xA4, 0xA6,0x8D, 0x14,</p><p>0xAF};</p><p>void OLED_Init(void)</p><p>{</p><p>HAL_Delay(200);</p><p>uint8_t i = 0;</p><p>for(i=0; i<23; i++)</p><p>{</p><p>OLED_WR_CMD(CMD_Data[i]);</p><p>}</p><p>}</p>


请注意,初始化完成后的屏幕将呈现花屏状态,此现象表明显示功能正常。随后需执行清屏操作,将屏幕底色统一设置为单色,非黑即白。接下来进行字符串显示,具体展示内容为“21IC STM32C092”。本章节旨在进行功能演示,简要呈现效果如下:


---------------------
作者:孤独的单行者
链接:https://bbs.21ic.com/icview-3452530-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 18:30:23

Java排序算法第一课:冒泡排序代码实现与时间复杂度深度解析

第一章&#xff1a;Java排序算法第一课&#xff1a;冒泡排序概述 冒泡排序&#xff08;Bubble Sort&#xff09;是一种基础且易于理解的排序算法&#xff0c;常用于教学场景中帮助初学者掌握排序逻辑。其核心思想是通过重复遍历数组&#xff0c;比较相邻元素并交换位置&#xf…

作者头像 李华
网站建设 2026/4/29 9:51:29

GPT-OSS与Llama3对比评测:开源推理性能谁更强?

GPT-OSS与Llama3对比评测&#xff1a;开源推理性能谁更强&#xff1f; 在当前大模型快速发展的背景下&#xff0c;开源社区涌现出越来越多高性能的推理模型。其中&#xff0c;GPT-OSS 和 Llama3 作为两个备受关注的代表&#xff0c;分别展现了不同的技术路径和性能特点。本文将…

作者头像 李华
网站建设 2026/5/1 3:25:23

面部遮挡影响评估:unet人像卡通化识别能力测试

面部遮挡影响评估&#xff1a;unet人像卡通化识别能力测试 1. 功能概述 本工具基于阿里达摩院 ModelScope 的 DCT-Net 模型&#xff0c;支持将真人照片转换为卡通风格。该模型采用 UNET 架构进行特征提取与重建&#xff0c;在保留人物结构的同时实现艺术化迁移。项目由“科哥…

作者头像 李华
网站建设 2026/4/26 23:27:29

AI办公提效新姿势:Speech Seaco Paraformer会议记录自动化部署教程

AI办公提效新姿势&#xff1a;Speech Seaco Paraformer会议记录自动化部署教程 1. 让会议记录不再痛苦&#xff1a;用AI自动转写语音 你有没有这样的经历&#xff1f;开完一场两小时的会议&#xff0c;桌上堆着录音笔、手机、笔记本&#xff0c;接下来最头疼的不是整理议题&a…

作者头像 李华
网站建设 2026/4/27 13:41:17

Qwen3-Embedding-0.6B实战入门:Jupyter Notebook调用示例详解

Qwen3-Embedding-0.6B实战入门&#xff1a;Jupyter Notebook调用示例详解 1. Qwen3-Embedding-0.6B 介绍 Qwen3 Embedding 模型系列是 Qwen 家族的最新专有模型&#xff0c;专门设计用于文本嵌入和排序任务。基于 Qwen3 系列的密集基础模型&#xff0c;它提供了从 0.6B 到 8B…

作者头像 李华
网站建设 2026/4/29 10:32:26

fft npainting lama一键部署教程:Docker镜像免配置上线

fft npainting lama一键部署教程&#xff1a;Docker镜像免配置上线 1. 快速上手&#xff1a;三步完成图像修复系统部署 你是不是也遇到过这样的问题&#xff1a;想用AI修复图片、移除不需要的物体&#xff0c;但一看到复杂的环境配置就头疼&#xff1f;编译依赖、安装库、调试…

作者头像 李华