找回密码
 立即注册
楼主: zhange

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

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

61

主题

820

回帖

1544

积分

金牌会员

积分
1544
发表于 2024-5-26 05:43:17 | 显示全部楼层
12.上个帖子被审核了  



void huoqutianqi(void)
{
        //k780成功               

                Uart3SendStr("AT+RST\r\n");
                Delay1000ms();
                wptr=0;
                Uart4SendStr(buffer);
                memset(buffer,'\0', sizeof(buffer));
                Uart4SendStr("01rst\r\n");
               
                Delay1000ms();
                Delay1000ms();
                Delay1000ms();
                Delay1000ms();
                Delay1000ms();
                Delay1000ms();
                Delay1000ms();
                Delay1000ms();
                Delay1000ms();
                Delay1000ms();
               
                Uart3SendStr("AT+CIPSTART=\"TCP\",\"域名\",80\r\n");//不懂得看下图   带网址发不出来
                Delay1000ms();
                wptr=0;
                Uart4SendStr(buffer);
                memset(buffer,'\0', sizeof(buffer));
                Uart4SendStr("02lianjie\r\n");
               
  
                Delay1000ms();
               
                Uart3SendStr("AT+CWMODE=1\r\n");       
                Delay1000ms();
                wptr=0;
                Uart4SendStr(buffer);       
                memset(buffer,'\0', sizeof(buffer));
                Uart4SendStr("03lianjie-fuwuqi\r\n");
               
               
    Delay1000ms();
               
               
                Uart3SendStr("AT+CIPMODE=1\r\n");            //开启透传模式
                Delay1000ms();
                wptr=0;
                Uart4SendStr(buffer);       
                memset(buffer,'\0', sizeof(buffer));
                Uart4SendStr("04kaiqi-touchuan\r\n");
          Delay1000ms();
               
                Uart3SendStr("AT+CIPSEND\r\n");   
                Delay1000ms();
                wptr=0;
                Uart4SendStr(buffer);
                memset(buffer,'\0', sizeof(buffer));               
                Uart4SendStr("05-kaishi\r\n");
                               
                Uart3SendStr("GET 天气获取网址\r\n");  //不懂得看下图   带网址发不出来
                Delay1000ms();
                Uart4SendStr(buffer);
               
               
               
               
                Uart4SendStr("06-wangzhi\r\n");
                Delay1000ms();
                Delay1000ms();
                Delay1000ms();
               
}

回复 支持 反对

使用道具 举报 送花

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

61

主题

820

回帖

1544

积分

金牌会员

积分
1544
发表于 2024-5-26 05:44:49 | 显示全部楼层

12.续集图

截图202405260544067526.jpg


和12步骤对比下  我把key打了马赛克了
回复 支持 反对

使用道具 举报 送花

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

61

主题

820

回帖

1544

积分

金牌会员

积分
1544
发表于 2024-5-26 05:54:28 | 显示全部楼层
13.放到主函数测试  频率选择11.0592

电脑打开对应端口  不是usb哪个  我是用usb转串口 连接的

微信图片_20240526054928.jpg


测试结果

截图202405260554089040.jpg


下面开始截取字符串
回复 支持 反对

使用道具 举报 送花

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

61

主题

820

回帖

1544

积分

金牌会员

积分
1544
发表于 2024-5-26 07:00:44 | 显示全部楼层
14.截取字符串  用到了jsmn库  

网上有教程 有点少  基本上都是cjson的  

我是先学的cjson c51搞不定(可能是我菜) 又学的jsmn   还行吧   也算简单

这俩货我学了一天




推荐个学习地址:

截图202405260654341533.jpg


基本原理:

jsmn 将每一个 json 数据段都抽象为一个 token:一定要明白每个token,方便获取。



比如:看我的图吧  1 2 3 获取的时候减去1  为  0 1 2


截图202405260656398105.jpg


再举个例子  一层一层的 获取

截图202405260659061475.jpg


我已经得到数据

截图202405260700201315.jpg


下一步把  数据处理下  


回复 支持 反对

使用道具 举报 送花

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

61

主题

820

回帖

1544

积分

金牌会员

积分
1544
发表于 2024-5-26 07:02:47 | 显示全部楼层
15.格式化json代码


  1.   Delay1000ms();       
  2.     r = jsmn_parse (&p, buffer, strlen (buffer), t, sizeof (t) / sizeof (t[0]));  //r   一定要放到获取到buffer后边
  3.                
  4.                
  5.                 for(xunhuan = 0; xunhuan <= r ; xunhuan++)
  6.                
  7.                 {
  8.                         name_len = t[xunhuan].end - t[xunhuan].start;
  9.                         if (name_len < sizeof(fafa) - 1)
  10.                         { // 确保不会缓冲区溢出
  11.                                 strncpy(fafa, (buffer + t[xunhuan].start), name_len);
  12.                                         fafa[name_len] = '\0'; // 添加字符串终止符
  13.                         }else
  14.                         {
  15.                                 strncpy(fafa, "taidale", 7);
  16.                                 fafa[7] = '\0'; // 添加字符串终止符
  17.                         }
  18.                                        
  19.                         Uart4SendStr("\r\n === \r\n");                       
  20.                        
  21.                         Delay1000ms();
  22.                         Uart4SendStr(fafa);
  23.                         Delay1000ms();
  24.                         Uart4SendStr("\r\n === \r\n");
  25.                 }
