OpenEdv-开源电子网

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

小白请教一下,为啥只能手机通过蓝牙控制led亮灭?

[复制链接]

0

主题

4

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
249
金钱
249
注册时间
2017-10-31
在线时间
32 小时
发表于 2020-8-11 09:50:01 | 显示全部楼层 |阅读模式
本帖最后由 duritou 于 2020-8-11 09:51 编辑

最近在学蓝牙模块,发现同样的数据LED1 ON,手机蓝牙发给单片机可以点亮led1,而hc05模块发给单片机LED1 ON却点亮不了。按我的理解是收发数据都是一样的,按理说串口检验也还是一样的,为什么效果区别对待?        while(1)         {               
                key=KEY_Scan(0);
                if(key==WKUP_PRES)                                                //切换模块主从设置
                {
                           key=HC05_Get_Role();
                        if(key!=0XFF)
                        {
                                key=!key;                                          //状态取反           
                                if(key==0)HC05_Set_Cmd("AT+ROLE=0");
                                else HC05_Set_Cmd("AT+ROLE=1");
                                HC05_Role_Show();
                                HC05_Set_Cmd("AT+RESET");        //复位ATK-HC05模块
                                delay_ms(200);
                        }
                }else if(key==KEY0_PRES)
                {
                        sendmask=!sendmask;                                //发送/停止发送           
                        if(sendmask==0)LCD_Fill(30+40,160,240,160+16,WHITE);//清除显示
                }else delay_ms(10);           
                if(t==50)
                {
                        if(sendmask)                                        //定时发送
                        {
                                sprintf((char*)sendbuf,"ALIENTEK HC05 %d\r\n",sendcnt);
                                  LCD_ShowString(30+40,160,200,16,16,sendbuf);        //显示发送数据        
                                u3_printf("ALIENTEK HC05 %d\r\n",sendcnt);                //发送到蓝牙模块
                                sendcnt++;
                                if(sendcnt>99)sendcnt=0;
                        }
                        HC05_Sta_Show();            
                        t=0;
                        LED0=!LED0;              
                }         
                if(USART3_RX_STA&0X8000)                        //接收到一次数据了
                {
                        LCD_Fill(30,200,240,320,WHITE);        //清除显示
                         reclen=USART3_RX_STA&0X7FFF;        //得到数据长度
                        for(i=0;i<reclen;i++)
                        {
                                USART1->DR=USART3_RX_BUF;
                                while((USART1->SR&0X40)==0);//等待发送结束
                        }
                        USART3_RX_STA=0;
                  USART3_RX_BUF[reclen]=0;                 //加入结束符
                        if(reclen==8||reclen==7)                 //控制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
                        }
                        printf("%s\n",USART3_RX_BUF);
                        delay_ms(20);
                         LCD_ShowString(30,200,209,119,16,USART3_RX_BUF);//显示接收到的数据        
                        delay_ms(20);

                        USART3_RX_STA=0;
                }        
                t++;        
        }                                                                                            
}

HC05.rar

1.67 MB, 下载次数: 28

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

使用道具 举报

10

主题

3281

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8204
金钱
8204
注册时间
2020-5-11
在线时间
3697 小时
发表于 2020-8-11 13:06:55 | 显示全部楼层
if(reclen==8||reclen==7)
像这种句子,为避免运算符优先级问题,最好是加上两个括号。
专治疑难杂症
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
249
金钱
249
注册时间
2017-10-31
在线时间
32 小时
 楼主| 发表于 2020-8-11 14:22:14 | 显示全部楼层
好的,谢谢,已改,但是还是不能hc05控制单片机点亮。
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2020-6-26
在线时间
16 小时
发表于 2020-9-29 10:14:16 | 显示全部楼层
蓝牙模块的主从设置一下
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 16:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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