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