复制代码


回复 支持 反对

使用道具 举报 送花

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

61

主题

820

回帖

1544

积分

金牌会员

积分
1544
发表于 2024-5-26 07:04:31 | 显示全部楼层
16.jsmn  别人分享的程序  你可以在里边获取到jsmn的头和主程序  不用去外网下载了 我就是用的他的


JSMN_demo.zip (25.26 KB, 下载次数: 55)


亲测可用  我就是用这个学习的。。。。。。{:5_294:}
回复 支持 反对

使用道具 举报 送花

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

61

主题

820

回帖

1544

积分

金牌会员

积分
1544
发表于 2024-5-26 08:32:26 | 显示全部楼层
17.是时候添加上屏幕了


把获取的当天天气情况显示出来

微信图片_20240526083141.jpg


完美  就是没加字库  有点乱

下一步 整理需要的字库   格式化输出
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:432
  • 最近打卡:2025-05-11 09:56:11
已绑定手机

19

主题

3197

回帖

4970

积分

论坛元老

积分
4970
发表于 2024-5-26 09:00:05 来自手机 | 显示全部楼层
值得借鉴学习
回复 支持 反对

使用道具 举报 送花

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

61

主题

820

回帖

1544

积分

金牌会员

积分
1544
发表于 2024-5-26 14:52:07 | 显示全部楼层
18.白天天气代码参考


  1. //白天
  2.                
  3.                 name_len = t[26].end - t[26].start;
  4.     if (name_len < sizeof(fafa) - 1)
  5.                 { // 确保不会缓冲区溢出
  6.        strncpy(fafa, (buffer + t[26].start), name_len);
  7.         fafa[name_len] = '\0'; // 添加字符串终止符
  8.     }
  9.                
  10.                 num = atoi(fafa);
  11.        
  12.                 if (num == 0 | num == 1)
  13.                 {
  14.                         dtbaitian = qing;
  15.                 }else if(num == 4 | num == 5 | num == 6 | num == 7 | num == 8)
  16.                 {
  17.                         dtbaitian = duoyun;
  18.                 }else if( num == 9 )
  19.                 {
  20.                         dtbaitian = yin;
  21.                 }else if(num == 10 | num == 11 | num == 12 | num == 13 | num == 14 | num == 15 | num == 16 | num == 17 | num == 18 | num == 19 | num == 20)
  22.                 {
  23.                         dtbaitian = yu;
  24.                 }else if(num == 21 | num == 22 | num == 23 | num == 24 | num == 25 )
  25.                 {
  26.                         dtbaitian = xue;
  27.                 }else if(num == 30 | num == 31 )
  28.                 {
  29.                         dtbaitian = wumai;
  30.                 }else if(num == 32 | num == 33 | num == 34 | num == 35 | num == 36 )
  31.                 {
  32.                         dtbaitian = feng;
  33.                 }else if(num == 37)
  34.                 {
  35.                         dtbaitian = leng;
  36.                 }else if(num == 38)
  37.                 {
  38.                         dtbaitian = re;
  39.                 }
复制代码


回复 支持 反对

使用道具 举报 送花

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

61

主题

820

回帖

1544

积分

金牌会员

积分
1544
发表于 2024-5-26 14:52:43 | 显示全部楼层
19.晚上天气代码参考


  1. //yewan
  2.                
  3.                 name_len = t[30].end - t[30].start;
  4.     if (name_len < sizeof(fafa) - 1)
  5.                 { // 确保不会缓冲区溢出
  6.        strncpy(fafa, (buffer + t[30].start), name_len);
  7.         fafa[name_len] = '\0'; // 添加字符串终止符
  8.     }
  9.                
  10.                 num = atoi(fafa);
  11.        
  12.                 if (num == 0 | num == 1)
  13.                 {
  14.                         dtyewan = yqing;
  15.                 }else if(num == 4 | num == 5 | num == 6 | num == 7 | num == 8)
  16.                 {
  17.                         dtyewan = yduoyun;
  18.                 }else if( num == 9 )
  19.                 {
  20.                         dtyewan = yyin;
  21.                 }else if(num == 10 | num == 11 | num == 12 | num == 13 | num == 14 | num == 15 | num == 16 | num == 17 | num == 18 | num == 19 | num == 20)
  22.                 {
  23.                         dtyewan = yyu;
  24.                 }else if(num == 21 | num == 22 | num == 23 | num == 24 | num == 25 )
  25.                 {
  26.                         dtyewan = yxue;
  27.                 }else if(num == 30 | num == 31 )
  28.                 {
  29.                         dtyewan = ywumai;
  30.                 }else if(num == 32 | num == 33 | num == 34 | num == 35 | num == 36 )
  31.                 {
  32.                         dtyewan = yfeng;
  33.                 }else if(num == 37)
  34.                 {
  35.                         dtyewan = yleng;
  36.                 }else if(num == 38)
  37.                 {
  38.                         dtyewan = yre;
  39.                 }
复制代码


回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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