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, <