利用 串口+DMA+IDLE中断+无锁队列,提高串口接收效率 接收会产生的中断有三种: - 串口空闲中断:正常接收(小于 dma 设置的 buffer_size 时) - DMA传输完成中断:刚好为 dma 设置的 buffer_size 时,不过一般也不会出现, 如果出现了的话也应该增加缓冲区大小 - DMA的半传输中断:(这里没有用到,如果内存有限制可以自行开启) 注意: - 环形队列的缓冲区要设置为 2 的幂次方的大小 - 串口中断一般可以设置为最低优先级,因为是 DMA后台自动接收的, 所以中断优先级最低并不会丢失数据 - 用户缓存 buff_read 可以随意设置,没有限制,但为了节省内存, 一般小于等于 DMA 的接收缓存 usart_buff_rx
2022-10-19 14:03:59 7KB stm32 串口通信 队列
1
压缩包是基于MDK5 V5.06 HAL库版本的源文件,带项目文件可以直接编译调试。 主要功能是使用STM32F030F4P6单片机通过LORA1278进行串口DMA数据收发透传。需要的下载可以参考,也欢迎技术交流。
2022-10-01 10:30:36 12.39MB LORA SX1278 SX1276 串口DMA透传
1
华大单片机:HC32460 串口DMA 接收发送不定长数据示例
2022-09-04 10:34:45 25.64MB 单片机 HC32460 串口DMA
1
YJ工程模板_串口DMA+看门狗v2.0。以后写32单片机代码时,可直接复制粘贴,然后在工程模板中添加自己项目的 驱动程序。(本节内容有对应视频,可以观看视频) YJ工程模板以及所有开源项目都完全遵守YJ_编程规范v3.0的要求。关于编程规范内容,大家可以 参考我们提供的:YJ_编程规范文档。
2022-08-10 16:06:55 664KB STM32F1 工程模板 串口DMA 看门狗
1
HAL库,STM32T通过DMA实时读取6路ADC,并通过串口(蓝牙模块)发送。其中蓝牙发送频率可以通过无线程控。
2022-07-18 02:14:44 10KB STM32 蓝牙模块 串口 DMA
1
STM32高速串口通信DMA收发实现 测试平台 平台 晶振 BSP库 串口 STM32F030C8T6 12MHz 标准库 UART1、UART2 STM32F103ZET6 8MHz 标准库 UART1、UART2 ... 实现功能 收/发环形缓冲区 不定长度接收处理 高速(1.5Mbps)通信不丢数据 关键实现 DMA发送模式 线程循环查询发送环形缓冲区数据,然后启动MDA传输 DMA传输完成中断,连续发送 定时器中断周期发送 DMA接收模式 DMA缓存半满中断(如CPU硬件支持,可使用DMA双缓存机制) DMA缓存传输完成中断 串口空闲中断实现 其他 更详细的描述过程参考文章
2022-05-18 14:17:44 1.53MB stm32 uart fifo dma
1
使用华大MCU HC32L130(136)配置串口为DMA接收,通过高级定时器6实现超时空闲帧接收的方式,类似于STM32F103 串口DMA + 空闲中断 实现不定长数据收发。
1
STM32F407VE+FreeRTOS+STM32CubeIDE+DMA+Freemodbus移植代码 修改了接口文件
2022-04-06 01:12:17 15.02MB Freemodbus DMA STM32CubeIDE
1
STM32F103单片机上实现,串口1将接收到的数据通过DMA发送出去,串口2通过DMA直接发送缓冲区数据。
2022-03-02 17:44:10 593KB STM32 103 串口 DMA
1
STM32F103串口DMA收发,参考例程改写,详细注释,试验成功。初学者很好的参考模板。
2022-02-18 01:08:07 6.02MB STM32F103 串口DMA收发
1