目录
在N32G45开发板上应用RT-Thread的AT组件中的AT server。
开发环境
RT-THREAD 4.0.2
N32G45 Library 2.0.0
开发板N32G45XVL-STB
RT-Thread Studio 版本: 2.1.5
使用过程
1.在工程中添加AT组件的方法,打开rt-thread studio的RT-Thread Settings,添加AT server组件。
注意:
这个时候直接编译会出错,错误信息如下:
make -j8 all
linking...
./rt-thread/components/net/at/src/at_server.o: In function `at_server_init':
D:\RT-ThreadStudio\workspace\MULTI\Debug/../rt-thread/components/net/at/src/at_server.c:638: undefined reference to `__rtatcmdtab_start'
D:\RT-ThreadStudio\workspace\MULTI\Debug/../rt-thread/components/net/at/src/at_server.c:638: undefined reference to `__rtatcmdtab_end'
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:61: rtthread.elf] Error 1
"make -j8 all" terminated with exit code 2. Build might be incomplete.
相关代码如下图:
PAB
发现是程序链接的问题,但在网上提问也没找到解决办法,后来还是找到了一篇相关文章。在link.lds文件中加入section才解决。
2.在RT-Thread Settings中使能UART3(因为我们上一步设置中,选择的device名就是UART3)
3.添加自定义AT指令
static at_result_t at_test_exec(void)
{
at_server_printfln("AT test commands execute!");
return 0;
}
static at_result_t at_test_query(void)
{
at_server_printfln("AT+TEST=1,2");
return 0;
}
AT_CMD_EXPORT("AT+TEST", "=<value1>[,<value2>]", NULL, at_test_query, NULL, at_test_exec);
4.使用uart转usb模块连接PC与开发板(PB10 PB11), 输入代码中加入的测试指令AT+TEST,看到单片机发来的消息,证明AT server组件被成功添加。