因为之前使用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
|