记录自己采坑的过程,不认真看函数。
采用RT_thread官网给出的 AT Client URC 数据处理的例子 。参考https://www.rt-thread.org/document/site/programming- manual/at/at/#at-client-urc
主要代码如下:
static void urc_conn_func(const char *data, rt_size_t size)
{
/* WIFI 连接成功信息 */
LOG_D("AT Server device WIFI connect success!");
}
static void urc_recv_func(const char *data, rt_size_t size)
{
/* 接收到服务器发送数据 */
LOG_D("AT Client receive AT Server data!");
}
static void urc_func(const char *data, rt_size_t size)
{
/* 设备启动信息 */
LOG_D("AT Server device startup!");
}
static struct at_urc urc_table[] = {
{"WIFI CONNECTED", "\r\n", urc_conn_func},
{"+RECV", ":", urc_recv_func},
{"RDY", "\r\n", urc_func},
};
int at_client_port_init(void)
{
/* 添加多种 URC 数据至 URC 列表中,

本文详细解析了在RT-Thread环境下,使用ATClient处理URC数据的常见问题与解决方法。针对URC函数参数变化引起的编译警告,介绍了如何更新函数定义以适配新版AT文档。同时,探讨了调试过程中的日志打印问题,以及URC响应与AT指令返回检测之间的冲突。

4022

被折叠的 条评论
为什么被折叠?



