Skip to content

Commit 356bc7a

Browse files
committed
添加了NXP MCXA346的UART demo
1 parent 6fb43f6 commit 356bc7a

File tree

8 files changed

+972
-239
lines changed

8 files changed

+972
-239
lines changed

bsp/nxp/mcx/mcxa/frdm-mcxa346/.config

Lines changed: 88 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,9 @@ CONFIG_FINSH_USING_OPTION_COMPLETION=y
236236
# CONFIG_RT_USING_DEV_BUS is not set
237237
CONFIG_RT_USING_DEVICE_IPC=y
238238
CONFIG_RT_UNAMED_PIPE_NUMBER=64
239-
# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
239+
CONFIG_RT_USING_SYSTEM_WORKQUEUE=y
240+
CONFIG_RT_SYSTEM_WORKQUEUE_STACKSIZE=2048
241+
CONFIG_RT_SYSTEM_WORKQUEUE_PRIORITY=23
240242
CONFIG_RT_USING_SERIAL=y
241243
CONFIG_RT_USING_SERIAL_V1=y
242244
# CONFIG_RT_USING_SERIAL_V2 is not set
@@ -337,10 +339,39 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
337339
#
338340
# Network
339341
#
340-
# CONFIG_RT_USING_SAL is not set
341-
# CONFIG_RT_USING_NETDEV is not set
342+
CONFIG_RT_USING_SAL=y
343+
CONFIG_SAL_INTERNET_CHECK=y
344+
CONFIG_SOCKET_TABLE_STEP_LEN=4
345+
346+
#
347+
# Docking with protocol stacks
348+
#
349+
# CONFIG_SAL_USING_LWIP is not set
350+
CONFIG_SAL_USING_AT=y
351+
# CONFIG_SAL_USING_TLS is not set
352+
# end of Docking with protocol stacks
353+
354+
CONFIG_SAL_SOCKETS_NUM=16
355+
CONFIG_RT_USING_NETDEV=y
356+
CONFIG_NETDEV_USING_IFCONFIG=y
357+
CONFIG_NETDEV_USING_PING=y
358+
CONFIG_NETDEV_USING_NETSTAT=y
359+
CONFIG_NETDEV_USING_AUTO_DEFAULT=y
360+
# CONFIG_NETDEV_USING_LINK_STATUS_CALLBACK is not set
361+
# CONFIG_NETDEV_USING_IPV6 is not set
362+
CONFIG_NETDEV_IPV4=1
363+
CONFIG_NETDEV_IPV6=0
342364
# CONFIG_RT_USING_LWIP is not set
343-
# CONFIG_RT_USING_AT is not set
365+
CONFIG_RT_USING_AT=y
366+
# CONFIG_AT_DEBUG is not set
367+
# CONFIG_AT_USING_SERVER is not set
368+
CONFIG_AT_USING_CLIENT=y
369+
CONFIG_AT_CLIENT_NUM_MAX=1
370+
CONFIG_AT_USING_SOCKET=y
371+
# CONFIG_AT_USING_SOCKET_SERVER is not set
372+
CONFIG_AT_USING_CLI=y
373+
# CONFIG_AT_PRINT_RAW_CMD is not set
374+
CONFIG_AT_SW_VERSION_NUM=0x10301
344375
# end of Network
345376

