[开发板] CW32L010 OLED显示

[复制链接]
 楼主| meiyaolei 发表于 2024-12-30 22:51 | 显示全部楼层 |阅读模式
本帖最后由 meiyaolei 于 2024-12-30 23:56 编辑

CW32L010F8P6作为武汉芯源半导体生产的ARM Cortex M0+单片机,完全有能力通过模拟I2C(Inter-Integrated Circuit,一种串行通信协议)接口来驱动OLED屏幕显示指定内容,如“MEIYAO666”和“CW32L0 TEST”。以下是实现这一功能的基本步骤和要点:

一、硬件准备与连接
开发板与OLED屏幕:OLED与开发板连接,开发板CW32L010F8P6,OLED屏幕通常使用SSD1306驱动器,I2C通信接口。
根据OLED屏幕的引脚定义和CW32L010开发板的GPIO引脚,连接数据线(SDA)、时钟线(SCL)、电源(VCC)和接地(GND)。

电源与接地:确保OLED屏幕正确连接到开发板的电源和接地引脚,SCL是PA05,SDA是PA06.


4针OLED显示屏
GND:电源地
VCC:电源正极(供电3.3-5V)
SCL:IIC时钟线
SDA:IIC数据线



1735574168284.jpg
屏:
1735574066575.jpg

二、软件配置与编程
初始化I2C(模拟),在代码中配置CW32L010的GPIO引脚以模拟I2C通信,设置SDA和SCL引脚的模式为输出,并配置适当的上拉模式。
  1. __SYSCTRL_GPIOA_CLK_ENABLE();
  2.         
  3.         GPIO_InitTypeDef GPIO_InitStruct;
  4.         GPIO_InitStruct.IT=GPIO_IT_NONE;
  5.         GPIO_InitStruct.Mode=GPIO_MODE_OUTPUT_OD;
  6.         GPIO_InitStruct.Pins=GPIO_PIN_5 | GPIO_PIN_6;
  7.         GPIO_Init(CW_GPIOA, &GPIO_InitStruct);
  8.         GPIO_WritePin(CW_GPIOA,GPIO_PIN_5 | GPIO_PIN_6,GPIO_Pin_SET);        
  9.         OLED_W_SCL(1);
  10.         OLED_W_SDA(1);

编写I2C通信函数:实现起始条件、停止条件、字节发送和接收等I2C通信的基本函数。
  1. uint8_t OLED_I2C_Start(void)
  2. {
  3.         OLED_W_SDA(1);
  4.         OLED_W_SCL(1);
  5.         OLED_W_SDA(0);
  6.         OLED_W_SCL(0);
  7. }

显示字符:编写函数以在OLED屏幕上显示字符或图像。
  1. OLED_ShowString(1,2,"CW32L010 TEST");
  2.         OLED_ShowString(3,5,"meiyao 666");

主程序:在主程序中调用上述函数,以初始化I2C、OLED屏幕,并显示指定的字符或图像。
  1.     GPIO_InitTypeDef GPIO_InitStruct = {0};

  2.     SYSCTRL_HSI_Enable(SYSCTRL_HSIOSC_DIV12);
  3.    
  4.     __SYSCTRL_GPIOA_CLK_ENABLE();
  5.     __SYSCTRL_GPIOB_CLK_ENABLE();  

  6.     GPIO_InitStruct.IT = GPIO_IT_NONE;
  7.     GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  8.     GPIO_InitStruct.Pins = LED_GPIO_PINS|LED_GPIO_PINS_2;

  9.     GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct);
  10.         OLED_Init();   //OLED初始化

三、实际输出结果

1735569263729.jpg


1735574034041.jpg

评论

模拟I2C  发表于 2024-12-31 08:27
小夏天的大西瓜 发表于 2025-1-8 21:26 | 显示全部楼层
模拟I2C速率有点慢
OKAKAKO 发表于 2025-1-22 09:07 | 显示全部楼层
IIC通讯还是非常实用的
星辰大海不退缩 发表于 2025-1-23 19:01 | 显示全部楼层
OLED与开发板连接,开发板CW32L010F8P6,OLED屏幕通常使用SSD1306驱动器,I2C通信接口。
AdaMaYun 发表于 2025-1-25 22:59 | 显示全部楼层
模拟IIC通讯?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:工程师
简介:超越自我,为设计激发灵感和想象。

254

主题

825

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部