基于串口透传模块,单片机无线串口空中下载测试
✨无线串口下载,其本质还是串口下载方式,只不过省去了单片机和ISP上位机工具之间的物理有线连接,中间的数据通过无线串口透传模块进行数据中转,传递到单片机串口上。串口透传模块起到数据中继作用。
-
🎬STM32通过
STM32CubeProgrammer
软件串口空中下载演示:(和有线串口下载操作相同,单片机需要提前进入ISP模式)
-
🌿想通过串口下载前提是,单片机支持串口下载。这是必要条件,否则只能当作无线空中串口调试模块来使用。
-
🔧2.4GHz串口透传模块:GC2400-TC017 为例
-
🌿通过AT模式配置模块串口通讯模式
- 🎞串口透传模块配置演示:
🛠串口透传模块实现串口下载参数设置
所有设定参数都要和串口透传模块设定的参数一致。
- 🌿串口波特率
- 不能超出串口透传模块传输设定的波特率范围。
- 🌿数据位
- 一般设定是8个数据位。
- 🌿校验位
- 🔖针对于STM32单片机在使用
STM32CubeProgrammer
串口下载时,必须设置校验位:even(偶校验)或者odd(奇校验),否则无法通讯连接上。
- 🌿停止位
- 该位一般设定为1个停止位。
- 设定好透传模块串口参数后,通过串口透传模块,使用
STM32CubeProgrammer
,成功连接STM32单片机。
⛳针对STC下载失败说明
- 🏳🌈STC-ISP上位机软件在下载程序时,需要调节对应的下载频率,STC单片机下载时,下载频率设置在4800或以下容易成功,而串口透传模块在透传模式下,串口参数是固定的,串口透传模块最低可设置的波特率9600,没法设置更低波特率,测试没有成功。
- 🔰STC单片机下载时,无线串口透传模块串口参数必须配置为奇或偶校验位,如果设置无校验位,第一次握手通讯都连接不上。
- 🌿在测试STC单片机空中下载方式时,只能做到检测目标单片机,会移植卡在调节频率阶段或重新握手阶段。
- 🌿使用提前烧录好的串口自动下载检测程序也测试失败。
u8 uart_ser_n;//计数变量
void uart1_ser() interrupt 4
{
RI=0; //清空接收标志位
if(SBUF==0x7f) //STC下载指令0X7F
{
uart_ser_n++; //判断位自加
if(uart_ser_n >5) //如果收到10次0X7F
{
uart_ser_n=0; //判断位清0
IAP_CONTR=0x60;//复位命令
}
}
else
{
uart_ser_n=0; //若不匹配,则需要从头开始
}
}
- 📺操作演示:
总之对于通过串口透传模块只能实现提前固定串口参数协议的通讯。至于控制传输误码率问题应该和通讯空间距离有关系,尽量缩短空间距离和障碍物。