BT-06简介

BT06蓝牙模块是专为智能无线数据传输而打造,遵循V3.0 蓝牙规范。本模块支持UART接口,并支持SPP蓝牙串口协议,具有成本低、体积小、功耗低、收发灵敏性高等优点,只需配备少许的外围元件就能实现其强大功能。


BT-06蓝牙模块驱动简单,只需要4根线就可以驱动:


RXD

TXD

GND

VCC

将电源接在5V供电口上,TXD、RXD就是其数据传输的接口,BT-06是以串口的方式驱动的,只需要将蓝牙的TXD、RXD接口对应接在串口的RXD、TXD上,就可以进行数据传输。


数据透传

当BT-06上电,手机APP与蓝牙配对成功后,BT-06即进入数据透传模式。


数据透传:透传是指与传输网络的介质、调制解调方式、传输方式、传输协议无关的一种数据传送方式。数据透传即透明传送,是指在数据的传输过程中,通过无线的方式这组数据不发生任何形式的改变,仿佛传输过程是透明的一样,同时保证传输的质量,原封不动地到了最终接收者手里。


也就是说,连接好蓝牙后,从串口发送出的所有消息都可以原封不动的传输到手机APP中,注意!是原封不动,所以要想驱动BT-06,本质上是驱动串口来传输数据,所以接下来的主要任务就是驱动开发板上的串口进行数据传输。


配置串口

由于我是第一次搞蓝牙,所以比较谨慎,分了几步:


USART1作为向上位机打印调试信息的串口

USART2用来连接蓝牙接口,进行传输数据

USART1初始化函数

void USART1_Init( void )

{

USART_InitTypeDef USART_InitStruct;

GPIO_InitTypeDef GPIO_InitStruct;

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB, ENABLE );

RCC_APB2PeriphClockCmd( RCC_APB2Periph_USART1, ENABLE );/* 开启时钟 USART1在APB2总线 USART2在APB1总线 */

GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;

/* USART1  Tx:PA9 */

GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;//复用输出

GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9;

GPIO_Init(GPIOA, &GPIO_InitStruct);

/* USART1  Rx:PA10 */

GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10;

GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入

GPIO_Init(GPIOA, &GPIO_InitStruct);

/* USART1配置 */

USART_InitStruct.USART_BaudRate = 9600;

USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;

USART_InitStruct.USART_Mode = USART_Mode_Tx|USART_Mode_Rx;

USART_InitStruct.USART_Parity = USART_Parity_No;

USART_InitStruct.USART_StopBits = USART_StopBits_1;

USART_InitStruct.USART_WordLength = USART_WordLength_8b;

USART_Init(USART1, &USART_InitStruct);


/* 使能串口 */

/* 容易忽略 */

USART_Cmd( USART1, ENABLE );

}


USART2初始化函数

void USART2_Init( void )

{

USART_InitTypeDef USART_InitStruct;

GPIO_InitTypeDef GPIO_InitStruct;

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA , ENABLE );

RCC_APB1PeriphClockCmd( RCC_APB1Periph_USART2, ENABLE );

USART_DeInit(USART2);

GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;

/* USART2  Tx:PA2 */

GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2;

GPIO_Init(GPIOA, &GPIO_InitStruct);

/* USART2  Rx:PA3 */

GPIO_InitStruct.GPIO_Pin = GPIO_Pin_3;

GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;

GPIO_Init(GPIOA, &GPIO_InitStruct);

/* USART2串口配置 */

USART_InitStruct.USART_BaudRate = 9600;

USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;

USART_InitStruct.USART_Mode = USART_Mode_Tx|USART_Mode_Rx;//配置为发送和接收模式,实现发送接收数据

USART_InitStruct.USART_Parity = USART_Parity_No;

USART_InitStruct.USART_StopBits = USART_StopBits_1;

USART_InitStruct.USART_WordLength = USART_WordLength_8b;

USART_Init(USART2, &USART_InitStruct);

/* USART2的中断优先级配置 */

USART2_NVIC_Config();

/* 打开USART_IT_RXNE标志中断,即接收数据寄存器不为空中断,收到数据就进入中断 */

USART_ITConfig( USART2,  USART_IT_RXNE, ENABLE );

/* 使能串口 */

USART_Cmd( USART2, ENABLE );

}


USART2的NVIC配置

/* USART2 的中断优先级配置,需要在中断中处理数据的接收 */

void USART2_NVIC_Config( void )

{

NVIC_InitTypeDef  NVIC_InitStruct;

NVIC_PriorityGroupConfig( NVIC_PriorityGroup_2 );

NVIC_InitStruct.NVIC_IRQChannel = USART2_IRQn;

NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;

NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0;

NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1;

NVIC_Init( &NVIC_InitStruct );

}


USART1串口重映射

/* USART1 的重映射 */

/* 1.勾选MicroLIB

   2.添加头文件:stdio.h

*/

int fputc( int ch, FILE *f )

{

USART_SendData( USART1, ( uint8_t ) ch );

/* 等待发送完成 */

while(  USART_GetFlagStatus( USART1, USART_FLAG_TXE) == RESET )

;

return ch;

}

