当前位置: 首页 > news >正文

嵌入式硬件篇---无线通信模块


文章目录

  • 前言
  • 一、四种无线串口模块深度对比
  • 二、模块优缺点分析
    • 1. 蓝牙模块(HC-05)
      • 优点
      • 缺点
    • 2. WiFi模块(ESP8266)
      • 优点
      • 缺点
    • 3. 2.4G射频(NRF24L01)
      • 优点
      • 缺点
    • 4. LoRa模块(SX1278)
      • 优点
      • 缺点
  • 三、STM32F103RCT6实例代码
    • 1. 蓝牙模块(HC-05)控制LED
    • 2. WiFi模块(ESP8266)TCP通信
    • 3. NRF24L01多点通信
    • 4. LoRa模块远程传输
    • 实时性要求高
    • 手机直连需求
    • 互联网接入
    • 超远距离
    • 低功耗场景
  • 五、调试技巧
    • 逻辑分析仪抓包:
    • AT命令调试(WiFi/蓝牙)


前言

本文简单介绍了四种无线通信模块(蓝牙、WiFi、2.4G射频、LoRa)的特点以及四者区别以及STM32F103RCT6的实例代码。


一、四种无线串口模块深度对比

特性 蓝牙模块 (HC-05) WiFi模块 (ESP8266) 2.4G射频 (NRF24L01) LoRa模块 (SX1278)
通信距离 10-100m 50-300m 50-1000m(加PA) 1-10km
工作频段 2.4GHz ISM 2.4GHz 2.4GHz 433/868/915MHz
数据传输速率 1-3Mbps 11-54Mbps 1-2Mbps 0.3-50kbps
功耗 中(~30mA活跃) 高(~70mA活跃) 低(~12mA发送) 极低(~10mA发送)
网络拓扑 点对点或星型 支持TCP/IP 多点通信(6通道) 星型或Mesh
配对/连接方式 蓝牙配对 WiFi热点/STA模式 自动组网 无需配对
典型应用场景 手机外设、短距离控制 物联网、远程监控 无线键鼠、传感器网络 远程监测、农业物联网

二、模块优缺点分析

1. 蓝牙模块(HC-05)

优点

  1. 手机兼容性好
  2. 低功耗模式(BLE)
  3. 即插即用

缺点

  1. 传输距离短
  2. 主从设备限制

2. WiFi模块(ESP8266)

优点

可直接接入互联网
高数据传输率
支持Web服务

缺点

高功耗
需要路由器支持

3. 2.4G射频(NRF24L01)

优点

  1. 超低延迟(<2ms)
  2. 硬件级ACK确认
  3. 6通道并行通信

缺点

  1. 需要复杂协议栈
  2. 易受同频干扰

4. LoRa模块(SX1278)

优点

  1. 超远距离通信
  2. 超强穿透能力
  3. 极低功耗

缺点

  1. 传输速率极低
  2. 模块尺寸较大

三、STM32F103RCT6实例代码

1. 蓝牙模块(HC-05)控制LED

// CubeMX配置USART1(PA9-TX, PA10-RX)
void BT_SendCmd(const char* cmd) {HAL_UART_Transmit(&huart1, (uint8_t*)cmd, strlen(cmd), 100);
}void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {if(rx_data == '1') HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET); // LED ONelse if(rx_data == '0') HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET); // LED OFFHAL_UART_Receive_IT(&huart1, &rx_data, 1); // 重新启用中断
}

2. WiFi模块(ESP8266)TCP通信

// 配置USART2(PA2-TX, PA3-RX)
void ESP_SendAT(const char* cmd) {HAL_UART_Transmit(&huart2, (uint8_t*)cmd, strlen(cmd), 100);HAL_UART_Transmit(&huart2, (uint8_t*)"\r\n", 2, 100);
}void Connect_WiFi(void) {ESP_SendAT("AT+CWMODE=1");  // STA模式ESP_SendAT("AT+CWJAP=\"SSID\",\"PASSWORD\""); // 连接WiFiESP_SendAT("AT+CIPSTART=\"TCP\",\"192.168.1.100\",8080"); // 连接服务器
}

