[STM32U3] 【STM32U385RG 测评】05+动手IIC试验,驱动OLED屏幕 由于之前操作做硬件的IIC屏幕本款开发板也是没有找到屏幕的今天移植一下OLED屏幕的驱动代码。一OLED知识分享OLED即有机发光二极管Organic Light-Emitting Diode又称为有机电激光显示Organic Electroluminesence Display, OELD。因为具备轻薄、省电等特性因此从 2003 年开始这种显示设备在 MP3 播放器上得到了广泛应用而对于同属数码类产品的 DC 与手机此前只是在一些展会上展示过采用 OLED 屏幕的工程样品。自 2007 年后寿命得 到很大提高具备了许多 LCD 不可比拟的优势。GND电源地 VCC2.2V~5.5V SCLD0CLK 时钟 高电平 2.2V~5.5V SDA(D1)MOSI 数据高电平 2.2V~5.5V RST复位高电平 2.2V~5.5V D/C数据/命令高电平 2.2V~5.5V 兼容 3.3V 和 5V 控制芯片的 I/O 电平无需任何设置直接兼容。二STM32 cube MX软件配置如下所示三软件代码编写底层驱动代码如下所示复制/************************************************************************************************ [url/u/brief]brief[/url] static unsigned char OLED_send_byteS(unsigned char *data, unsigned char length)* param data:输入的数据 length长度值使用硬件IIC底层驱动函数* retval 无* [url/u/author]author[/url] 聪聪哥哥* version V1.1.0* [url/u/date]date[/url] 25-5-2025*************************************************************************************************/static unsigned char OLED_send_byteS(unsigned char *data, unsigned char length){if (HAL_I2C_Master_Transmit(hi2c1, 0x78, data, length, 2) ! HAL_OK){return 0;}return 1;}/************************************************************************************************ brief static void I2C_WriteByte(uint8_t addr, uint8_t value)* param addrIIC模块的地址value :写入的数据* retval 无* author 聪聪哥哥* version V1.1.0* date 25-5-2025*************************************************************************************************/static void I2C_WriteByte(uint8_t addr, uint8_t value){unsigned char dta[2] {0};dta[0] addr;dta[1] value;OLED_send_byteS(dta, 2);}/************************************************************************************************ brief void WriteCmd(unsigned char I2C_Command)* param I2C_Command IIC的命令* retval 无* author 聪聪哥哥* version V1.1.0* date 25-5-2025*************************************************************************************************/void WriteCmd(unsigned char I2C_Command){I2C_WriteByte(0x00, I2C_Command);}显示代码如下复制OLED_Init();OLED_ColorTurn(0);//0?????????1 ??????OLED_DisplayTurn(0);//0??????? 1 ?????????OLED_Refresh();OLED_Clear();OLED_ShowCN(16, 0, 0);OLED_ShowCN(32, 0, 1);OLED_ShowCN(48, 0, 2);OLED_ShowCN(64, 0, 3);OLED_ShowCN(16, 2, 4);OLED_ShowCN(32, 2, 4);OLED_ShowCN(48, 2, 5);OLED_ShowCN(64, 2, 5);OLED_ShowStr(40, 4, (uint8_t *)test_str, 2);OLED_ShowStr(40, 6, (uint8_t *)test_str1, 2);实物图片如下所示---------------------作者聪聪哥哥链接https://bbs.21ic.com/icview-3477132-1-1.html?_dsignfea64759来源21ic.com此文章已获得原创/原创奖标签著作权归21ic所有任何人未经允许禁止转载。