OpenEdv-开源电子网

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

蓝牙HC06与MINI STM32为什么连接不上???

[复制链接]

7

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2015-1-4
在线时间
0 小时
发表于 2015-5-15 20:24:40 | 显示全部楼层 |阅读模式
5金钱
手机蓝牙与蓝牙在配对的情况下,手机发送的信息串口助手可以显示接收到的信息,同时串口助手发送的信息,在手机的接收区也可以显示出来的。问题是手机发送的信息为什么STM32接收不到呢?
因为STM32执行到下面这个程序后,就停止了。这个问题怎么破啊?求各位大神帮帮忙。万分感谢。
while(HC05_Init()) //??????ATK-HC05???é  
{
     LCD_ShowString(30,90,200,16,16,"ATK-HC05 Error!"); 
    delay_ms(500);
    LCD_ShowString(30,90,200,16,16,"Please Check!!!"); 
    delay_ms(100);
}  

最佳答案

查看完整内容[请看2#楼]

停在这里,说明程序根本没往下跑,自然无法收到数据了。 如果你不需要配置蓝牙模块,那就直接吧我们的代码,指令收发相关的内容都屏蔽掉,就可以了。只要配置波特率,这样最简单了。当透明串口用
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-5-15 20:24:41 | 显示全部楼层
停在这里,说明程序根本没往下跑,自然无法收到数据了。
如果你不需要配置蓝牙模块,那就直接吧我们的代码,指令收发相关的内容都屏蔽掉,就可以了。只要配置波特率,这样最简单了。当透明串口用
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2015-1-4
在线时间
0 小时
 楼主| 发表于 2015-5-16 10:00:53 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我的蓝牙模块HC06可以通过串口助手进行AT模式的调试,也可以通过手机蓝牙发送数据到串口助手,串口助手也能收到手机蓝牙发过来的数据,可是为什么手机就是不能控制STM32啊?是不是串口助手要通过USMART相关函数和STM32接通,才能去控制STM32?
回复

使用道具 举报

7

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2015-1-4
在线时间
0 小时
 楼主| 发表于 2015-5-16 18:57:27 | 显示全部楼层

回复【2楼】正点原子:
---------------------------------
原子哥:还是不行啊。今天试了一天的。即使当作透明串口使用也不行啊。STM32压根收不到来自手机通过蓝牙模块发送过来的指令啊?麻烦您帮帮忙
我用的蓝牙是HC06模块
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include "hc05.h"
#include "usart2.h"  
#include "string.h"  
#include "key.h"

// //????ATK-HC05???é???÷??×???
//   void HC05_Role_Show(void)
//    {
//       if(HC05_Get_Role()==1)LCD_ShowString(30,140,200,16,16,"ROLE:Master"); //?÷?ú
//       else LCD_ShowString(30,140,200,16,16,"ROLE:Slave "); //???ú
//    }
////  ????ATK-HC05???é??????×???
//    void HC05_Sta_Show(void)
//  {  
//     f(HC05_LED)LCD_ShowString(120,140,120,16,16,"STA:Connected "); //????????
//     else LCD_ShowString(120,140,120,16,16,"STAisconnect"); //??????  
//  }  

int main(void)
 {  
u8 t;
u8 key;
u8 sendmask=0;
u8 sendcnt=0;
u8 sendbuf[20];  
u8 reclen=0;  
delay_init();     //???±??????????  
NVIC_Configuration(); //?è??NVIC????·?×é2:2??????????????2???ì????????
uart_init(9600); //?®??????????9600
LED_Init(); //????????LED??????????????
KEY_Init(); //??????°??ü
  LCD_Init(); //??????LCD
   
POINT_COLOR=RED;
LCD_ShowString(30,30,200,16,16,"ALIENTEK STM32 ^_^");
LCD_ShowString(30,50,200,16,16,"HC05 BLUETOOTH COM TEST");
LCD_ShowString(30,70,200,16,16,"ATOM@ALIENTEK");

HC05_Init();
 
//  while(HC05_Init()) //??????ATK-HC05???é  
// {
//    LCD_ShowString(30,90,200,16,16,"ATK-HC05 Error!"); 
//   delay_ms(500);
//    LCD_ShowString(30,90,200,16,16,"Please Check!!!"); 
//  delay_ms(100);
// }  

   LCD_ShowString(30,90,200,16,16,"WK_UP:ROLE KEY0:SEND/STOP");  
   LCD_ShowString(30,110,200,16,16,"ATK-HC05 Standby!");  
   LCD_ShowString(30,160,200,16,16,"Send:");
   LCD_ShowString(30,180,200,16,16,"Receive:");

POINT_COLOR=BLUE;
// HC05_Role_Show();
while(1)
{

  for(t=0;t<10;t++) //×??¤????50ms,??????HC05???é??????
  {
    if(USART2_RX_STA&0X8000)break;
    delay_ms(5);
  }

if(USART2_RX_STA&0X8000) //????????????????
{
        reclen=USART2_RX_STA&0X7FFF; //?????????¤??
        USART2_RX_BUF[reclen]=0; //?????á??·?
//    if(reclen==9||reclen==8) //????DS1?ì??
//     {
      if(strcmp((const char*)USART2_RX_BUF,"ON")==0)LED0=0; //?ò??LED1
      if(strcmp((const char*)USART2_RX_BUF,"OFF")==0)LED0=1;//??±?LED1
//    }
     LCD_ShowString(30,200,209,119,16,USART2_RX_BUF);//????????????????
  }
   USART2_RX_STA=0;  

  }
 
// while(1) 
// {
// key=KEY_Scan(0);
// if(key==WKUP_PRES) //???????é?÷???è??
// {
//   key=HC05_Get_Role(); //·?????:0,???ú;1,?÷?ú;0XFF,?????§°?.  
// if(key!=0XFF)
// {
// key=!key;   //×?????·?   
// if(key==0)
//   HC05_Set_Cmd("AT+ROLE=0");  //ATK-HC05?è???ü??,·?????:0,?è??????;????,?è???§°?.
// else HC05_Set_Cmd("AT+ROLE=1");
// HC05_Role_Show();
// HC05_Set_Cmd("AT+RESET"); //????ATK-HC05???é
// }
// }
// 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); //????·???????
// u2_printf("ALIENTEK HC05 %d\r\n",sendcnt); //·????????????é
// sendcnt++;
// if(sendcnt>99)sendcnt=0;
// }
// HC05_Sta_Show();    
// t=0;
// LED0=!LED0;     
// }  
// if(USART2_RX_STA&0X8000) //????????????????
// {
// LCD_Fill(30,200,240,320,WHITE); //????????
// reclen=USART2_RX_STA&0X7FFF; //?????????¤??
//   USART2_RX_BUF[reclen]=0; //?????á??·?
// if(reclen==9||reclen==8) //????DS1?ì??
// {
// if(strcmp((const char*)USART2_RX_BUF,"ON")==0)LED1=0; //?ò??LED1
// if(strcmp((const char*)USART2_RX_BUF,"OFF")==0)LED1=1;//??±?LED1
// }
// LCD_ShowString(30,200,209,119,16,USART2_RX_BUF);//????????????????
// USART2_RX_STA=0;  
// }       
// t++;
// }    
}


回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

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

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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