[单片机芯片] 【CH32X035评估板测评】+IO模拟时序驱动OLED液晶

[复制链接]
3238|7
 楼主| forgot 发表于 2023-10-8 21:50 | 显示全部楼层 |阅读模式
因为之前使用CH32V307的时候用307驱动过一个OLED液晶,这次就准备将这个OLED.C完整的移植到CH32X035上。
先将OLED相关的.C和.H文件复制到CH32X035EVT的demo目录下,我是添加到了GPIO_Toggle的工程当中。

微信图片_20231008205051.png

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

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

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

  4.     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  5.     SystemCoreClockUpdate();
  6.     Delay_Init();
  7.     OLED_Configuration();
  8.     OLED_Init();
  9.     OLED_Poweron();
  10.     USART_Printf_Init(115200);
  11.     printf("SystemClk:%d\r\n", SystemCoreClock);
  12.     printf( "ChipID:%08x\r\n", DBGMCU_GetCHIPID() );
  13.     printf("GPIO Toggle TEST\r\n");
  14.     GPIO_Toggle_INIT();

  15.     while(1)
  16.     {
  17.         Delay_Ms(500);
  18.         GPIO_WriteBit(GPIOA, GPIO_Pin_0, (i == 0) ? (i = Bit_SET) : (i = Bit_RESET));
  19.         OLED_Show();
  20.     }
  21. }

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

微信截图_20231008214658.png

显示效果:
RISC-V
CH32X035

tpgf 发表于 2024-6-3 15:39 | 显示全部楼层
所有的oled液晶所需要的驱动都是一样的时序吗
木木guainv 发表于 2024-6-3 16:15 | 显示全部楼层
单片机有没有专用的接口用来控制驱动oled液晶呢
晓伍 发表于 2024-6-3 17:35 | 显示全部楼层
屏幕的刷新频率需要软件自行设置吗
磨砂 发表于 2024-6-3 19:16 | 显示全部楼层
可以将液晶显示调节为自适应吗
caigang13 发表于 2024-6-3 19:18 来自手机 | 显示全部楼层
这种OLED的价格现在已经很低了,以前贵的很。
xiaoqizi 发表于 2024-6-3 20:18 | 显示全部楼层
这种液晶的显示是不是跟画图似的啊 想要调整都比较困难呢
wowu 发表于 2024-6-3 20:49 | 显示全部楼层
oled的液晶显示也需要一定的时序进行驱动吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2112

主题

14683

帖子

59

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