首页 > 编程知识 正文

hcsr04引脚连接stm32

时间:2023-05-03 17:19:47 阅读:284780 作者:786

一.什么是蓝牙透传?

     透传是最简单也是最常见的通讯方式(如下图所示),透传也叫串口透传,就是透明传输的意思,透传是一种工作方式,不是一种功能,一般出现在串口模式中,蓝牙透传的存在是为了让用户更好的开发蓝牙无线产品,不需要关心蓝牙协议栈是如何实现。串口模块具体的工作机制就是不对MCU要传输的数据做任何处理,也不需要自己增加什么协议。

 特点:

(1).这个过程数据不用处理;

(2).不会丢失数据;

(3).双向传输;

(4).透传的数据包没有协议封装,自己可以控制数据包的大小;

(5).无需了解复杂的蓝牙底层协议,只要简单几步设置就可以实现蓝牙透传。

二.HC-05蓝牙模块

                                                                             

 特点:

(1)输入电压:3.6--6v,禁止超过7v

(2)波特率为1200,2400,4800,9600,19200,38400,57600,115200 用户可以自己设置。

(3)工作范围:最大10米。

(4)工作原理

           HC-05通过TX和RX引脚,支持使用标准AT命令。为此,用户必须使用在设备启动时进入特殊命令模式,这时通过在打开模块时将钥匙销拉低来完成。否则,设备将启动进入数据模式,这样它就可以与其它设备进行无线通信,

          模块启动后,任何蓝牙设备(例如智能手机)都应该可以发现他。然后,可以使用标准密码(1234)连接到设备。建立连接后,数据通过HC-05传输并转换为串行流。然后由模块连接的微控制器读取该串行流。

   三.HC-05蓝牙模块透传模式的调试

(1).连接USB转TTL模式(注意TX连接RX,RX连接TX)

( 2).进入AT指令模式

进入命令相应模式,先长按HC05上的按键(按键如图所示),再上电(此时指示灯慢闪,大约1秒一次)即成功进入AT指令命令响应模式。这时打开串口助手,可以进行AT指令交互,设置相应参数

1.通讯波特率、校验位、停止位。

2.工作模式(主、从、回环)

3.连接密码、名字

 

               AT指令集。链接:https://pan.baidu.com/s/19Py4Y_qCsRM-k9sdDX4exA 
        提取码:yyds 
(3)stm32f103蓝牙 手机数据收发

1.连线

   HC05与stm32f103单片机的连线与串口通信相似,

VCC-VCC,

GND-GND,

TX-RX,

RX-TX.

2.程序烧入

部分代码:

usart.c

#include "sys.h"#include "usart.h" // //如果使用ucos,则包括下面的头文件即可.#if SYSTEM_SUPPORT_OS#include "includes.h"//ucos 使用 #endif// ////加入以下代码,支持printf函数,而不需要选择use MicroLIB #if 1#pragma import(__use_no_semihosting) //标准库需要的支持函数 struct __FILE { int handle; }; FILE __stdout; //定义_sys_exit()以避免使用半主机模式 _sys_exit(int x) { x = x; } //重定义fputc函数 int fputc(int ch, FILE *f){ while((USART1->SR&0X40)==0);//循环发送,直到发送完毕 USART1->DR = (u8) ch; return ch;}#endif #if EN_USART1_RX //如果使能了接收//串口1中断服务程序//注意,读取USARTx->SR能避免莫名其妙的错误 u8 USART_RX_BUF[USART_REC_LEN]; //接收缓冲,最大USART_REC_LEN个字节.//接收状态//bit15,接收完成标志//bit14,接收到0x0d//bit13~0,接收到的有效字节数目u16 USART_RX_STA=0; //接收状态标记 void uart_init(u32 bound){ //GPIO端口设置 GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);//使能USART1,GPIOA时钟 //USART1_TX GPIOA.9 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//复用推挽输出 GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9 //USART1_RX GPIOA.10初始化 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入 GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10 //Usart1 NVIC 配置 NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;//子优先级3NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//IRQ通道使能NVIC_Init(&NVIC_InitStructure);//根据指定的参数初始化VIC寄存器 //USART 初始化设置USART_InitStructure.USART_BaudRate = bound;//串口波特率USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//收发模式 USART_Init(USART1, &USART_InitStructure); //初始化串口1 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启串口接受中断 USART_Cmd(USART1, ENABLE); //使能串口1 }#endif

main.c

#include "delay.h"#include "sys.h"#include "usart.h"void USART1_IRQHandler(void){u8 res;if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET){USART_ClearITPendingBit(USART1,USART_IT_RXNE);res=USART_ReceiveData(USART1);USART_SendData(USART1,res);}} int main(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); uart_init(9600); USART1_IRQHandler(); while(1);}

完整程序链接:https://pan.baidu.com/s/1PHbPJKh6q9iwJmWobQ_gkg 
提取码:yyds 
3.手机端应用市场下载 Bluetooth Serial即可开发调试

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。