3. NRF24L01多点通信

// 硬件SPI1(PA4-CS, PA5-SCK, PA6-MISO, PA7-MOSI)
void NRF24_Send(uint8_t* data) {HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET); // CS低uint8_t cmd = 0xA0; // 写TX payload命令HAL_SPI_TransmitReceive(&hspi1, &cmd, NULL, 1, 100);HAL_SPI_Transmit(&hspi1, data, 32, 100); // 发送32字节HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET); // CS高HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET); // CE高触发发送
}

4. LoRa模块远程传输

// 使用USART3(PB10-TX, PB11-RX)
void LoRa_SendPacket(uint8_t* data, uint8_t len) {uint8_t header[2] = {0x80, len}; // 自定义帧头HAL_UART_Transmit(&huart3, header, 2, 100);HAL_UART_Transmit(&huart3, data, len, 100);// 计算并发送校验uint8_t crc = 0;for(uint8_t i=0; i<len; i++) crc ^= data[i];HAL_UART_Transmit(&huart3, &crc, 1, 100);
}
# 四

、关键区别与选型建议

实时性要求高

实时性要求高:选择NRF24L01(硬件ACK,<2ms延迟)

手机直连需求

手机直连需求:选择HC-05蓝牙

互联网接入

互联网接入:必须使用ESP8266 WiFi

超远距离

超远距离:唯一选择LoRa

低功耗场景

低功耗场景:优先LoRa或BLE蓝牙

五、调试技巧

逻辑分析仪抓包:

  1. 检查SPI时序(NRF24L01)
  2. 验证UART数据帧(蓝牙/WiFi)

AT命令调试(WiFi/蓝牙)

// 在串口助手发送AT命令测试
ESP_SendAT("AT+GMR"); // 获取ESP8266版本
BT_SendCmd("AT+NAME?"); // 查询蓝牙名称
LoRa距离测试:
// 逐步增加距离测试RSSI
uint8_t rssi = 0;
LoRa_SendCmd(0x1C, &rssi, 1); // 读取RSSI值

通过上述代码和对比分析,开发者可以针对不同应用场景选择合适的无线方案。所有示例代码均基于STM32标准外设库实现,需根据实际硬件连接调整引脚配置。


相关文章:

  • 游戏引擎学习第272天:显式移动转换
  • 【软件工程】基于机器学习的多缺陷定位
  • 【Linux系列】bash_profile 与 zshrc 的编辑与加载
  • 一周内学完计算机网络课程之二:计算机网络物理层的理解
  • Linux电源管理(9)_wakelocks
  • 【计算机视觉】OpenCV实战项目 :Image_Cartooning_Web_App:基于深度学习的图像卡通化
  • 【Linux 系统调试】系统级追踪与性能分析利器----LTTng
  • Java反序列化漏洞
  • python:trimesh 用于 STL 文件解析和 3D 操作
  • 《用MATLAB玩转游戏开发》Flappy Bird:小鸟飞行大战MATLAB趣味实现
  • 【Leetcode 每日一题】1550. 存在连续三个奇数的数组
  • android-ndk开发(12): 获取ndk内置clang的版本详情
  • spark-Schema 定义字段强类型和弱类型
  • TCP/IP 模型每层的封装格式
  • leetcode 15. 三数之和
  • 【25软考网工】第六章(3)数字签名和数字证书
  • 在C++中,符号位是否参与位运算
  • 使用vue3-seamless-scroll实现列表自动滚动播放
  • 【通讯录教程】如何将号码快速导入手机通讯录,支持苹果和安卓手机,一次性导入大量号码进入手机通讯录,基于WPF的解决方案
  • 实战项目5(08)
  • 美国和沙特签署上千亿美元军售协议
  • 讲一个香港儿童的故事,《劏房的天空》获“周庄杯”特等奖
  • 王毅集体会见加勒比建交国外长及代表
  • 飙升至熔断,巴基斯坦股市两大股指收盘涨逾9%
  • 火车站员工迟到,致出站门未及时开启乘客被困?铁路部门致歉
  • 《淮水竹亭》:一手好牌,为何打成这样