神农鼎
发表于 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,感谢您的指导