OpenEdv-开源电子网

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

两个HC-05分别接两个板子的通讯

[复制链接]

5

主题

26

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2017-3-10
在线时间
54 小时
发表于 2018-9-5 20:32:41 | 显示全部楼层 |阅读模式

我在试验过程中发现:1.主机---------发送----------->手机蓝牙串口接收成功         》》》主机发   手机收

                                2.手机蓝牙串口-------发送--------->从机接收成功              》》》手机发   从机收

                                3.主机发 --------------->   从机接收失败

一、HC-05两个模块设置:密码相同,波特率相同,停止位1,数据位8,无奇偶校验,互绑地址,区别在于,一个为主机,一个为从机二、两块板都开了串口2,波特率9600
三、我怀疑主机发送字符用了printf来发,才是问题所在。还在测试中


各位:有没有好的建议



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

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
发表于 2018-9-6 11:31:12 | 显示全部楼层
回复 支持 反对

使用道具 举报

5

主题

26

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2017-3-10
在线时间
54 小时
 楼主| 发表于 2018-9-6 11:34:53 | 显示全部楼层
主机按键检测后作以下处理:
回复 支持 反对

使用道具 举报

5

主题

26

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2017-3-10
在线时间
54 小时
 楼主| 发表于 2018-9-6 11:40:07 | 显示全部楼层
       
主HC-05,设置为主模式并与从HC-05互绑地址,开机就能互连

主机代码

        while(1)
        {
                while(PD_Check(1))
                {
                        printf("Open");
                        LED_Display(1000);
                        switch(ch)
                        {
                                case 1:
                                        OLED_ShowString(40,16,"1",16);
                                        OLED_Refresh_Gram();
                                break;
                                case 2:
                                        OLED_ShowString(40,32,"1",16);
                                        OLED_Refresh_Gram();
                                break;
                                case 3:
                                        OLED_ShowString(40,48,"1",16);
                                        OLED_Refresh_Gram();
//                                break;
//                                case 4:
//                                        OLED_ShowString(100,16,"1",16);
//                                        OLED_Refresh_Gram();
//                                break;
//                                case 5:
//                                        OLED_ShowString(100,32,"1",16);
//                                        OLED_Refresh_Gram();
//                                break;
//                                case 6:
//                                        OLED_ShowString(100,48,"1",16);
//                                        OLED_Refresh_Gram();
//                                break;                               
                        }
                }
                printf("Shut");
                delay_ms(1000);



从机代码:

        while(1)
        {                             
                if(USART2_RX_STA&0X8000)                        //接收到一次数据了
                {
                        reclen=USART2_RX_STA&0X7FFF;        //接收到的数据长度
                          USART2_RX_BUF[reclen]='\0';                 //加入结束符
                        if(reclen==4)                 //控制DS1检测
                        {
                                if(strcmp((const char*)USART2_RX_BUF,"Open")==0) //字符串比较函数
                                        LED0=0;        //打开LED1
                                if(strcmp((const char*)USART2_RX_BUF,"Shut")==0)
                                        LED0=1;//关闭LED1
                        }
                        OLED_ShowString(65,48,USART2_RX_BUF,16);
                        OLED_Refresh_Gram();
                        USART2_RX_STA=0;
                }                                                                                                                                                                        
                t++;
        }


收到对应数据后对LED作相应处理,已通过手机蓝牙串口测试成功





回复 支持 反对

使用道具 举报

21

主题

2205

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5136
金钱
5136
注册时间
2014-8-26
在线时间
1316 小时
发表于 2018-9-6 11:56:36 | 显示全部楼层
直接可以用例程测试的   
一个设置为从机 一个设置为主机    模块会自动连接    然后按键发送数据   都可以接收发送的
回复 支持 反对

使用道具 举报

5

主题

26

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2017-3-10
在线时间
54 小时
 楼主| 发表于 2018-11-1 08:55:42 | 显示全部楼层
这个问题解决了,一直没来填坑,抱歉,发送字符串里包含了"\r\n",去掉后OK
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 21:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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