银尔达air724(合宙模组)模块dtu固件的测试,参考资料:DTU固件资料/银尔达-DTU固件串口配置应用实例手册+v1.0.pdf、银尔达-DTU固件串口配置命令手册+v2.0.pdf、银尔达-DTU硬件通用连接和工具使用方法手册(必看)+v1.0.pdf等文档。
单片机mcu使用国产GD32F450,使用串口5,电路中的引脚为发送脚PC6,接收脚PC7。
操作系统使用实时操作系统rt-thread。
工程按照文章《从零使用env工具生成 gd32f450工程,手把手添加spi flash外设和dfs虚拟文件系统》进行创建即可。
在基本工程中添加串口5,使用env工具,进行配置,配置如下:
重新生成工程,打开工程后编译。串口的使用参考文章《RT-Thread开发GD32F450 添加串口外设,以及一种串口接收数据处理的方法》。修改接收判断函数,仅判断了数据配置返回,透传数据判断未作处理,实际使用需根据实际进行修改,如下:
static void serial_thread_entry(void *parameter)
{
while (1)
{
rt_sem_take(&rx_semRx, RT_WAITING_FOREVER);
if( (2 < bufTempNum) && ('\r' == bufTemp[bufTempNum-2]) && ('\n' == bufTemp[bufTempNum-1]) )//接受完成,地址,功能码,长度
{
rt_sem_release(&rx_semRxTimeOut);
}
}
}
读取IMEI指令,如果失败,则多次尝试通信,成功则跳出,如下:
uint8_t i=0;
for(i=0;i<SENDNUM;i++)
{
air724_config_tx((uint8_t *)readIMEI,rt_strlen(readIMEI));
if(air724_config_rx(bufRx,sizeof(bufRx)) < 0)
{
rt_kprintf("readIMEI err\r\n ");
if( SENDNUM-1 == i )
{
return -1;
}
}
else
{
rt_kprintf("readIMEI ok\r\n ");
break;
}
}
编译,测试结果如下:
————————————————
版权声明:本文为CSDN博主「嵌入式学习和实践」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46158019/article/details/130518406
|