蓝牙HC05程序在串口接收死循环

2019-07-21 07:04发布

用的串口一,波特率9600        while(retry--&&retry>0)
        {
                HC05_KEY=1;                                        //KEYÖøß,½øèëATÄ£ê½
                HAL_Delay(10);
                u1_printf("AT ");                //·¢ËíAT2aêÔÖ¸áî
                HC05_KEY=0;                                        //KEYà-μí,íË3öATÄ£ê½
                for(t=0;t<10;t++)                         //×&#238;3¤μè′y50ms,à′&#189;óê&#213;HC05&#196;£&#191;éμ&#196;&#187;&#216;ó|
                {
                        if(USART1_RX_STA&0X8000)break;
                        HAL_Delay(5);
                }               
                if(USART1_RX_STA&0X8000)        //&#189;óê&#213;μ&#189;ò&#187;′&#206;êy&#190;Yá&#203;
                {
                        temp=USART1_RX_STA&0X7FFF;        //μ&#195;μ&#189;êy&#190;Y3¤&#182;è
                        USART1_RX_STA=0;                         
                        if(temp==4&&USART1_RX_BUF[0]=='O'&&USART1_RX_BUF[1]=='K')
                        {
                                temp=0;//&#189;óê&#213;μ&#189;OK&#207;ìó|
                                break;
                        }
                }                                           
        }       

发送AT指令后,蓝牙模块的灯是快闪,程序是跑死在
void HAL_UART_IRQHandler(UART_HandleTypeDef *huart)
这个函数里了,调试模式里看,一直在这里循环。
但有的时候就成功了,但是retry循环结束为0.
读主从也能读出是主机。

还有一块板子上,模块只会1s闪1s不闪,把key拉低后不是应该进入可配对状态么

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
MonkeyD路飞
1楼-- · 2019-07-21 12:40
 精彩回答 2  元偷偷看……
MonkeyD路飞
2楼-- · 2019-07-21 16:54
if((errorflags != RESET) && (((cr3its & USART_CR3_EIE) != RESET) || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET)))
一直进这个函数
MonkeyD路飞
3楼-- · 2019-07-21 17:42
第一个进串口中断死循环,貌似长时间断电后可以解决,第二个板子的蓝牙模块应该是2s闪一次,相当于我把它重置了么
正点原子
4楼-- · 2019-07-21 20:32
我们不是有例程么?
MonkeyD路飞
5楼-- · 2019-07-22 02:22
正点原子 发表于 2018-12-7 01:47
我们不是有例程么?

就是照着例程来的,但是板子是自己画的,用的cubemx生成的工程

一周热门 更多>