OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4699|回复: 6

菜鸟萌新求助!芯片通过8266与手机通信的问题。

[复制链接]

3

主题

4

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2020-11-5
在线时间
8 小时
发表于 2021-3-18 00:10:30 | 显示全部楼层 |阅读模式
16金钱
       


下面得程序是我用的mini板ESP8266例程改的,把程序移植到了C8T6上跑,DMA发送,串口中断接收(就是例程的驱动程序,没改过)
ESP8266是AP模式。C8T6向手机发送指定数据。手机APP控制LED灯。
芯片一直在发送数据,发送得很快,我手机一直能接收到。但是手机发过来的数据,芯片只能偶尔接收到,发送100次都不一定能接收到一次。
菜鸟萌新想问为什么会这样子,要怎么改芯片才能及时收到数据。


此外,我在MINI开发板上跑的时候,为什么数据发送得没这么快。芯片也只是偶尔不能接收到数据。



         delay_init();                     //延时函数初始化       
         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
         uart_init(115200);       
          USART2_Init(115200);       
          LED_Init();
         wifi_ap_init();
         USART2_RX_STA=0;       

               while(1)
        {
                     if(t%500==0)//每100ms读取一次
                  {                                                       
                         {                                                                          

                        sprintf(temp,"%d;%d;%d;\r\n",1, 2,3 );
                        atk_8266_send_cmd("AT+CIPSEND=0,10","OK",100);
                        atk_8266_send_data(temp,"OK",100);
                         }

                   }       
                        if(USART2_RX_STA&0X8000)                //接收到一次数据了
         {
                rlen=USART2_RX_STA&0X7FFF;        //得到本次接收到的数据长度
                USART2_RX_BUF[rlen]=0;                //添加结束符
                printf("%s",USART2_RX_BUF);        //发送到串口   
                switch(USART2_RX_BUF[11])                  //比较11位数据控制LED通断
               {
                        case '1'ED0=0;break;
                        case '0'ED0=1;break;
                        case '2'ED0=0;break;
                        case '3'ED0=1;break;
                }
                USART2_RX_STA=0;
        }               
        t++;
}
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

71

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
360
金钱
360
注册时间
2017-10-10
在线时间
131 小时
发表于 2021-3-18 13:17:26 | 显示全部楼层
串口接收用的轮询?没用中断?不用中断丢数据不是很正常。。。。。
回复

使用道具 举报

6

主题

890

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1481
金钱
1481
注册时间
2020-8-19
在线时间
336 小时
发表于 2021-3-18 15:35:47 | 显示全部楼层
检测芯片的系统时钟频率
回复

使用道具 举报

3

主题

4

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2020-11-5
在线时间
8 小时
 楼主| 发表于 2021-3-18 20:16:47 | 显示全部楼层
YukawaManabu 发表于 2021-3-18 13:17
串口接收用的轮询?没用中断?不用中断丢数据不是很正常。。。。。

谢谢解答,串口接收和发送都有用中断的。所以我搞不懂是哪里出了问题。,今天试了一下把发送数据的函数放到定时器中断里处理(1秒发送一次),发现在中断里发送的数据都不对,全是0
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2019-5-3
在线时间
10 小时
发表于 2021-4-4 14:18:57 | 显示全部楼层
楼主手机APP用的哪个可以分享一下吗
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2021-4-6 00:59:21 | 显示全部楼层
帮顶
回复

使用道具 举报

16

主题

77

帖子

0

精华

高级会员

Rank: 4

积分
508
金钱
508
注册时间
2020-6-6
在线时间
230 小时
发表于 2021-4-6 09:44:25 | 显示全部楼层
帮顶     
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 23:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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