lugl4313820 发表于 2022-2-26 08:09

【沁恒RISC-V内核 CH582】I2C 点亮OLED屏

<p>SSD1306是一款OLED驱动芯片,拥有最大128*64像素支持,广泛应用在小尺寸OLED显示屏的驱动中。特别是他的显示低功耗,与CH582M结合在一起做穿戴设备是很好的组合。</p>

<p>这次采用的是摸拟I2C来驱动的。SDA跟SCL配置如下。</p>

<p>&nbsp; GPIOB_SetBits( GPIO_Pin_12 );<br />
&nbsp; GPIOB_SetBits( GPIO_Pin_13 );<br />
&nbsp; GPIOB_ModeCfg( GPIO_Pin_12, GPIO_ModeOut_PP_20mA ); //SDA<br />
&nbsp; 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(); &nbsp; &nbsp; &nbsp;//初始化OLED<br />
&nbsp; OLED_ColorTurn(0);//0正常显示,1 反色显示<br />
&nbsp; OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示<br />
&nbsp; OLED_Clear();<br />
&nbsp; mDelaymS(800);<br />
&nbsp; OLED_ShowString(8, 6, &quot;Hello EEWORLD!&quot;, 16, 1);<br />
&nbsp; OLED_ShowString(22, 26, &quot;CH582M&quot;, 24, 1);<br />
&nbsp; OLED_ShowNum(12, 52, 2022, 4, 12, 1);<br />
&nbsp; OLED_ShowChinese(40,52,9,12,1);//12*12 年<br />
&nbsp; OLED_ShowNum(54, 52, 2, 1, 12, 1);<br />
&nbsp; OLED_ShowChinese(64,52,10,12,1);//12*12 月<br />
&nbsp; OLED_ShowNum(80, 52, 26, 2, 12, 1);<br />
&nbsp; OLED_ShowChinese(94,52,2,12,1);//12*12 日<br />
&nbsp; OLED_Refresh();</p>

<p>工程文件上传如下:</p>

<p><br />
</p>

珏珲1 发表于 2023-1-8 16:56

工程文件好像有问题,mrs编译失败

lugl4313820 发表于 2023-1-8 18:12

珏珲1 发表于 2023-1-8 16:56
工程文件好像有问题,mrs编译失败

<p>你要看看工程、头文件的引用路径等。看看报错具体是怎么样,调整一下。</p>

珏珲1 发表于 2023-1-8 20:21

lugl4313820 发表于 2023-1-8 18:12
你要看看工程、头文件的引用路径等。看看报错具体是怎么样,调整一下。

<p>解决了,缺了几个头文件,把主文件替换到其他工程了;</p>

<p>还有就是&nbsp;<em><em>说没有找到`TMR0_TimerInit&#39;这里函数的定义,CH58x_timer0.c没有参与编译</em></em></p>

<p><em><em>参考大佬的帖子右键加了一下</em></em></p>

珏珲1 发表于 2023-1-8 20:23

珏珲1 发表于 2023-1-8 20:21


<p>现在想把ADC采集的值显示上去,还没成功</p>

<div data-v-app="" id="phraseJoinewrskdfdswerhnyikyofd">&nbsp;</div>

lugl4313820 发表于 2023-1-9 08:37

珏珲1 发表于 2023-1-8 20:23
现在想把ADC采集的值显示上去,还没成功

&nbsp;

<p>加油,沁恒的东西非常好用,价格也亲民,功耗也可以。</p>
页: [1]
查看完整版本: 【沁恒RISC-V内核 CH582】I2C 点亮OLED屏