找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2815|回复: 5
打印 上一主题 下一主题
收起左侧

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, 下载次数: 15)

IMG20191226194618.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:658173 发表于 2019-12-27 10:54 来自手机 | 只看该作者
好了,已经解决了,我看完原理图发现
回复

使用道具 举报

板凳
ID:381937 发表于 2019-12-31 11:42 | 只看该作者
zj1061090465 发表于 2019-12-27 10:54
好了,已经解决了,我看完原理图发现

楼主你怎么解决的,我也遇到这种问题
回复

使用道具 举报

地板
ID:381937 发表于 2019-12-31 11:43 | 只看该作者
楼主你怎么解决的 我也遇到这种问题了
回复

使用道具 举报

5#
ID:658173 发表于 2020-1-1 18:56 | 只看该作者
1112y 发表于 2019-12-31 11:43
楼主你怎么解决的 我也遇到这种问题了

我看过stm32开发板原理图发现USART1的RX和TX接错了,你可以去看看原理图
回复

使用道具 举报

6#
ID:544005 发表于 2020-1-5 20:11 | 只看该作者
我的也是手机蓝牙发送的数据,电脑串口助手收不到,只有电脑发手机蓝牙能收到.
我检查过线没接错啊?求解!!!
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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