STM32
直播中

李永每

7年用户 1391经验值
私信 关注
[问答]

请问一下STM32F407芯片与HC06蓝牙模块是怎样进行连接的

请问一下STM32F407芯片与HC06蓝牙模块是怎样进行连接的?

回帖(1)

丁峙昌

2021-11-17 11:59:49
  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); //开启串口工作
  }
举报

更多回帖

发帖
×
20
完善资料,
赚取积分