Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
AT
RT-Thread
AT_URC
AT Command URC 相关咨询
发布于 2023-01-13 13:48:28 浏览:846
订阅该版
你好! 我是 RT-Thread 的初学者。 首先,请原谅我使用翻译器,因为我不懂中文。 非常感谢你上次的帮助。 不过这次又出问题了,站在初学者的角度解决不了,所以又写了一道题。 我真的很感激以下方面的任何帮助。 我目前正在尝试使用 ucr 功能,但它不起作用。 这是我作为初学者的看法,但是由于at_client_send是在前面的AT COMMAND终止之前(在收到OK之前)通过urc执行的, 我认为这可能会发生。(AT$$TCP_PPPOP后没有收到信息) 我不知道这是否是正确的问题......但如果有好的方法,请发表评论! 代码是: ```c char* TCPIP; uint8_t IP[22]={"192,168,0,199,2500"}; rt_sprintf(TCPIP, "AT$$TCP_ADDR=0,%s\r\n", IP); rt_kprintf("TCPIP: %s, %d\r\n", TCPIP, strlen(TCPIP)); at_client_send(TCPIP, strlen(TCPIP)); /* URC */ static void urc_tcp_func() { at_client_send("AT$$TCP_PPPOP", 13); } static void urc_scop_func() { at_client_send("AT$$TCP_SCOP", 12); } static void urc_tcp_scop_func() { LTE_debug("tcp_scop success!!\r\n"); } static struct at_urc urc_table[] = { {"$$A_BOOT_ALERT", "\r\n", urc_conn_func}, {"$$TELL:34,Modem Boot Up", "\r\n", urc_conn_func}, {"$$TCP_ADDR: 0", "\r\n", urc_tcp_func}, {"$$TELL: 600", "\r\n", urc_scop_func}, {"$$TCP_PPPOP: 0", "\r\n", urc_scop_func}, {"$$TELL: 603", "\r\n", urc_tcp_scop_func}, {"$$TCP_SCOP: 0", "\r\n", urc_tcp_scop_func}, }; ``` LOG: ```text [D/AT] sendline: 0000-0020: 41 54 24 24 54 43 50 5F 41 44 44 52 3D 30 2C 31 39 32 2C 31 36 38 2C 30 2C 31 39 39 2C 32 35 30 AT$$TCP_ADDR=0,192,168,0,199,250 [D/AT] sendline: 0020-0040: 30 0D 0A 0.. [D/AT] recvline: 0000-0020: 0D 0A .. [D/AT] recvline: 0000-0020: 24 24 54 43 50 5F 41 44 44 52 3A 20 30 0D 0A $$TCP_ADDR: 0.. [D/AT] sendline: 0000-0020: 41 54 24 24 54 43 50 5F 50 50 50 4F 50 AT$$TCP_PPPOP [D/AT] recvline: 0000-0020: 0D 0A .. [D/AT] recvline: 0000-0020: 4F 4B 0D 0A OK.. ``` 我希望你有一个有趣和快乐的一天! :)
查看更多
ine
2023-01-16
这家伙很懒,什么也没写!
According to LOG 4 and 5, the URC function appears to be working properly. In the 4th log, "$$TCP_ADDR: 0\r\n" is received, which is correctly parsed by the AT component and calls the matching URC callback interface urc_tcp_func() to send "AT$$TCP_PPPOP"
3
个回答
默认排序
按发布时间排序
lchnu
2023-01-16
Witness, Understand, Skill
Hi, ambrosiahoney. could you please describe your problem in English instead of using transalation? or you can use both English and translated chinese. The following is my personal viewpoint: In `client_parser` function, `at_recv_readline` is firstly invoked. If the incoming data is newline or URC data, the while(1) loop of at_recv_readline will be breaked, and then invoke `get_urc_obj` function. According to your LOG4, the condition `newline` is triggered, therefore STM32 prints recvline, and then invokes `get_urc_obj` function. Since the cmd_prefix `($$TCP_ADDR:0, )` and cmd_suffix `\r\n`(which is the newline indicator of `TCPADDR:0,` , rather than your truely expected suffix) are both correct, at client finds out the correct URC callback function `urc_tcp_func` and peforms the function by function pointer `urc->func(client,....)`. After this callback is done (send `AT$$TCP_PPPOP` to module), at client receives the real echo of TCP_ADDR (`\r\n` or `OK\r\n`, not sure), which is your expected cmd_suffix, and finally shown in LOG6/LOG7. I can't find the AT command manual of Teladin TX500, and not sure wether LOG6 or LOG7 is the correct echo of AT ADDR. If correct echo is LOG7 (OK\r\n), maybe you should modify URC_Table as follows: ```c {"$$TCP_ADDR:0", "OK\r\n", urc_tcp_function} ```
StackYuan
认证专家
2023-01-13
这家伙很懒,什么也没写!
Hi ambrosiahoney , Have you been tested a workable demo based on urc command before? This can help on urc usage. And a detailed infomation on your 4G-LTE module, and detailed platform you're using, may do help on this Q&A.
撰写答案
登录
注册新账号
关注者
0
被浏览
846
关于作者
ambrosiahoney
这家伙很懒,什么也没写!
提问
2
回答
0
被采纳
0
关注TA
发私信
相关问题
1
rt-thread 2g/3g/4g通信模块的教程有吗?
2
基于AT指令,用esp8266如何连接mqtt?
3
AT组件使用问题
4
官方AT客户端应用笔记的几个小tip
5
RTT的SAL能够判断使用LWIP或者AT?
6
rt_therad AT组件移植不成功(结贴)
7
AT组件在哪个版本的?
8
AT组件 连接 Onenet 连接失败
9
esp8266 AT指令 MQTT连接问题
10
AT组件使用问题之模块主动上报【已解决】
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
2
RT-Thread 发布 EtherKit开源以太网硬件!
3
rt-thread使用cherryusb实现虚拟串口
4
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
5
《原子操作:程序世界里的“最小魔法单位”解析》
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
13
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
本月文章贡献
程序员阿伟
7
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
3
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部