打印
[开发板]

CW32L010 OLED显示

[复制链接]
114|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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数据线




屏:


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

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

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

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

    SYSCTRL_HSI_Enable(SYSCTRL_HSIOSC_DIV12);
   
    __SYSCTRL_GPIOA_CLK_ENABLE();
    __SYSCTRL_GPIOB_CLK_ENABLE();  

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

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

三、实际输出结果




1735574034041.jpg (74.19 KB )

1735574034041.jpg

使用特权

评论回复
评论
forgot 2024-12-31 08:27 回复TA
模拟I2C 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

187

主题

695

帖子

4

粉丝