dma接收双缓存 stm32_干货---stm32f103之DMA双缓冲__也算我为网络贡献的微薄之力

#include "sys.h"#include"usart.h"#include"string.h"#include"stdio.h"#include"stdlib.h"

//蓝牙

//

uart_find uart1s;//定义串口一的接受处理结构体//局部定义以便实现模块化//USART

#define USART USART1

#define USART_CLK RCC_APB2Periph_USART1

#define USART_CLK_SET RCC_APB2PeriphClockCmd

#define USART_GPIO_CLK_SET RCC_APB2PeriphClockCmd

#define USART_RX_GPIO_PORT GPIOA

#define USART_RX_GPIO_CLK RCC_APB2Periph_GPIOA

#define USART_RX_PIN GPIO_Pin_10

#define USART_RX_IRQ USART1_IRQn

#define USART_RX_IRQ_HANDLER USART1_IRQHandler //USART3_IRQHandler

#define USART_TX_GPIO_PORT GPIOA

#define USART_TX_GPIO_CLK RCC_APB2Periph_GPIOA

#define USART_TX_PIN GPIO_Pin_9

#define USART_BAUDRATE 115200

//DMA tx

#define USART_DR_BASE (USART1_BASE+0x04) //0x40013800 + 0x04 = 0x40013804,串口数据寄存器地址

#define SEND_BUFF_SIZE 128 //发送的数据量,SEND_BUFF_SIZE * DMA_MemoryDataSize

#define USART_TX_DMA_CLK RCC_AHBPeriph_DMA1

#define USART_TX_DMA_CHANNEL DMA1_Channel4

#define USART_TX_DMA_IRQ DMA1_Channel4_IRQn//中断接口

#define USART_TX_DMA_IRQ_HANDLER DMA1_Channel4_IRQHandler//中断接口

#define USART_Tx_DMA_FLAG DMA1_FLAG_GL4

//错误标志

#define USART_Tx_ERR_DMA_FLAG DMA1_FLAG_GL4

//DMA rx

#define USART_DR_BASE (USART1_BASE+0x04) //0x40013800 + 0x04 = 0x40013804,串口数据寄存器地址

#define REC_BUFF_SIZE 128 //发送的数据量,SEND_BUFF_SIZE * DMA_MemoryDataSize

#define USART_RX_DMA_CLK RCC_AHBPeriph_DMA1

#define USART_RX_DMA_CHANNEL DMA1_Channel5

#define USART_RX_DMA_IRQ DMA1_Channel5_IRQn//中断接口

#define USART_RX_DMA_IRQ_HANDLER DMA1_Channel5_IRQHandler//中断接口

#define USART_Rx_DMA_FLAG DMA1_FLAG_GL5

//错误标志

#define USART_Rx_ERR_DMA_FLAG DMA1_FLAG_GL5

static uint8_t SendBuff[SEND_BUFF_SIZE];//发送测试缓冲

static uint8_t rec_by=0;//缓冲位置

static uint8_t recBuff[REC_BUFF_SIZE]; //接受测试缓冲 临时缓冲

static uint8_t recBuff1[REC_BUFF_SIZE]; //接受测试缓冲

static uint8_t recBuff2[REC_BUFF_SIZE]; //接受测试缓冲

static u16 rec_counter=0;//static uint8_t *send_buff = SendBuff;//锁定发送地址//static uint8_t *rec_buff1 = recBuff1;//锁定接收地址1//static uint8_t *rec_buff2 = recBuff2;//锁定接收地址2

static void uart_dma_send(u8 *buff,u8 len);static void USART_DMA_Config(void);static void user_heander(void);static void USART_Config(void);/**********************************

定义函数接口

********************************

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值