探索板蓝牙模块,最后一个字符串比较函数是假的吧,换一个字符串就不行了。。

2019-07-20 02:22发布

本帖最后由 铭铭唐 于 2019-4-25 12:47 编辑

if(USART3_RX_STA&0X8000)                        //接收到一次数据了
                {
                        LCD_Fill(30,200,240,320,WHITE);        //清除显示
                         reclen=USART3_RX_STA&0X7FFF;        //得到数据长度
                          USART3_RX_BUF[reclen]=0;                 //加入结束符
                        if(reclen==9||reclen==8)                 //控制DS1检测
                        {
                                if(strcmp((const char*)USART3_RX_BUF,"+LED1 ON")==0)LED1=0;        //打开LED1
                                if(strcmp((const char*)USART3_RX_BUF,"+LED1 OFF")==0)LED1=1;//关闭LED1
                        }
                         LCD_ShowString(30,200,209,119,16,USART3_RX_BUF);//显示接收到的数据
                         USART3_RX_STA=0;         
                }         

这个函数中:if(strcmp((const char*)USART3_RX_BUF,"+LED1 ON")==0)LED1=0;        //打开LED1,我将"+LED1 ON” 随便改动一个字符,就无法控制LED灯了。举个例子,我改成   if(strcmp((const char*)USART3_RX_BUF,"open")==0)LED1=0;        //打开LED1,之后,再通过手机发送open,结果一点反应都没有

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
peng1554
2019-07-20 02:25
你if的循环条件也要修改才行见代码‘[mw_shl_code=c,true]                        if(reclen==9||reclen==4)                 //控制DS1检测
                        {
                                if(strcmp((const char*)USART3_RX_BUF,"open")==0)LED1=0;        //打开LED1
                                if(strcmp((const char*)USART3_RX_BUF,"+LED1 OFF")==0)LED1=1;//关闭LED1
                        }[/mw_shl_code]

一周热门 更多>