From 13f7a142ea7271cffcfdb9247078031ed73dbe8a Mon Sep 17 00:00:00 2001 From: wuming_zi <1078249029@qq.com> Date: Mon, 12 Aug 2024 05:18:05 +0000 Subject: [PATCH] =?UTF-8?q?update=20rt-thread-version/rt-thread-standard/p?= =?UTF-8?q?rogramming-manual/device/uart/uart=5Fv1/uart.md.=20=E6=8C=89?= =?UTF-8?q?=E8=A6=81=E6=B1=82=E5=88=A0=E9=99=A4=E5=9B=BE=E7=89=87=EF=BC=8C?= =?UTF-8?q?=E4=B8=8B=E4=B8=AApr=E5=B0=86=E4=BC=9A=E6=8A=8A=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E6=94=BE=E5=85=A5./figure=E5=86=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wuming_zi <1078249029@qq.com> --- .../device/uart/uart_v1/uart.md | 37 ++++++++++++------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/rt-thread-version/rt-thread-standard/programming-manual/device/uart/uart_v1/uart.md b/rt-thread-version/rt-thread-standard/programming-manual/device/uart/uart_v1/uart.md index 4977452..9efcd2c 100644 --- a/rt-thread-version/rt-thread-standard/programming-manual/device/uart/uart_v1/uart.md +++ b/rt-thread-version/rt-thread-standard/programming-manual/device/uart/uart_v1/uart.md @@ -579,24 +579,36 @@ static void serial_thread_entry(void *parameter) { struct rx_msg msg; rt_err_t result; - rt_uint32_t rx_length; + rt_uint32_t rx_length = 0; static char rx_buffer[RT_SERIAL_RB_BUFSZ + 1]; - - while (1) + char input; + while(1) { - rt_memset(&msg, 0, sizeof(msg)); - /* 从消息队列中读取消息*/ result = rt_mq_recv(&rx_mq, &msg, sizeof(msg), RT_WAITING_FOREVER); - if (result > 0) + if(result < 0) + { + rt_kprintf("mq recv err\n"); + } + + rt_device_read(msg.dev, 0, &input, 1); + rx_buffer[rx_length++] = input; + rt_kprintf("input: %c\n",input); + + /* 以回车为缓冲区输出标志 */ + if(input == '\r') { - /* 从串口读取数据*/ - rx_length = rt_device_read(msg.dev, 0, rx_buffer, msg.size); - rx_buffer[rx_length] = '\0'; /* 通过串口设备 serial 输出读取到的消息 */ - rt_device_write(serial, 0, rx_buffer, rx_length); + rt_size_t size = rt_device_write(msg.dev, 0, rx_buffer, sizeof(rx_buffer)); + if(size != sizeof(rx_buffer)) + { + rt_kprintf("write err\n"); + } /* 打印数据 */ - rt_kprintf("%s\n",rx_buffer); - } + rt_kprintf("rx_buffer: %s\n", rx_buffer); + /* 重置初始量 */ + rx_length = 0; + rt_memset((void*)rx_buffer, 0, sizeof(rx_buffer)); + } } } @@ -786,4 +798,3 @@ static int uart_data_sample(int argc, char *argv[]) MSH_CMD_EXPORT(uart_data_sample, uart device sample); ``` - -- Gitee