找回密码
 立即注册
查看: 2756|回复: 46

Ai32驱动12864显示网络天气学习记录

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:243
  • 最近打卡:2025-05-11 07:59:01

61

主题

820

回帖

1544

积分

金牌会员

积分
1544
发表于 2024-5-25 07:33:26 | 显示全部楼层 |阅读模式
本帖最后由 DebugLab 于 2024-11-27 13:36 编辑

都说站在巨人的肩上看得远,我们也来个移植。
就用下面这个版主的IIC驱动OLED12864代码


版主用的是硬件iic  切记不是模拟的

截图202405250733211529.jpg

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:243
  • 最近打卡:2025-05-11 07:59:01

61

主题

820

回帖

1544

积分

金牌会员

积分
1544
发表于 2024-5-25 07:39:15 | 显示全部楼层
1.接屏幕


用的是官方送的9.62试验箱  屏幕是iic通信的

截图202405250735502254.jpg


截图202405250736142077.jpg


看试验箱图纸  选择 2.4  2.5 管脚做iic时钟信号线   实验箱上都标注这哪   没有的   直接接2.4到2.5 管脚就可以了

截图202405250737461693.jpg



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:243
  • 最近打卡:2025-05-11 07:59:01

61

主题

820

回帖

1544

积分

金牌会员

积分
1544
发表于 2024-5-25 07:43:31 | 显示全部楼层

截图202405251300463766.jpg

没用实验箱这边的 I2C/SPI 接口
截图202405251301508183.jpg
截图202405251302217231.jpg


2.接线,下载程序
一次就亮,版主代码真给力。。。

111.jpg


下面开始解读代码。。。。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:243
  • 最近打卡:2025-05-11 07:59:01

61

主题

820

回帖

1544

积分

金牌会员

积分
1544
发表于 2024-5-25 07:46:38 | 显示全部楼层
3.main解读


#define  DELAY_TIME   2000      



delay_ms(DELAY_TIME);                                                   //延时


上边这是一对   控制延时时间  相加延时  改动 2000 即可



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:243
  • 最近打卡:2025-05-11 07:59:01

61

主题

820

回帖

1544

积分

金牌会员

积分
1544
发表于 2024-5-25 08:01:02 | 显示全部楼层
4.main解读


标注的比较清楚  我们只用到了字符和汉字显示  其他的全部删除

  1. ////-----------------------------------------显示字符-----------------------------------------   
  2. //    OLED_BuffClear();                                                       //清除全部缓存
  3. //    OLED_BuffShowString(0,0,"HEELO ,WELCOME TO USE STC32&OLED12864!",0);      //显示数据
  4. //    OLED_BuffShow();                                                        //将缓存写入显示屏显示
  5. //    delay_ms(DELAY_TIME);                                                   //延时       
  6.    
  7. ////-----------------------------------------显示汉字-----------------------------------------   
  8. //    OLED_BuffClear();                                                       //清除全部缓存
  9. //    OLED_BuffShowString(0,0,"你好,欢迎使用STC 驱\xfd动OLED12864的历程",0);      //显示数据
  10. //    OLED_BuffShow();                                                        //将缓存写入显示屏显示
  11. //    delay_ms(DELAY_TIME);                                                   //延时         
复制代码


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:243
  • 最近打卡:2025-05-11 07:59:01

61

主题

820

回帖

1544

积分

金牌会员

积分
1544
发表于 2024-5-25 08:03:41 | 显示全部楼层
5.main解读


主要显示函数如下 回到定义处查看
  1.     OLED_BuffShowString();                                    //显示数据
  2.     OLED_BuffShowChar32();                                          //显示数字1
复制代码





回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:243
  • 最近打卡:2025-05-11 07:59:01

61

主题

820

回帖

1544

积分

金牌会员

积分
1544
发表于 2024-5-25 08:07:57 | 显示全部楼层
6.main函数解读


