打印
[研电赛技术支持]

GD32使用rt-thread系统操作银尔达air724UG(4G)模块

[复制链接]
280|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zljiu|  楼主 | 2023-7-19 12:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
银尔达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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

50

主题

3322

帖子

3

粉丝