WIFI技术学习
直播中

田晴

7年用户 169经验值
私信 关注
[问答]

ATK-ESP8266数据收发问题

        if(timex)timex--;
                                if(timex==1)LCD_Fill(30+54,100,239,112,WHITE);
                                t++;
                                delay_ms(10);
                                if(USART3_RX_STA&0X8000)               
                                {
                                        rlen=USART3_RX_STA&0X7FFF;        
                                        USART3_RX_BUF[rlen]=0;               
                                        printf("%s",USART3_RX_BUF);        
                                        sprintf((char*)p,"**********",rlen);
                                        LCD_Fill(30+54,115,239,130,WHITE);
                                        POINT_COLOR=BRED;
                                        Show_Str(30+54,115,156,12,p,12,0);                        
                                        POINT_COLOR=BLUE;
                                        LCD_Fill(30,130,239,319,WHITE);
                                        Show_Str(30,130,180,190,USART3_RX_BUF,USART3_RX_STA=0;
                                        if(constate!=3)t=1000;               
                                        else t=0;                  
                                }  
[size=15.1999998092651px]USART3_RX_BUF[rlen]这个数组是接收发来的数据的。我不用电脑发送数据时,lcd上就显示接收了数据了。
假如我发送1,我想知道在[size=15.1999998092651px]USART3_RX_BUF[rlen]中的第几个数。我想实现pc端发送一个1,单片机接收到后,LED1亮起来,但是不知道1是在这个数组中的第几个。
[size=15.1999998092651px]我加了一句if([size=15.1999998092651px]USART3_RX_BUF[10]==1[size=15.1999998092651px])LED1=0;困扰我好久了,求解答。

回帖(2)

桂莅鑫

2019-5-17 09:29:09
里面有句式 USART3_RX_BUF[rlen]=0; 说明在结尾加上0作为结束符,所以我觉得是USART3_RX_BUF[10]           
举报

云达贞

2019-5-17 09:47:24
那你接收的数组成员大于10个呢,rlen是实际接收的数组长度,USART3_RX_BUF[rlen]=0;也就是在末尾加结束符
举报

更多回帖

发帖
×
20
完善资料,
赚取积分