龙空技术网

调试分享:STM32F103串口UsartDMA模式,已测试

廉价攻城虱 471

前言:

此时我们对“stm32f103 dma2”可能比较注意,同学们都想要分析一些“stm32f103 dma2”的相关文章。那么小编也在网络上收集了一些对于“stm32f103 dma2””的相关知识,希望看官们能喜欢,同学们一起来了解一下吧!

编写前准备:

1,看说明书

2,看固件库中相关的固件函数

编写:把串口1设置成DMA模式,采用空闲总线中断模式

目的:在不占用CPU的前提下,实现数据的高速传递,节省大量资源,并且方便协议编写,协议统一、移植。

一、 各个部分初始化与使能

1、声明结构体

声明

1、开启GPIOA时钟、开启串口1时钟、开启DMA1时钟

2、配置通讯串口Usart1的GPIO,举例中连接硬件位RS485芯片,片选发送和接受状态。

3、配置串口发送DMA设置,选择DMA1通道4,中断优先级在NVIC_Configuration中。

4、 配置串口接受DMA设置,选择DMA1通道5

5、串口USART1的初始化,举例中波特率可设,实际应用中可以固定,这一步设置最为关键,中断使能一定设置成空闲总线中断

中断优先级在NVIC_Configuration中。

6、将串口1默认成接受模式

二、中断响应

1 、DMA1通道4中断响应设置,下次接受最大长度可按照自己的情况更改。

2、串口中断相应程序

2.1、判断空闲中断

2.2、暂时禁止DMA,便于分析命令

2.3、计算命令长度,分析命令是否正确;如正确,准备好返回的数据,发送;如不正确,复位,重启DMA接受模式。

错误代码:01功能码不对;02寄存器地址不对;03数量不对;04检验不对。

2.4、处理完成,清标志

总体实现了占用CPU资源小,接收发送均交由DMA完成。

用者当用,能者勿喷。

标签: #stm32f103 dma2 #dma测试模式选择