STM32——蓝牙模块HC06

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);                                 //开启串口工作
}

猜你喜欢

转载自blog.csdn.net/weixin_46026429/article/details/108716444