This commit is contained in:
刘可亮
2025-06-13 17:04:01 +08:00
parent e0c35dd461
commit da124cc115

View File

@@ -15,6 +15,7 @@
#include <aic_core.h> #include <aic_core.h>
#define TEST_UART_DEBUG 0 #define TEST_UART_DEBUG 0
#define TEST_UART_CONFIG 1
#define TEST_UART_PORT "uart4" #define TEST_UART_PORT "uart4"
#define TEST_UART_BUF_LEN 128 #define TEST_UART_BUF_LEN 128
#define TEST_UART_COUNT 10 #define TEST_UART_COUNT 10
@@ -76,28 +77,30 @@ static rt_err_t serial_input_mq(rt_device_t dev, rt_size_t size)
return result; return result;
} }
static int serial_config_uart(void) static int serial_config_uart(rt_device_t serial)
{ {
struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT; #if TEST_UART_CONFIG
config.baud_rate = BAUD_RATE_115200; rt_serial_t *uart = container_of(serial, rt_serial_t, parent);
config.data_bits = 8; uart->config.baud_rate = BAUD_RATE_9600;
config.stop_bits = 1; uart->config.data_bits = 8;
config.parity = PARITY_NONE; uart->config.stop_bits = 1;
uart->config.parity = PARITY_NONE;
if (rt_device_control(g_serial, RT_DEVICE_CTRL_CONFIG, &config) != RT_EOK) { if (rt_device_control(serial, RT_DEVICE_CTRL_CONFIG, &uart->config) != RT_EOK) {
rt_kprintf("uart set baudrate fail!\n"); rt_kprintf("uart set baudrate fail!\n");
return -1; return -1;
} }
#endif
return 0; return 0;
} }
static void serial_init_variable(void) static void serial_init_variable(void)
{ {
g_exit = 0; g_exit = 0;
if(g_test_mode == TEST_UART_MODE_SEMAPHORE) if(g_test_mode == TEST_UART_MODE_SEMAPHORE) {
rt_device_set_rx_indicate(g_serial, serial_input_sem);
rt_sem_init(&g_rx_sem, "uart_rx_sem", 0, RT_IPC_FLAG_FIFO); rt_sem_init(&g_rx_sem, "uart_rx_sem", 0, RT_IPC_FLAG_FIFO);
}
if(g_test_mode == TEST_UART_MODE_MESSAGEQUEUE) { if(g_test_mode == TEST_UART_MODE_MESSAGEQUEUE) {
rt_device_set_rx_indicate(g_serial, serial_input_mq); rt_device_set_rx_indicate(g_serial, serial_input_mq);
@@ -222,7 +225,7 @@ int test_uart(int argc, char *argv[])
return -RT_ERROR; return -RT_ERROR;
} }
serial_config_uart(); serial_config_uart(g_serial);
serial_init_variable(); serial_init_variable();
ret = rt_device_open(g_serial, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX); ret = rt_device_open(g_serial, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX);