蓝牙通信测试报告

蓝牙模块通讯验收测试脚本:覆盖模块启动初始化、数据收发与链路稳定性,逐条核对丢包与连接质量,附完整测试环境与可复用的验证步骤

2026-07-04
蓝牙通信测试BLE无线传输

蓝牙模块通讯测试脚本

蓝牙模块接好后,不能通电了就以为能用,得有一套看得见的验证脚本。这份就是给蓝牙通讯验收用的:上位机能不能识别模块、收发数据有没有丢包、链路稳不稳定,逐条压过一遍才算数。创建于 2026-04-21。


1. 测试目的

本测试脚本用于验证蓝牙模块的通讯功能,包括:


2. 测试环境

项目 规格
硬件平台 STM32L031
蓝牙模块 ECB02
上位机 安装有蓝牙调试助手的PC
电源电压 3.3V

3. 测试代码

3.1 测试主函数


/**
 * @brief 蓝牙模块通讯测试
 * @retval None
 */
void bluetooth_test(void)
{
  uint8_t test_data[] = "Hello, Bluetooth!";
  uint8_t rx_data[100] = {0};
  uint16_t rx_size = 0;
  
  // 测试蓝牙模块启动
  printf("Testing Bluetooth module startup...\n");
  
  // 等待蓝牙模块初始化
  HAL_Delay(2000);
  
  // 测试数据发送
  printf("Testing data transmission...\n");
  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET);
  HAL_Delay(50);
  HAL_UART_Transmit(&huart2, test_data, sizeof(test_data), 100);
  HAL_Delay(10);
  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET);
  HAL_Delay(10);
  printf("Data sent: %s\n", test_data);
  
  // 测试数据接收
  printf("Testing data reception...\n");
  HAL_UARTEx_ReceiveToIdle_IT(&huart2, rx_data, sizeof(rx_data));
  
  // 等待接收数据
  HAL_Delay(2000);
  
  // 检查是否接收到数据
  if (rx_size > 0)
  {
    printf("Data received: %s\n", rx_data);
  }
  else
  {
    printf("No data received\n");
  }
  
  // 测试通讯稳定性
  printf("Testing communication stability...\n");
  for (uint8_t i = 0; i < 10; i++)
  {
    // 发送测试数据
    sprintf((char*)test_data, "Test message %d", i);
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET);
    HAL_Delay(50);
    HAL_UART_Transmit(&huart2, test_data, strlen((char*)test_data), 100);
    HAL_Delay(10);
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET);
    HAL_Delay(10);
    printf("Sent: %s\n", test_data);
    
    // 等待接收响应
    HAL_Delay(1000);
  }
  
  printf("Bluetooth test completed\n");
}

3.2 测试初始化


/**
 * @brief 测试初始化
 * @retval None
 */
void test_init(void)
{
  // 初始化串口
  MX_USART2_UART_Init();
  
  // 初始化GPIO
  MX_GPIO_Init();
  
  // 初始化Modbus
  Modbus_Init();
  
  // 等待系统稳定
  HAL_Delay(1000);
  
  printf("Test initialization completed\n");
}

3.3 主测试流程


int main(void)
{
  // 系统初始化
  HAL_Init();
  SystemClock_Config();
  
  // 测试初始化
  test_init();
  
  // 执行蓝牙测试
  bluetooth_test();
  
  // 主循环
  while (1)
  {
    // 执行其他任务
    HAL_Delay(1000);
  }
}

4. 测试步骤

  1. 硬件连接:
  1. 软件设置:
  1. 测试执行:
  1. 测试验证:

5. 测试数据记录

测试项目 预期结果 实际结果 状态
蓝牙模块启动 成功
上位机识别 成功
数据发送 成功
数据接收 成功
通讯稳定性 10次无错误

6. 故障排除

6.1 常见问题

问题 可能原因 解决方案
蓝牙模块不启动 电源问题 检查电源电压和连接
上位机无法识别 蓝牙模块未初始化 检查PA15和PB3的控制逻辑
数据传输失败 波特率不匹配 确认串口波特率设置
通讯不稳定 时序问题 调整PA15的控制时序

6.2 调试建议

  1. 使用示波器:
  1. 使用串口调试助手:
  1. 检查电源:

7. 预期结果

通过本测试脚本,预期可以验证:

这套脚本跑完,蓝牙通讯的功能和稳定性就有了客观依据。后续再改驱动、换模块,都能拿这份结果当基线比着看。

还想接着看