找回密码
 立即注册
楼主: 大明狐

用 AiCube 配置硬件 I2C 点亮OLED12864 的过程记录, STC8H8K64U, Ai8051U

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:234
  • 最近打卡:2025-10-01 19:39:39
已绑定手机

2

主题

82

回帖

1354

积分

金牌会员

积分
1354
发表于 2025-6-6 16:48:39 | 显示全部楼层
学习了。今天按步骤实操了一次 OK
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:121
  • 最近打卡:2025-10-02 10:28:51
已绑定手机

0

主题

22

回帖

614

积分

高级会员

积分
614
发表于 2025-6-9 14:22:43 来自手机 | 显示全部楼层
感谢分享,正在学习点亮oled屏幕
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:128
  • 最近打卡:2025-10-03 00:00:32
已绑定手机

2

主题

59

回帖

182

积分

注册会员

积分
182
发表于 2025-6-22 12:37:58 | 显示全部楼层
感谢分享!试了一下,能点亮OLED,但是有警告。
Hardware\OLED.c(239): warning C188: 'parameter 1': value truncated
Hardware\OLED.c(300): warning C188: 'parameter 2': value truncated
Hardware\OLED.c(316): warning C188: 'parameter 2': value truncated
Hardware\OLED.c(353): warning C188: 'parameter 2': value truncated
Hardware\OLED.c(377): warning C57: parameter 3: different from declaration
Hardware\OLED.c(382): warning C188: 'parameter 2': value truncated
Hardware\OLED.c(387): warning C188: 'parameter 1': value truncated
Hardware\OLED.c(395): warning C188: 'parameter 1': value truncated
Hardware\OLED.c(395): warning C188: 'parameter 3': value truncated
Hardware\OLED.c(428): warning C188: 'parameter 2': value truncated

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

点评

这是C251的数据类型原因,不影响使用。 如果不产生这种提示,需要强制转换一下数据类型 239是 Write_IIC_Command( (u8)(0xb0+y) ); 300是 OLED_Set_Pos( column, (u8)(page+j) ); 其它地方如果有类似的表达  详情 回复 发表于 2025-6-22 14:16
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:195
  • 最近打卡:2025-10-02 09:04:52

784

主题

1万

回帖

1万

积分

管理员

积分
19406
发表于 2025-6-22 13:47:15 | 显示全部楼层
截图202506221346288105.jpg

AiCube自动生成【SPI,SPI-DMA,I2C,I2C-DMA】代码,驱动OLED-12864, [url=home.php?mod=space&uid=30331]@Ai8051U - AiCube@AIapp-ISP 最新版本, 强大的32位8051辅助开发工具 国芯技术交流网站 - AI32位8051交流社区[/url]
截图202506221347119870.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:542
  • 最近打卡:2025-10-03 05:29:16

31

主题

413

回帖

3644

积分

荣誉版主

积分
3644
发表于 2025-6-22 14:16:33 | 显示全部楼层
laohu*** 发表于 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) );

其它地方如果有类似的表达式,也可以用这个方法
能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:128
  • 最近打卡:2025-10-03 00:00:32
已绑定手机

2

主题

59

回帖

182

积分

注册会员

积分
182
发表于 2025-6-22 16:34:57 | 显示全部楼层
这段怎么改?
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);
    }
}
截图202506221634475114.jpg

点评

参数num的数据类型, .c和.h 的声明不一样,一边是u16,一边是u32,改成一样的  详情 回复 发表于 2025-6-22 17:16
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:542
  • 最近打卡:2025-10-03 05:29:16

31

主题

413

回帖

3644

积分

荣誉版主

积分
3644
发表于 2025-6-22 17:16:41 | 显示全部楼层
laohu*** 发表于 2025-6-22 16:34
这段怎么改?
void OLED_ShowNum(u8 x,u8 y,u16 num,u8 len,u8 size2)
{

参数num的数据类型,  .c和.h 的声明不一样,一边是u16,一边是u32,改成一样的
能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:128
  • 最近打卡:2025-10-03 00:00:32
已绑定手机

2

主题

59

回帖

182

积分

注册会员

积分
182
发表于 2025-6-22 18:09:49 | 显示全部楼层
ok,感谢您的指导
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:11
  • 最近打卡:2025-10-01 09:44:55
已绑定手机

0

主题

9

回帖

74

积分

注册会员

积分
74
发表于 2025-8-28 09:06:34 | 显示全部楼层
大*** 发表于 2025-6-2 21:25
更新了一个精简过的驱动。
整理在一楼最上面了。
工程文件是Ai8051U 32bit版的,

学习了
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:15
  • 最近打卡:2025-09-30 08:02:30
已绑定手机

1

主题

7

回帖

37

积分

新手上路

积分
37
发表于 2025-9-15 09:39:54 | 显示全部楼层
感谢分享!
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-10-3 05:55 , Processed in 0.141596 second(s), 112 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表