历史上的今天
返回首页

历史上的今天

今天是:2024年09月01日(星期日)

正在发生

2021年09月01日 | STM32—驱动BT-06蓝牙模块传输数据

2021-09-01

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;

}

推荐阅读

史海拾趣

Concurrent Logic公司的发展小趣事

随着技术的不断进步,Concurrent Logic成功开发出了一款具有革命性的并行计算芯片。这款芯片在市场上引起了巨大的反响,因其出色的并行处理能力和高效的逻辑运算,很快得到了众多电子设备和数据中心的青睐。这一技术的突破不仅为公司带来了可观的收入,更让Concurrent Logic在电子行业中崭露头角。

Cableform Inc公司的发展小趣事

随着技术的不断进步和市场的扩大,Cableform Inc公司意识到必须走出国门,开拓更广阔的市场。1974年,公司在弗吉尼亚州特洛伊成立了北美业务分部,这是公司国际化战略的重要一步。在北美市场,公司面临着激烈的竞争和不同的文化背景,但凭借着优质的产品和服务,Cableform Inc逐渐赢得了客户的信任,市场份额稳步上升。

华宇创公司的发展小趣事

随着市场的不断发展,华宇创意识到单一产品无法满足日益增长的市场需求。于是,公司加大了对研发的投入,积极引进高端人才,与国内外知名科研机构建立合作关系。经过不懈努力,华宇创成功研发出一系列智能电子设备,包括智能手表、智能眼镜、智能家居控制器等。这些新产品的推出不仅丰富了公司的产品线,也进一步提升了华宇创的市场竞争力。

AdaptivEnergy公司的发展小趣事

随着市场的不断发展,华宇创意识到单一产品无法满足日益增长的市场需求。于是,公司加大了对研发的投入,积极引进高端人才,与国内外知名科研机构建立合作关系。经过不懈努力,华宇创成功研发出一系列智能电子设备,包括智能手表、智能眼镜、智能家居控制器等。这些新产品的推出不仅丰富了公司的产品线,也进一步提升了华宇创的市场竞争力。

Allegro公司的发展小趣事

为了进一步扩大市场份额,华宇创开始积极拓展国内外市场。公司参加了多场国际电子展和博览会,与全球各地的客户建立了广泛的联系。同时,华宇创还与国际知名电子企业建立了战略合作关系,共同研发新技术、新产品。这些国际合作不仅为华宇创带来了更多的商业机会,也提升了公司在国际市场的地位和影响力。

上海国芯(Gcore)公司的发展小趣事
根据实际需求设定超速阈值,通过调整电路中的电阻和电容值来实现。

问答坊 | AI 解惑

Verilog 的一本好书The Verilog Golden Reference Guide

Verilog 的一本好书The Verilog Golden Reference Guide…

查看全部问答>

ARM,AVR,FPGA,51等各种下载线的原理图和PCB图

ARM,AVR,FPGA,51等各种下载线的原理图和PCB图 …

查看全部问答>

IPD与项目管理、CMM的关系

集成产品开发流程(IPD),是一套进行产品开发管理的体系和方法,是业界流行的最佳实践,它的起源是美国80年代出现的PACE理论。CMM是软件成熟度模型,主要侧重于项目在研发过程中的管理,由美国SEI提出。项目管理则是一套通用的项目管理的方法,其 ...…

查看全部问答>

【推荐】加拿大Elprotronic Inc 高速USB接口MSP430加密编程器

ZOGLAB(佐格微系统)代理的加拿大Elprotronic Inc MSP430编程器,这是一系列高速USB接口的MSP430编程器,60K标准16进制代码,使用JTAG模式下载仅仅需要3.5秒,通过BSL模式也仅仅需要6.3秒,这是目前TI网站上公布的最快的一款430FXXX系列编程器.它同时支持 ...…

查看全部问答>

vs2005+wince下 BindingSource不能接收SqlCeDataReader?

vs2005 pc下可以这样绑定数据: SqlCommand cmd=new SqlCommand(\"select * from table\", conn); SqlDataReader reader = cmd.ExecuteReader(); BindingSource1.datasource = reader; wince下就会报错:\"system.NotSupportException &nb ...…

查看全部问答>

电子节能灯的十大经验定律

电子节能灯的十大经验定律 能灯电子镇流器的设计是照明行业设计的一大难点。很多厂家生产的产品由于质量不过关,给用户造成“节能不节钱”的现象,严重地影响了节能灯的声誉。这其中很大的部分问题是镇流器的质量不过关,镇流器的质量首先是和电路 ...…

查看全部问答>

USART最小波特率为2400吗

1     2.4     2.399     260.4375     -0.04%     2.3999     1041.687 ...…

查看全部问答>

DDS AD9850 木块资料 购买的木块送的资料。。需要的进来

本帖最后由 paulhyde 于 2014-9-15 09:05 编辑     DDS  AD9850 木块资料  购买的木块送的资料。。需要的顶一下!   含PCB、原理图、串并程序,使用。。。内容丰富(pdf)!!值得下载     …

查看全部问答>

是不是最近试用的电流探头的问题,请教。。。

最近试用了国内一家叫“知用”的高频电流探头,型号为CP8030A。 简单用信号源和一个50欧姆电阻接了个电路,原理图如图一。同轴电缆的长度大约为50cm,将信号源的频率设置为10Mhz,用泰克的电压探头测了AB端的电压,又用“知用”的电流探头测了下A端 ...…

查看全部问答>

C2000 LaunchPad的usb转串口驱动我找不到,求助

C2000 LaunchPad的XDS100已经驱动成功,但usb转串口驱动不起来,找不到驱动,那位坛友提供一下解决之道。…

查看全部问答>