关键字:STM32  蓝牙模块  传输数据 引用地址:STM32—驱动BT-06蓝牙模块传输数据

上一篇:玩转STM32CubeMX | 跑马灯
下一篇:STM32—驱动DHT11数字温湿度传感器

推荐阅读

Strategy Analytics智能音箱研究服务团队于2018年7月/ 8月对1000名德国智能音箱用户进行问卷调查。该调研报告指出, Amazon Echo和Google Home等智能音箱,正迅速成为许多德国人家中必不可少的设备。7%的德国居民声称他们现在正在使用智能音箱,其中43%的用户认为 “无法想象没有智能音箱的生活”; 61%的受访者表示智能音箱“极大地改善了我在...
东风日产轩逸最新款车型近日已经上市,并搭载了全新的第三代HR16智能发动机,而作为一款上市不久就接到将近30000台订单的车型,发动机的好坏直接决定了整车的使用情况和用户认知程度。所以,近日我们就受邀来到了位于广州市花都区的东风日产发动机生产基地,参加了东风日产“智·造幸福”全新第三代HR16智能发动机技术解析活动。通过参观发动机拆解并与技...
此次收购将领先的人眼安全光子学技术与Allegro广泛的产品线结合在一起,能够进一步优化半自动和自动驾驶汽车中快速增长的ADAS应用美国新罕布什尔州曼彻斯特 - 传感技术和功率半导体解决方案的全球领导厂商Allegro MicroSystems(以下简称Allegro)今天宣布收购Voxtel, Inc.(以下简称Voxtel),Voxtel是一家专业从事先进光子学技术和3D成像,以及远距离...
车展的焦点永远都是新车,这点毋庸置疑。不过,除了新车之外,最受关注的肯定是新技术,特别是电动车的发展,汽车已经逐渐成为技术发展的一个重要载体,见证着一个又一个新技术的诞生。而本届成都车展也有很多的新科技亮相,不妨跟随小编的步伐去看一看。  名称:“六重融合式”感知体系  展台:荣威R汽车展台  亮点:R汽车ES33搭载的“六重融合式”...

史海拾趣

问答坊 | AI 解惑

TT50短信透明收发模块

TT50短信透明收发模块特点    ●无需用户掌握GSM和SMS方面的知识,无需复杂编程,无需编码转换,通过串口透明收发中英文手机短信。      短时间内开发出稳定、可靠的基于GSM手机短信通讯的设备。 ...…

查看全部问答∨

第四届(1999年)全国大学生电子设计竞赛题目

本帖最后由 paulhyde 于 2014-9-15 09:00 编辑 …

查看全部问答∨

线材在设备中使用简介

针对动力线(三相)、讯号线、IO线、特殊电源线简介 共通点: 线材本身就是阻抗体,为何电线会发烫发热?为何会有压降?为何会耗电? 都是电阻造成的。此阻抗来自何处? 1、 自身材料(金、银、铜、铝、锡) 传输系数(导电率)—金最佳、最贵 ...…

查看全部问答∨

有些关于LM358的中文资料

本帖最后由 paulhyde 于 2014-9-15 04:17 编辑 关于LM358的资料 Lm358内部包括两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,再推荐工作条件下,电源电流与电源电压无关,它的 ...…

查看全部问答∨

用fpga实现uart

最近翻书,发现有一个用FPGA实现uart通信的实例。于是乎就在自己的实验板上试验起来。但是有一个尚未解决:我的时钟是50mhz的,无法将153600hz整除。但是我还在不断费劲中。其它也照抄了一份,请需要的和初学者批评。我遇到的问题,请高手不吝赐教 ...…

查看全部问答∨

GPS导航电子地图如何更新升级

导航电子地图众所周知为GPS导航的核心和根本,导航地图更新和升级乃是导航地图生命线,甚至是GPS导航产品存活的标准。我国GPS导航市场经过几年的发展,现在关于导航地图的升级问题越来越来严重,成为导航电子地图商的一大难题。    &nbs ...…

查看全部问答∨

vc2005开发的智能设备ocx如何能在pc下vc2005智能设备下测试?

vc2005开发的智能设备ocx如何能在pc下vc2005智能设备下测试? …

查看全部问答∨

关于LQFP144的STM32,可以画成2层板吗?

关于LQFP144的STM32,可以画成2层板吗? 1。我参考一些开发板,大都是4层的,当然它板子尺寸比较小,而且采用0603封装。 我问做产品的,也是4层,抗干扰。 2。但是我的板子由于接插件较多,所以板子尺寸为200*250mm, 电路也不是很复杂,所 ...…

查看全部问答∨

告诉大家一个良好习惯

5分钟点击一次保存,每次工作项目文件夹做两次备份!不管是软件设计还是硬件设计,还是神马的,反正打开软件了就得养成良好习惯5分钟点一次保存,最好一闲下来手痒就点保存,保存,另存,存~~~~~~~~~~~~~~~~~~…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved