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;
}
上一篇:玩转STM32CubeMX | 跑马灯
下一篇:STM32—驱动DHT11数字温湿度传感器
推荐阅读
史海拾趣
随着全球环保意识的不断提高,Coleman Cable积极响应绿色发展的号召,将环保理念融入公司的生产和经营中。公司研发出环保型电缆产品,采用环保材料和工艺,减少生产过程中的环境污染。同时,公司还加强废弃电缆的回收和处理工作,推动资源的循环利用,为行业的绿色发展做出了贡献。
ECI公司深知人才是企业发展的关键因素。因此,公司高度重视人才的引进、培养和激励。公司建立了完善的人才选拔机制,选拔具有潜力和才华的员工进行重点培养。同时,公司还提供了丰富的培训和发展机会,帮助员工提升自身素质和能力。此外,ECI还建立了科学合理的薪酬制度和激励机制,让员工在为公司创造价值的同时也能获得相应的回报。这种对人才的重视和投入让ECI公司汇聚了一批优秀的员工队伍,为公司的发展提供了有力的保障。
在20世纪初,BELDEN公司在技术创新方面取得了显著突破。公司不仅将塑料绝缘材料应用于电线和电缆制造,还着眼于精密和高质量产品的需求,致力于高附加值的绝缘材料、电缆、防护和护套材料的生产。这些技术创新使得BELDEN的产品在性能和质量上都有了显著提升,进一步巩固了公司在市场中的地位。同时,公司还不断扩大产品线,增加了橡胶绝缘材料等多种新产品,满足了不同客户的需求。
Epitex一直将品质管理作为公司的核心竞争力之一。他们建立了严格的质量管理体系,从原材料采购到生产过程的每一个环节都进行严格的控制。同时,Epitex还不断引进先进的生产设备和检测技术,确保产品的稳定性和可靠性。
此外,Epitex还非常重视员工的培训和素质提升。他们定期组织员工进行技能培训和质量意识教育,提高员工的专业素养和工作质量。这种持续改进的精神使得Epitex的产品质量得到了客户的高度认可。
2010年,平板电脑市场的崛起为全志科技带来了巨大的发展机遇。全志迅速调整产品策略,推出了AP处理器A系列,成功抓住了这一市场风口。其芯片产品在平板电脑领域的应用,不仅提升了公司的市场份额,也为公司的未来发展奠定了坚实的基础。
TT50短信透明收发模块特点 ●无需用户掌握GSM和SMS方面的知识,无需复杂编程,无需编码转换,通过串口透明收发中英文手机短信。 短时间内开发出稳定、可靠的基于GSM手机短信通讯的设备。 ...… 查看全部问答∨ |
|
针对动力线(三相)、讯号线、IO线、特殊电源线简介 共通点: 线材本身就是阻抗体,为何电线会发烫发热?为何会有压降?为何会耗电? 都是电阻造成的。此阻抗来自何处? 1、 自身材料(金、银、铜、铝、锡) 传输系数(导电率)—金最佳、最贵 ...… 查看全部问答∨ |
本帖最后由 paulhyde 于 2014-9-15 04:17 编辑 关于LM358的资料 Lm358内部包括两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,再推荐工作条件下,电源电流与电源电压无关,它的 ...… 查看全部问答∨ |
最近翻书,发现有一个用FPGA实现uart通信的实例。于是乎就在自己的实验板上试验起来。但是有一个尚未解决:我的时钟是50mhz的,无法将153600hz整除。但是我还在不断费劲中。其它也照抄了一份,请需要的和初学者批评。我遇到的问题,请高手不吝赐教 ...… 查看全部问答∨ |
导航电子地图众所周知为GPS导航的核心和根本,导航地图更新和升级乃是导航地图生命线,甚至是GPS导航产品存活的标准。我国GPS导航市场经过几年的发展,现在关于导航地图的升级问题越来越来严重,成为导航电子地图商的一大难题。 &nbs ...… 查看全部问答∨ |
关于LQFP144的STM32,可以画成2层板吗? 1。我参考一些开发板,大都是4层的,当然它板子尺寸比较小,而且采用0603封装。 我问做产品的,也是4层,抗干扰。 2。但是我的板子由于接插件较多,所以板子尺寸为200*250mm, 电路也不是很复杂,所 ...… 查看全部问答∨ |
5分钟点击一次保存,每次工作项目文件夹做两次备份!不管是软件设计还是硬件设计,还是神马的,反正打开软件了就得养成良好习惯5分钟点一次保存,最好一闲下来手痒就点保存,保存,另存,存~~~~~~~~~~~~~~~~~~… 查看全部问答∨ |