打印
[单片机芯片]

【CH32X035评估板测评】+IO模拟时序驱动OLED液晶

[复制链接]
472|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
forgot|  楼主 | 2023-10-8 21:50 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
因为之前使用CH32V307的时候用307驱动过一个OLED液晶,这次就准备将这个OLED.C完整的移植到CH32X035上。
先将OLED相关的.C和.H文件复制到CH32X035EVT的demo目录下,我是添加到了GPIO_Toggle的工程当中。


修改对应的数据和时钟IO口,进行好IO口的输出模式配置就可以了。
//管脚配置
#define OLED_SCLK_Clr() GPIO_WriteBit(GPIOA,GPIO_Pin_7,Bit_RESET)
#define OLED_SCLK_Set() GPIO_WriteBit(GPIOA,GPIO_Pin_7,Bit_SET)

#define OLED_SDIN_Clr() GPIO_WriteBit(GPIOA,GPIO_Pin_6,Bit_RESET)
#define OLED_SDIN_Set() GPIO_WriteBit(GPIOA,GPIO_Pin_6,Bit_SET)

在main中添加OLED相关的初始化函数,和显示功能函数。
int main(void)
{
    u8 i = 0;

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    SystemCoreClockUpdate();
    Delay_Init();
    OLED_Configuration();
    OLED_Init();
    OLED_Poweron();
    USART_Printf_Init(115200);
    printf("SystemClk:%d\r\n", SystemCoreClock);
    printf( "ChipID:%08x\r\n", DBGMCU_GetCHIPID() );
    printf("GPIO Toggle TEST\r\n");
    GPIO_Toggle_INIT();

    while(1)
    {
        Delay_Ms(500);
        GPIO_WriteBit(GPIOA, GPIO_Pin_0, (i == 0) ? (i = Bit_SET) : (i = Bit_RESET));
        OLED_Show();
    }
}

编译下载之后连接好电源线和两根通讯线就可以显示对应的界面信息。整个过程比较顺利,后续有空采用CH32X035自带的I2C来驱动一次看看。


显示效果:
RISC-V
CH32X035

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1257

主题

10849

帖子

51

粉丝