神农鼎 发表于 7 天前



AiCube自动生成【SPI,SPI-DMA,I2C,I2C-DMA】代码,驱动OLED-12864, @Ai8051U - AiCube@AIapp-ISP 最新版本, 强大的32位8051辅助开发工具 国芯技术交流网站 - AI32位8051交流社区

大明狐 发表于 7 天前

laohu_zhou 发表于 2025-6-22 12:37
感谢分享!试了一下,能点亮OLED,但是有警告。
Hardware\OLED.c(239): warning C188: 'parameter 1': valu ...

这是C251的数据类型原因,不影响使用。
如果不产生这种提示,需要强制转换一下数据类型

239是    Write_IIC_Command( (u8)(0xb0+y) );
300是    OLED_Set_Pos( column, (u8)(page+j) );

其它地方如果有类似的表达式,也可以用这个方法

laohu_zhou 发表于 7 天前

这段怎么改?
void OLED_ShowNum(u8 x,u8 y,u16 num,u8 len,u8 size2)
{
    u8 t,temp;
    u8 enshow=0;
    for(t=0; t<len; t++)
    {
      temp=(num/oled_pow(10,len-t-1))%10;
      if(enshow==0&&t<(len-1))
      {
            if(temp==0)
            {
                OLED_ShowChar(x+(size2)*t,y,' ',size2);
                continue;
            }
            else
            {
                enshow=1;
            }
      }
      OLED_ShowChar(x+(size2)*t,y,temp+'0',size2);
    }
}

大明狐 发表于 7 天前

laohu_zhou 发表于 2025-6-22 16:34
这段怎么改?
void OLED_ShowNum(u8 x,u8 y,u16 num,u8 len,u8 size2)
{


参数num的数据类型,.c和.h 的声明不一样,一边是u16,一边是u32,改成一样的

laohu_zhou 发表于 7 天前

ok,感谢您的指导
页: 1 2 [3]
查看完整版本: 用 AiCube 配置硬件 I2C 点亮OLED12864 的过程记录, STC8H8K64U, Ai8051U