346377
#
@@ -444,7 +475,48 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
444475
# CONFIG_PKG_USING_NETUTILS is not set
445476
# CONFIG_PKG_USING_CMUX is not set
446477
# CONFIG_PKG_USING_PPP_DEVICE is not set
447-
# CONFIG_PKG_USING_AT_DEVICE is not set
478+
CONFIG_PKG_USING_AT_DEVICE=y
479+
CONFIG_PKG_AT_DEVICE_PATH="/packages/iot/at_device"
480+
# CONFIG_AT_DEVICE_USING_M26 is not set
481+
# CONFIG_AT_DEVICE_USING_EC20 is not set
482+
# CONFIG_AT_DEVICE_USING_ESP32 is not set
483+
CONFIG_AT_DEVICE_USING_ESP8266=y
484+
# CONFIG_AT_DEVICE_ESP8266_INIT_ASYN is not set
485+
CONFIG_AT_DEVICE_ESP8266_SOCKET=y
486+
CONFIG_AT_DEVICE_ESP8266_SAMPLE=y
487+
# CONFIG_AT_DEVICE_ESP8266_SAMPLE_BSP_TAKEOVER is not set
488+
CONFIG_ESP8266_SAMPLE_WIFI_SSID="332266"
489+
CONFIG_ESP8266_SAMPLE_WIFI_PASSWORD="wasd8888"
490+
CONFIG_ESP8266_SAMPLE_CLIENT_NAME="uart3"
491+
CONFIG_ESP8266_SAMPLE_RECV_BUFF_LEN=512
492+
# CONFIG_AT_DEVICE_USING_RW007 is not set
493+
# CONFIG_AT_DEVICE_USING_SIM800C is not set
494+
# CONFIG_AT_DEVICE_USING_SIM76XX is not set
495+
# CONFIG_AT_DEVICE_USING_MW31 is not set
496+
# CONFIG_AT_DEVICE_USING_W60X is not set
497+
# CONFIG_AT_DEVICE_USING_A9G is not set
498+
# CONFIG_AT_DEVICE_USING_BC26 is not set
499+
# CONFIG_AT_DEVICE_USING_AIR720 is not set
500+
# CONFIG_AT_DEVICE_USING_ME3616 is not set
501+
# CONFIG_AT_DEVICE_USING_M6315 is not set
502+
# CONFIG_AT_DEVICE_USING_BC28 is not set
503+
# CONFIG_AT_DEVICE_USING_EC200X is not set
504+
# CONFIG_AT_DEVICE_USING_N21 is not set
505+
# CONFIG_AT_DEVICE_USING_N58 is not set
506+
# CONFIG_AT_DEVICE_USING_M5311 is not set
507+
# CONFIG_AT_DEVICE_USING_L610 is not set
508+
# CONFIG_AT_DEVICE_USING_N720 is not set
509+
# CONFIG_AT_DEVICE_USING_ML305 is not set
510+
# CONFIG_AT_DEVICE_USING_ML307 is not set
511+
# CONFIG_PKG_USING_AT_DEVICE_V210 is not set
512+
# CONFIG_PKG_USING_AT_DEVICE_V204 is not set
513+
# CONFIG_PKG_USING_AT_DEVICE_V203 is not set
514+
# CONFIG_PKG_USING_AT_DEVICE_V202 is not set
515+
# CONFIG_PKG_USING_AT_DEVICE_V201 is not set
516+
# CONFIG_PKG_USING_AT_DEVICE_V200 is not set
517+
CONFIG_PKG_USING_AT_DEVICE_LATEST_VERSION=y
518+
CONFIG_PKG_AT_DEVICE_VER="latest"
519+
CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
448520
# CONFIG_PKG_USING_ATSRV_SOCKET is not set
449521
# CONFIG_PKG_USING_WIZNET is not set
450522
# CONFIG_PKG_USING_ZB_COORDINATOR is not set
@@ -645,6 +717,9 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
645717
# CONFIG_PKG_USING_RVBACKTRACE is not set
646718
# CONFIG_PKG_USING_HPATCHLITE is not set
647719
# CONFIG_PKG_USING_THREAD_METRIC is not set
720+
# CONFIG_PKG_USING_UORB is not set
721+
# CONFIG_PKG_USING_RT_TUNNEL is not set
722+
# CONFIG_PKG_USING_VIRTUAL_TERMINAL is not set
648723
# end of tools packages
649724

650725
#
@@ -739,6 +814,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
739814
# CONFIG_PKG_USING_R_RHEALSTONE is not set
740815
# CONFIG_PKG_USING_HEARTBEAT is not set
741816
# CONFIG_PKG_USING_MICRO_ROS_RTTHREAD_PACKAGE is not set
817+
# CONFIG_PKG_USING_CHERRYECAT is not set
742818
# end of system packages
743819

744820
#
@@ -901,6 +977,12 @@ CONFIG_PKG_NXP_MCX_SERIES_DRIVER_VER="latest"
901977
# CONFIG_PKG_USING_GD32_ARM_CMSIS_DRIVER is not set
902978
# CONFIG_PKG_USING_GD32_ARM_SERIES_DRIVER is not set
903979
# end of GD32 Drivers
980+
981+
#
982+
# HPMicro SDK
983+
#
984+
# CONFIG_PKG_USING_HPM_SDK is not set
985+
# end of HPMicro SDK
904986
# end of HAL & SDK Drivers
905987

