OpenEdv-开源电子网

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

HC05

[复制链接]

5

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2014-3-12
在线时间
0 小时
发表于 2014-3-27 00:49:29 | 显示全部楼层 |阅读模式
原子哥你好,我想问一下在蓝牙串口模块实验中
u8 HC05_Init(void)
{
u8 retry=10,t;    
u8 temp=1;
RCC->APB2ENR|=1<<4;     //使能PORTC时钟
  GPIOC->CRL&=0XFF00FFFF; //PC4,推挽输出C5,输入
GPIOC->CRL|=0X00830000; 
GPIOC->ODR|=1<<5; //PC5上拉   
USART2_Init(36,9600); //初始化串口2为:9600,波特率.
while(retry--)
{
HC05_KEY=1; //KEY置高,进入AT模式
delay_ms(10);
u2_printf("AT\r\n"); //发送AT测试指令
HC05_KEY=0; //KEY拉低,退出AT模式
for(t=0;t<10;t++) //最长等待50ms,来接收HC05模块的回应
{
if(USART2_RX_STA&0X8000)break;
delay_ms(5);
}
if(USART2_RX_STA&0X8000) //接收到一次数据了
{
temp=USART2_RX_STA&0X7FFF; //得到数据长度
USART2_RX_STA=0;  
if(temp==4&&USART2_RX_BUF[0]=='O'&&USART2_RX_BUF[1]=='K')
{
temp=0;//接收到OK响应
break;
}
}    
}    
if(retry==0)temp=0; //检测失败
return temp;  
}  
我如果想把HC05改为HC06可以吗?可以的话,怎么改?求教
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-3-27 07:21:21 | 显示全部楼层
把.c和.h里所有的都改掉就可以,ctrl+f可以查找
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

5

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2014-3-12
在线时间
0 小时
 楼主| 发表于 2014-3-27 17:36:21 | 显示全部楼层
回复【2楼】745021926:
---------------------------------
你的意思是把HC05改成HC06吗?
回复 支持 反对

使用道具 举报

5

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2014-3-12
在线时间
0 小时
 楼主| 发表于 2014-3-27 17:55:59 | 显示全部楼层
回复【2楼】745021926:
---------------------------------
这样恐怕没什么效果吧!
回复 支持 反对

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-3-27 18:27:29 | 显示全部楼层
回复【4楼】砖头:
---------------------------------
哦哦哦~~~  哈哈,不好意思,脑子短路了....


这个你参考HC05 和HC06的AT指令集进行修改,设置流程是一样的,但是AT指令得对照着修改
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

5

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2014-3-12
在线时间
0 小时
 楼主| 发表于 2014-3-27 18:34:51 | 显示全部楼层
回复【5楼】745021926:
---------------------------------
我用jtag调试,发现 u2_printf("AT\r\n"); //发送AT测试指令
                         if(USART2_RX_STA&0X8000) //接收到一次数据了
串口根本就接收不到数据?还有就是HC05和HC06的AT指令集不是一样的吗?不过就是HC06的指令集少而已?是不是这样?求大神指教?
回复 支持 反对

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-3-27 19:34:59 | 显示全部楼层
是不一样的  比如改串口通信的波特率 HC-06是“AT+BAUDx”,而HC-05是“AT+UART=<aram>,<aram2>,<aram3>”   所以你得对应着做些修改..
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-3-27 19:35:50 | 显示全部楼层
这个是我百度的,你应该有了吧

HC-06.pdf

1.86 MB, 下载次数: 235

博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

5

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2014-3-12
在线时间
0 小时
 楼主| 发表于 2014-3-27 19:45:22 | 显示全部楼层
回复【8楼】745021926:
---------------------------------
这个我有,我发现就是这句u2_printf("AT\r\n");串口2接收不到,也就是【if(USART2_RX_STA&0X8000) //接收到一次数据了】这个中USART2_RX_STA不能置位?
u8 HC06_Init(void)
{
u8 retry=10,t;     
u8 temp=1;
RCC->APB2ENR|=1<<4;     //使能PORTC时钟  
  GPIOC->CRL&=0XFF00FFFF; //PC4,推挽输出C5,输入
GPIOC->CRL|=0X00830000; 
GPIOC->ODR|=1<<5;  //PC5上拉   
USART2_Init(36,9600); //初始化串口2为:9600,波特率.
while(retry--)
{
HC06_KEY=1; //KEY置高,进入AT模式
delay_ms(10);
u2_printf("AT\r\n"); //发送AT测试指令
HC06_KEY=0; //KEY拉低,退出AT模式
for(t=0;t<10;t++)  //最长等待50ms,来接收HC05模块的回应
{
if(USART2_RX_STA&0X8000)break;
delay_ms(5);
}
if(USART2_RX_STA&0X8000) //接收到一次数据了
{
temp=USART2_RX_STA&0X7FFF; //得到数据长度
USART2_RX_STA=0;  
if(temp==4&&USART2_RX_BUF[0]=='O'&&USART2_RX_BUF[1]=='K')
{
temp=0;//接收到OK响应
break;
}
}     
}     
if(retry==0)temp=0; //检测失败
return temp;  
}  
你感觉这段程序应该怎么办呢
回复 支持 反对

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-3-27 20:09:41 | 显示全部楼层

测试指令是一样的,但HC-06的文档说OK是一秒左右发一次,你把
for(t=0;t<10;t++) //最长等待50ms,来接收HC05模块的回应
{
if(USART2_RX_STA&0X8000)break;
delay_ms(5);
}
这个的delay_ms(5);改成delay_ms(200);试试 ,这样最长等待时间就变成2s了
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

5

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2014-3-12
在线时间
0 小时
 楼主| 发表于 2014-3-27 21:17:09 | 显示全部楼层
回复【10楼】745021926:
---------------------------
不行啊!不知道该怎么办,我还是在看看书吧?你还有什么好的办法没有?
回复 支持 反对

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-3-27 21:35:42 | 显示全部楼层
回复【11楼】砖头:
---------------------------------
没,没玩过HC-06....
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

5

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2014-3-12
在线时间
0 小时
 楼主| 发表于 2014-3-27 21:37:46 | 显示全部楼层
回复【12楼】745021926:
---------------------------------
好吧!非常感谢你花了那么多时间帮我
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

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

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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