RT_DEVICE_OFLAG_WRONLY/* 以只写方式打开设备 */ RT_DEVICE_OFLAG_RDWR/* 以读写方式打开设备 */ RT_DEVICE_OFLAG_OPEN/* 设备已经打开(内部使用)*/ RT_DEVICE_FLAG_STREAM/* 设备以流模式打开 */ RT_DEVICE_FLAG_INT_RX/* 设备以中断接收模式打开 */ RT_DEVICE_FLAG_DMA_RX/* 设备以 DMA 接收模...
if(rt_device_open(dev, RT_DEVICE_OFLAG_RDWR | // RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_STREAM) == RT_EOK) { if(shell->device != RT_NULL) { /* close old finsh device */ rt_device_close(shell->device); rt_device_set_rx_indicate(shell->device, RT_NULL); } /* clear line...
rt_console_set_device(RT_CONSOLE_DEVICE_NAME); #endif /* start scheduler */ rt_system_scheduler_start(); 这时候,我们的 `rt_console_set_device` 可以用任何模式打开控制台串口设备 登录后复制if (rt_device_open(new_device, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_STREAM | RT_DEVICE_FLAG_INT_...
rt_device_open(uart_device, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX ); 1. 最后调用rt_event_init初始化事件。 RT-Thread中默认开启了自动初始化机制,因此用户不需要在应用程序中手动调用串口的初始化函数(drv_usart.c中的INIT_BOARD_EXPORT实现了自动初始化)。用户实现的由宏RT_USING_UARTx选定的...
登录后复制rt_tick_t timeout = 50;if(rt_device_open(scpi_uart_dev, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_INT_TX | RT_DEVICE_OFLAG_BLOCKING) != RT_EOK) { rt_kprintf("Open device: %s failedn", UART_DEV_NAME);return; ...
导出有参数的命令时,函数的入参为 int argc 和 char**argv。argc 表示参数的个数,argv 表示命令行...
rt_device_register(&_hw_pin.parent,name,RT_DEVICE_FLAG_RDWR); return0; } 最后,在pin.c文件中将rt_pin_mode,rt_pin_write,rt_pin_read三个函数加入到finsh 的函数列表中,用于调试。 二、底层硬件驱动 在gpio.c中主要实现structrt_pin_ops中的三个接口函数:stm32_pin_mode, ...
rt_device_t serial = rt_device_find("uart1"); // 假设串口设备名称为 "uart1" if (!serial) { rt_kprintf("find uart1 failed! "); return; } rt_device_open(serial, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX); rt_device_set_baudrate(serial, BAUD_RATE_115200); // 设置波特率为...
RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_INT_TX | uart_obj[i].uart_dma_flag , NULL); RT_ASSERT(result == RT_EOK); } return result; } 我们看到,该函数名是rt_为前缀的,要被RT-Thread上层函数调用,具体是在drv_common.c中通过宏RT_USING_SERIAL控制的初始函数: ...
RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_INT_TX | uart_obj[i].uart_dma_flag , NULL); RT_ASSERT(result == RT_EOK); } return result; } 这个uart_obj是struct stm32_uart类型,主要成员是config和serial, config默认配置是: ...