标题: stm32与HC-05蓝牙通信问题 [打印本页]

作者: zj1061090465    时间: 2019-12-26 20:06
标题: stm32与HC-05蓝牙通信问题
萌新来求助各位大佬,我买了HC-05蓝牙模块,用的是普中stm32板子,准备用手机APP向蓝牙传输数据来控制stm32,在蓝牙调试的时候,用stm32与电脑通过USBTTL连接,可以进入AT模式,可以正常返回"OK"的,也能把波特率从9600改为115200,进入工作模式,手机用串口APP能够连接蓝牙,并且能互相发送和接收,然后我把蓝牙连接到stm32板子上后,电脑能与stm32通信,手机能接收蓝牙发送的数据,但是手机发送数据给蓝牙,蓝牙没反应,电脑也没显示手机发送的数据,使用的是stm32usart1串口,PA9作为TXD,PA10作为RXDVCCGND都连接在STM32板子上,求解答,已经困扰好几天了,波特率是一致的,线路也没问题

如上图,电脑发送4,stm32能返回4,手机也能接受到4,但手机发送5,电脑却没显示5,当初用USB转TTL是没问题的,电脑能接收手机发送的信息,代码如下

#include "stm32f10x.h"

voidMy_USART1_Init(void)  
{  
   GPIO_InitTypeDef GPIO_InitStrue;
   USART_InitTypeDef USART_InitStrue;
   NVIC_InitTypeDef NVIC_InitStrue;  
     
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//GPIO????
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//??????  
     
   GPIO_InitStrue.GPIO_Mode=GPIO_Mode_AF_PP;  
   GPIO_InitStrue.GPIO_Pin=GPIO_Pin_9;
   GPIO_InitStrue.GPIO_Speed=GPIO_Speed_10MHz;  
   GPIO_Init(GPIOA,&GPIO_InitStrue);
     
   GPIO_InitStrue.GPIO_Mode=GPIO_Mode_IN_FLOATING;  
   GPIO_InitStrue.GPIO_Pin=GPIO_Pin_10;
   GPIO_InitStrue.GPIO_Speed=GPIO_Speed_10MHz;  
   GPIO_Init(GPIOA,&GPIO_InitStrue);
     
   USART_InitStrue.USART_BaudRate=115200;
   USART_InitStrue.USART_HardwareFlowControl=USART_HardwareFlowControl_None;  
   USART_InitStrue.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;  
   USART_InitStrue.USART_Parity=USART_Parity_No;  
   USART_InitStrue.USART_StopBits=USART_StopBits_1;  
   USART_InitStrue.USART_WordLength=USART_WordLength_8b;  
     
   USART_Init(USART1,&USART_InitStrue);
     
   USART_Cmd(USART1,ENABLE);//????1  
     
   USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//??????  
     
   NVIC_InitStrue.NVIC_IRQChannel=USART1_IRQn;  
   NVIC_InitStrue.NVIC_IRQChannelCmd=ENABLE;  
   NVIC_InitStrue.NVIC_IRQChannelPreemptionPriority=1;  
   NVIC_InitStrue.NVIC_IRQChannelSubPriority=1;  
   NVIC_Init(&NVIC_InitStrue);  
     
}  
  
void USART1_IRQHandler(void)  
{  
   u8 res;  
    if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)  
{  
    res= USART_ReceiveData(USART1);     
    USART_SendData(USART1,res);     
}  
}  
   
intmain(void)  
{   
         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  
   My_USART1_Init();  
    while(1);  
      
}

IMG20191226194618.jpg (3.49 MB, 下载次数: 23)

IMG20191226194618.jpg

作者: zj1061090465    时间: 2019-12-27 10:54
好了,已经解决了,我看完原理图发现
作者: 1112y    时间: 2019-12-31 11:42
zj1061090465 发表于 2019-12-27 10:54
好了,已经解决了,我看完原理图发现

楼主你怎么解决的,我也遇到这种问题
作者: 1112y    时间: 2019-12-31 11:43
楼主你怎么解决的 我也遇到这种问题了
作者: zj1061090465    时间: 2020-1-1 18:56
1112y 发表于 2019-12-31 11:43
楼主你怎么解决的 我也遇到这种问题了

我看过stm32开发板原理图发现USART1的RX和TX接错了,你可以去看看原理图
作者: ben0148    时间: 2020-1-5 20:11
我的也是手机蓝牙发送的数据,电脑串口助手收不到,只有电脑发手机蓝牙能收到.
我检查过线没接错啊?求解!!!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1