理论
模块功能
将复杂的蓝牙协议简化为串口透传
即以HC-05作为串口与主机之间通信的桥梁,实现串口与主机的通信
本质上就是无线的串口通信
接线
HC-05 | STM32 |
---|---|
TX | RX |
RX | TX |
GND | GND |
VCC | 5V |
应用
CubeMX配置
轮询模式发送
此模式可以串口重映射为printf
DMA模式发送
此模式串口重映射为printf异常
Keil5代码
这里通过串口重定向的方式,实现HC-05发送数据到PC端
因为串口可以重定向为printf来打印数据,而HC-05本质上为无线的串口通信,原理一样,所以HC-05蓝牙通信也能重定向为printf
注意:USART需要配置为轮询模式
勾选 “Use MicroLIB”
添加头文件
重写fputc()函数
int fputc(int ch,FILE *f)
{
uint8_t temp[1] = {ch};
//采用轮询方式发送1字节数据
HAL_UART_Transmit(&huart3,temp,1,2);
return ch;
}
最后,你就能调用 printf() 完成HC-05的数据发送了!!!
常见问题
接收到的数据为乱码
- 检查硬件接线,尤其是GND地线
- 传输协议参数配置需一致,尤其波特率
- 注意是否勾选 “Use MicroLIB”