STM32——蓝牙模块HC06
选用的芯片是STM32F407的芯片,一个HC06的蓝牙模块。
我们采用串口连接,所以我们在芯片原理图找出串口模块。
参数
STM32串口异步通信定义的参数传送格式
起始位
数据位(8位或者9位)
奇偶校验位(第9位)
停止位(1,1.5,2位)
波特率设置
波特率:串行通信的传送速率:在串行通信中,数据是按位进行传送的,因此传送速率用每秒钟传送格式位的数目来表示,称之为波特率(band rate)。每秒传送一个格式位就是1波特。9600bps:每秒传输9600位数据 传输1200个字节 有效960字节
TXD:发送数据 Transmit(tx) Data 简写形式 (另外写法:T TX TD)
RXD:接受数据 Receive(rx) Data 简写形式 (另外写法:R RX RD)
然后找出引脚。
PA2——TX
PA3——RX
然后蓝牙的VCC——5V(开发板)
RX——TX
TX——RX
GND——GND
接上即刻
代码
配置引脚
//蓝牙模块的初始化
void HC06_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
USART_InitTypeDef USART_InitStruct;
NVIC_InitTypeDef NVIC_InitStruct;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_USART2); //引脚进行映射
GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_USART2);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStruct.GPIO_Speed = GPIO_Fast_Speed;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_Init(GPIOA, &GPIO_InitStruct); //初始化引脚A2,A3为复用功能
USART_InitStruct.USART_Mode = USART_Mode_Rx|USART_Mode_Tx;
USART_InitStruct.USART_BaudRate = 9600; //蓝牙模块的波特率一般为9600
USART_InitStruct.USART_Parity = USART_Parity_No;
USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStruct.USART_StopBits = USART_StopBits_1;
USART_InitStruct.USART_WordLength = USART_WordLength_8b;
USART_Init(USART2, &USART_InitStruct); //初始化串口2的接收端和发送端
NVIC_InitStruct.NVIC_IRQChannel = USART2_IRQn;
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0x00;
NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0x00;
NVIC_Init(&NVIC_InitStruct); //初始化中断向量表
USART_ITConfig(USART2, USART_IT_RXNE, ENABLE); //开启接收端的中断
USART_Cmd(USART2, ENABLE); //开启串口工作
}