先来看这个

  1. void OLED_BuffShowString(unsigned char x,unsigned char y,char *s,u8 mode)
  2. {
  3.     char s_num[2];
  4.         while(*s != '\0')       //字符串不为空,循环
  5.         {
  6.         if ((unsigned char)*s < 0x80)     //根据输入数据的大小判断是字符还是汉字,
  7.         {
  8.             OLED_BuffShowChar(x,y,*s,mode);
  9.             x+=8;
  10.             s++;
  11.         }
  12.         else
  13.         {
  14.             s_num[0] = *s ;
  15.             s_num[1] = *(s+1) ;
  16.             OLED_BuffShowGBK(x,y,s_num,mode);
  17.             x+=16;
  18.             s+=2;
  19.         }
  20.                 if(x>127)
  21.         {
  22.             x=0;
  23.             y+=2;
  24.         }
  25.         }      
  26. }
复制代码
void OLED_BuffShowString(unsigned char x,unsigned char y,char *s,u8 mode)  主要看这里



unsigned char x  :x轴的坐标



unsigned char y :y轴的坐标



char *s :传入的显示字符指针  一般都是字符串名字


u8 mode :模式   没用到  盲猜正反显

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:243
  • 最近打卡:2025-05-11 07:59:01

61

主题

820

回帖

1544

积分

金牌会员

积分
1544
发表于 2024-5-25 08:11:17 | 显示全部楼层
7.main函数解读


再来看这个控制单个数字显示或字母

  1. void OLED_BuffShowChar32(unsigned char  x,unsigned char  y,u8 num, u8 mode)     
  2. {
  3.     unsigned char j,k;
  4.     for( j=0;j<4;j++ )
  5.     {
  6.         for( k=0;k<16;k++ )
  7.         {
  8.             if( mode==0 )
  9.                 ShowBUFF[j+y][x+k]=lib_num1632[num][j*16+k];
  10.             else
  11.                 ShowBUFF[j+y][x+k]=~lib_num1632[num][j*16+k];
  12.         }
  13.     }            
  14. }
复制代码


unsigned char x:同上


unsigned char y:同上


u8 num:8位的值


u8 mode:模式同上

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:243
  • 最近打卡:2025-05-11 07:59:01

61

主题

820

回帖

1544

积分

金牌会员

积分
1544
发表于 2024-5-25 08:15:10 | 显示全部楼层
本帖最后由 zhange 于 2024-5-25 08:19 编辑

8.改动代码测试


已经知道了这两个现实函数,我们改动下

先定义个字符串


unsigned char hanzi[]=        
{
    "欢迎使用"
};


引用测试  看了下数字的引用  直接改成自己喜欢的数字即可  备注是原来的  我没改  其实显示的是08:09
  1. //-----------------------------------------显示32大字-----------------------------------------   
  2.     OLED_BuffClear();                                                       //清除全部缓存
  3.     OLED_BuffShowString(40,0,hanzi,0);                                    //显示数据
  4.     OLED_BuffShowChar32(24,3,0,0);                                          //显示数字1
  5.     OLED_BuffShowChar32(40,3,8,0);                                          //显示数字0
  6.     OLED_BuffShowChar32(56,3,10,0);                                         //显示:
  7.     OLED_BuffShowChar32(72,3,0,0);                                          //显示数字5
  8.     OLED_BuffShowChar32(88,3,9,0);                                          //显示数字5
  9.     OLED_BuffShow();                                                        //将缓存写入显示屏显示        
  10.     delay_ms(DELAY_TIME);                                                   //延时         
复制代码

测试成功

2222.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:243
  • 最近打卡:2025-05-11 07:59:01

61

主题

820

回帖

1544

积分

金牌会员

积分
1544
发表于 2024-5-25 08:21:58 | 显示全部楼层
9. 补充下12864知识


这个貌似是最多一行显示8个汉字   128/8  = 16     一个汉字占  16个点
一列最多4个汉字   64/4 = 16   


下面开始添加字库。上面的欢迎使用能显示是  版主添加好的
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-11 19:38 , Processed in 0.132887 second(s), 102 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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