金牌会员
 
- 积分
- 1299
- 金钱
- 1299
- 注册时间
- 2016-4-21
- 在线时间
- 262 小时
|
50金钱
用的串口一,波特率9600 while(retry--&&retry>0)
{
HC05_KEY=1; //KEYÖøß,½øèëATÄ£ê½
HAL_Delay(10);
u1_printf("AT\r\n"); //·¢ËíAT2aêÔÖ¸áî
HC05_KEY=0; //KEYà-μí,íË3öATÄ£ê½
for(t=0;t<10;t++) //×î3¤μè′y50ms,à′½óêÕHC05Ä£¿éμÄ»Øó|
{
if(USART1_RX_STA&0X8000)break;
HAL_Delay(5);
}
if(USART1_RX_STA&0X8000) //½óêÕμ½ò»′Îêy¾YáË
{
temp=USART1_RX_STA&0X7FFF; //μÃμ½êy¾Y3¤¶è
USART1_RX_STA=0;
if(temp==4&&USART1_RX_BUF[0]=='O'&&USART1_RX_BUF[1]=='K')
{
temp=0;//½óêÕμ½OKÏìó|
break;
}
}
}
发送AT指令后,蓝牙模块的灯是快闪,程序是跑死在
void HAL_UART_IRQHandler(UART_HandleTypeDef *huart)
这个函数里了,调试模式里看,一直在这里循环。
但有的时候就成功了,但是retry循环结束为0.
读主从也能读出是主机。
还有一块板子上,模块只会1s闪1s不闪,把key拉低后不是应该进入可配对状态么
|
最佳答案
查看完整内容[请看2#楼]
第一个是我先进了调试,相当于给key拉高然后才上的电,模块就恢复默认了,调成38400后波特率可行,然后是串口中断开定时器调用 HAL_TIM_Base_Start_IT(&htim3);就可以开启了,原来使用的话__HAL_TIM_ENABLE并没有开始定时器的中断,cube配置完中断都是要自己使能的
|