/* 寻找相应设备 */ rt_device_open(serial, RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_DMA_TX); rt_device_open(serial, RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_INT_TX); /* 设置接收回调函数 */ rt_device_set_rx_indicate(serial, serial_rx_ind); /* 设置发送回调函数 */ rt_device_set_...
类型里面是一些简单的数据类型structstm32_uart_config*config;#ifdef RT_SERIAL_USING_DMAstruct{DMA_HandleTypeDefhandle;//管理DMA的句柄,类型里面是一些简单的数据类型以及回调函数rt_size_tremaining_cnt;}dma_rx;struct{DMA_HandleTypeDefhandle;}dma_tx;#endifrt_uint16_tuart_dma_flag;structrt_serial_device...
一、创建用例 参考rtthread官网,使用串口DMA方式,接收不定长数据的方法,做了一个demo, 系统配置如下: rtthread:4.0.2版本: STM32F427,串口6 可以不用cubemx,直接修改rtthread_setting和board.h的配置 创建串口模块: #include <rtthread.h> #include <rtdevice.h> #include "sys_def.h" #include "uart.h...
static rt_device_t serial;/* 485控制引脚 */ rt_base_t rs485_ctrl_pin = -1;static void ...
Serial_v2 support device ops feature Fix do RT_DEVICE_CTRL_CLOSE cmd when close serial device regardless of DMA configUpdate lwip Fix lwIP critical section protection bug Set default lwip stack for old bsp folder. Change default lwip stack to lwip2.0.3 Fix delete useless code. The "event_...
{return RT_EIO;} if (spi_drv->spi_dma_flag & SPI_USING_TX_DMA_FLAG) { HAL_DMA_Init(&spi_drv->dma.handle_tx); __HAL_LINKDMA(&spi_drv->handle, hdmatx, spi_drv->dma.handle_tx); /* NVIC configuration for DMA transfer complete interrupt */ ...
由于做项目的需要的原因,我们这次使用了 DMA +IDLE 模式的接受模式,即任意的长度的数据仅仅需要一个IDLE中断就可以接受完成。 在tx方面我们采用了DMA 环形buffer的方式。下面详细说 1. RX Mode RX Mode 比较简单 我们只是使能了IDLE mode 和DMA的buffer即可 ...
#define RT_DEVICE_FLAG_DMA_TX 0x800 /* 设备处于DMA发送模式 */ 设备流模式RT_DEVICE_FLAG_STREAM参数用于向串口终端输出字符串:当输出的字符 是“\n”时,自动在前面补一个“\r”做分行。 函数返回 返回RT_EOK 警告:应当避免重复注册已经注册的设备,以及注册相同名字的设备。
UART设备的操作方法实现后需要注册设备到操作系统,注册UART设备的接口是rt_err_t rt_hw_serial_register(struct rt_serial_device serial,const char name,rt_uint32_t flag, void *data)。 3.5增加DMA模式 增加UART设备DMA模式,需要首先对每个UART的DMA进行配置,接着进行DMA初始化和中断处理,最后完成DMA发送。
EXPORT DMA1_Channel7_IRQHandler [WEAK] EXPORT ADC1_2_IRQHandler [WEAK] EXPORT USB_HP_CAN1_TX_IRQHandler [WEAK] EXPORT USB_LP_CAN1_RX0_IRQHandler [WEAK] EXPORT CAN1_RX1_IRQHandler [WEAK] EXPORT CAN1_SCE_IRQHandler [WEAK] EXPORT EXTI9_5_IRQHandler [WEAK] ...