SSD1306是一款OLED驱动芯片,拥有最大128*64像素支持,广泛应用在小尺寸OLED显示屏的驱动中。特别是他的显示低功耗,与CH582M结合在一起做穿戴设备是很好的组合。
这次采用的是摸拟I2C来驱动的。SDA跟SCL配置如下。
GPIOB_SetBits( GPIO_Pin_12 );
GPIOB_SetBits( GPIO_Pin_13 );
GPIOB_ModeCfg( GPIO_Pin_12, GPIO_ModeOut_PP_20mA ); //SDA
GPIOB_ModeCfg( GPIO_Pin_13, GPIO_ModeOut_PP_20mA ); //SLC
然后驱动是修改我以前的驱动,其实SSD1306网上大把资料:
#define OLED_SCL_Clr() GPIOB_ResetBits(GPIO_Pin_13)//SCL
#define OLED_SCL_Set() GPIOB_SetBits(GPIO_Pin_13)
#define OLED_SDA_Clr() GPIOB_ResetBits(GPIO_Pin_12)//SDA
#define OLED_SDA_Set() GPIOB_SetBits(GPIO_Pin_12)
修改以上这些参数后就成功驱动SSD1306了:
OLED_Init(); //初始化OLED
OLED_ColorTurn(0);//0正常显示,1 反色显示
OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示
OLED_Clear();
mDelaymS(800);
OLED_ShowString(8, 6, "Hello EEWORLD!", 16, 1);
OLED_ShowString(22, 26, "CH582M", 24, 1);
OLED_ShowNum(12, 52, 2022, 4, 12, 1);
OLED_ShowChinese(40,52,9,12,1);//12*12 年
OLED_ShowNum(54, 52, 2, 1, 12, 1);
OLED_ShowChinese(64,52,10,12,1);//12*12 月
OLED_ShowNum(80, 52, 26, 2, 12, 1);
OLED_ShowChinese(94,52,2,12,1);//12*12 日
OLED_Refresh();
工程文件上传如下:
引用: 珏珲1 发表于 2023-1-8 16:56 工程文件好像有问题,mrs编译失败
你要看看工程、头文件的引用路径等。看看报错具体是怎么样,调整一下。
引用: lugl4313820 发表于 2023-1-8 18:12 你要看看工程、头文件的引用路径等。看看报错具体是怎么样,调整一下。
解决了,缺了几个头文件,把主文件替换到其他工程了;
还有就是 说没有找到`TMR0_TimerInit'这里函数的定义,CH58x_timer0.c没有参与编译
参考大佬的帖子右键加了一下
引用: 珏珲1 发表于 2023-1-8 20:23 现在想把ADC采集的值显示上去,还没成功
加油,沁恒的东西非常好用,价格也亲民,功耗也可以。