利用 串口+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
STM32有数个串口,每个串口都有一个自己独立的波特率寄存器USART_BRR,通过设置该寄存器就可以达到配置不同波特率的目的,由于STM32采用分数波特率,所以STM32的串口波特率设置范围很宽,而且误差很小。
2022-10-18 18:07:59 76KB USART1 STM32 串口通信 文章
1
基于STM32F103芯片串口通信例程,主要是串口1接收到数据后,再发送出去。通过环形队列来接收串口数据,可以边收边解析,达到缓冲作用,可以做较大数据接收。目前的例程没有通信协议,只是在接收时,以判断数据串有回车信号,就认为该数据串接收完成。
2022-10-18 17:12:09 2.6MB STM32 串口通信 串口接发 环形队列
1
一个简单的单线半双工例程,使用标准库,使用正点原子STM32F103ZET6。按KEY0向电脑发送"TEST"字符串,收到电脑的数据LED1会亮。需要使用CH340模块。
2022-09-28 11:40:39 3.26MB STM32 串口通信 单片机 单线半双工
1
MDK环境下stm32的usart串口与上位机通讯的使用实例
2022-09-24 17:01:24 373KB usart_test stm32_上位机 stm32串口通讯
STm32串口中断通信实现,包括了stm32F1的库文件以及初始化代码等
2022-09-22 09:06:48 2.51MB Stm32串口
1
MSP432p401r与openmv通信,网上的通信代码有点复杂,我这个是根据stm32与openmv通信改编的,更容易理解
2022-09-19 16:21:23 2KB msp432p401r openmv stm32 串口通信
1
STM32 串口下载,ST-linker驱动
2022-08-18 14:05:50 38.45MB STM32
1
本程序是在STM32F103RBT6 单片机下运行,主要通过串口1发送给从机,从机接收到发送的命令,返回数据给串口2 打印出来。
2022-07-29 16:32:21 638KB STM32 串口通信
1
使用STM32实现了串口通信,代码包括STM32的寄存器配置,通信协议等。
2022-07-27 11:00:19 3.48MB STM32  串口 通信 C语言
1