906988
#
@@ -949,6 +1031,7 @@ CONFIG_PKG_NXP_MCX_SERIES_DRIVER_VER="latest"
9491031
# CONFIG_PKG_USING_MLX90393 is not set
9501032
# CONFIG_PKG_USING_MLX90392 is not set
9511033
# CONFIG_PKG_USING_MLX90394 is not set
1034+
# CONFIG_PKG_USING_MLX90396 is not set
9521035
# CONFIG_PKG_USING_MLX90397 is not set
9531036
# CONFIG_PKG_USING_MS5611 is not set
9541037
# CONFIG_PKG_USING_MAX31865 is not set
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
/*
2+
* Copyright (c) 2006-2023, RT-Thread Development Team
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*
6+
* Change Logs:
7+
* Date Author Notes
8+
* 2018-07-06 chenyong first version
9+
*/
10+
11+
#include <stdlib.h>
12+
#include <string.h>
13+
14+
#include <rtthread.h>
15+
#include <at.h>
16+
17+
#define LOG_TAG "at.sample"
18+
#include <at_log.h>
19+
20+
#define AT_CMD_MAX_LEN 512
21+
22+
/* AT+CIFSR Query local IP address and MAC */
23+
int at_client_test(int argc, char **argv)
24+
{
25+
at_response_t resp = RT_NULL;
26+
int result = 0;
27+
28+
if (argc != 1)
29+
{
30+
LOG_E("at_client_test - AT client send commands to AT server.");
31+
return -1;
32+
}
33+
34+
resp = at_create_resp(256, 0, rt_tick_from_millisecond(5000));
35+
if (resp == RT_NULL)
36+
{
37+
LOG_E("No memory for response structure!");
38+
return -2;
39+
}
40+
41+
/* close echo */
42+
at_exec_cmd(resp, "ATE0");
43+
44+
result = at_exec_cmd(resp, "AT+CIFSR");
45+
if (result != RT_EOK)
46+
{
47+
LOG_E("AT client send commands failed or return response error!");
48+
goto __exit;
49+
}
50+
51+
/* Print response line buffer */
52+
{
53+
const char *line_buffer = RT_NULL;
54+
55+
LOG_D("Response buffer");
56+
57+
for(rt_size_t line_num = 1; line_num <= resp->line_counts; line_num++)
58+
{
59+
if((line_buffer = at_resp_get_line(resp, line_num)) != RT_NULL)
60+
{
61+
LOG_D("line %d buffer : %s", line_num, line_buffer);
62+
}
63+
else
64+
{
65+
LOG_E("Parse line buffer error!");
66+
}
67+
}
68+
}
69+
70+
{
71+
char resp_arg[AT_CMD_MAX_LEN] = { 0 };
72+
const char * resp_expr = "%*[^\"]\"%[^\"]\"";
73+
74+
LOG_D(" Parse arguments");
75+
if (at_resp_parse_line_args(resp, 1, resp_expr, resp_arg) == 1)
76+
{
77+
LOG_D("Station IP : %s", resp_arg);
78+
rt_memset(resp_arg, 0x00, AT_CMD_MAX_LEN);
79+
}
80+
else
81+
{
82+
LOG_E("Parse error, current line buff : %s", at_resp_get_line(resp, 4));
83+
}
84+
85+
if (at_resp_parse_line_args(resp, 2, resp_expr, resp_arg) == 1)
86+
{
87+
LOG_D("Station MAC : %s", resp_arg);
88+
}
89+
else
90+
{
91+
LOG_E("Parse error, current line buff : %s", at_resp_get_line(resp, 5));
92+
goto __exit;
93+
}
94+
}
95+
__exit:
96+
if(resp)
97+
{
98+
at_delete_resp(resp);
99+
}
100+
101+
return result;
102+
}
103+
104+
int at_client_test_init(int argc, char **argv)
105+
{
106+
#define AT_CLIENT_RECV_BUFF_LEN 1024
107+
#define AT_CLIENT_SEND_BUFF_LEN 512
108+
if (argc != 2)
109+
{
110+
rt_kprintf("at_client_init <dev_name> -- AT client initialize.\n");
111+
return -RT_ERROR;
112+
}
113+
114+
at_client_init(argv[1], AT_CLIENT_RECV_BUFF_LEN, AT_CLIENT_SEND_BUFF_LEN);
115+
116+
return RT_EOK;
117+
}
118+
#ifdef FINSH_USING_MSH
119+
#include <finsh.h>
120+
MSH_CMD_EXPORT(at_client_test, AT client send cmd and get response);
121+
MSH_CMD_EXPORT_ALIAS(at_client_test_init, at_client_init, initialize AT client);
122+
#endif
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#include <rtthread.h>
2+
3+
#define TX_UART_NAME "uart3"
4+
5+
static rt_device_t tx_serial = RT_NULL;
6+
7+
/* 发送任务入口函数 */
8+
static void serial_tx_thread(void *parameter)
9+
{
10+
char msg[] = "hello RT-Thread!\r\n";
11+
12+
while (1)
13+
{
14+
rt_device_write(tx_serial, 0, msg, sizeof(msg) - 1);
15+
rt_thread_mdelay(500); /* 每 500ms 发一次 */
16+
}
17+
}
18+
19+
/* 初始化函数,在系统启动完成后自动运行 */
20+
int uart3_tx_init(void)
21+
{
22+
/* 查找 uart3 设备 */
23+
tx_serial = rt_device_find(TX_UART_NAME);
24+
if (tx_serial == RT_NULL)
25+
{
26+
rt_kprintf("Cannot find %s device!\n", TX_UART_NAME);
27+
return -1;
28+
}
29+
30+
/* 打开设备(仅发送,不需要接收) */
31+
rt_device_open(tx_serial, RT_DEVICE_FLAG_WRONLY);
32+
33+
/* 创建线程 */
34+
rt_thread_t tid = rt_thread_create(
35+
"uart3_tx", /* 线程名 */
36+
serial_tx_thread, /* 入口函数 */
37+
RT_NULL, /* 参数 */
38+
1024, /* 栈大小 */
39+
20, /* 优先级 */
40+
10 /* 时间片 */
41+
);
42+
43+
if (tid != RT_NULL)
44+
rt_thread_startup(tid);
45+
else
46+
rt_kprintf("Create uart3_tx thread failed!\n");
47+
48+
return 0;
49+
}
50+
//INIT_APP_EXPORT(uart3_tx_init);
51+
/* 导出到 msh 命令列表中 */
52+
MSH_CMD_EXPORT(uart3_tx_init, uart3 device test);

0 commit comments

Comments
 (0)