• 大小: 1.33MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-28
  • 语言: 其他
  • 标签: stm32  DMA  usart  

资源简介

简化正点原子的DMA发送程序,添加DMA发送中断,发送中断内更改引脚电平 简化正点原子的DMA发送程序,添加DMA发送中断,发送中断内更改引脚电平

资源截图

代码片段和文件信息

#include “dma.h“
#include “led.h“

u8 SendBuff[SENDBUF_SIZE];
void NVIC_Config(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;
  
  NVIC_InitStructure.NVIC_IRQChannel = DMA1_Channel4_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
}
//DMA1的各通道配置
//这里的传输形式是固定的这点要根据不同的情况来修改
//从存储器->外设模式/8位数据宽度/存储器增量模式
//DMA_CHx:DMA通道CHx
//cpar:外设地址
//cmar:存储器地址
//cndtr:数据传输量 
void MYDMA_Config(void)
{
DMA_InitTypeDef DMA_InitStructure;
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1 ENABLE); //使能DMA传输

  DMA_DeInit(DMA1_Channel4);   //将DMA的通道1寄存器重设为缺省值
DMA_InitStructure.DMA_PeripheralbaseAddr = (u32)&USART1->DR;  //DMA外设ADC基地址
DMA_InitStructure.DMA_MemorybaseAddr = (u32)SendBuff;  //DMA内存基地址
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;  //数据传输方向,从内存读取发送到外设
DMA_InitStructure.DMA_BufferSize = SENDBUF_SIZE;  //DMA通道的DMA缓存的大小
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;  //外设地址寄存器不变
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;  //内存地址寄存器递增
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;  //数据宽度为8位
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; //数据宽度为8位
DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;  //工作在正常缓存模式
DMA_InitStructure.DMA_Priority = DMA_Priority_Medium; //DMA通道 x拥有中优先级 
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;  //DMA通道x没有设置为内存到内存传输
DMA_Init(DMA1_Channel4 &DMA_InitStructure);  //根据DMA_InitStruct中指定的参数初始化DMA的通道USART1_Tx_DMA_Channel所标识的寄存器
DMA_ITConfig(DMA1_Channel4DMA_IT_TCENABLE);  //配置DMA发送完成后产生中断
USART_DMACmd(USART1USART_DMAReq_TxENABLE);
NVIC_Config();
}
//开启一次DMA传输
void MYDMA_Enable(void)
{
DMA_Cmd(DMA1_Channel4 DISABLE );  //关闭USART1 TX DMA1 所指示的通道      
  DMA_SetCurrDataCounter(DMA1_Channel4SENDBUF_SIZE);//DMA通道的DMA缓存的大小
  DMA_Cmd(DMA1_Channel4 ENABLE);  //使能USART1 TX DMA1 所指示的通道 
}
void DMA1_Channel4_IRQHandler(void)
{
//判断是否为DMA发送完成中断
if(DMA_GetFlagStatus(DMA1_FLAG_TC4)==SET) 
{
//LED关闭  
LEDXToggle();
DMA_ClearFlag(DMA1_FLAG_TC4); 
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       6956  2015-12-10 17:06  usart\DebugConfig\Target_1_STM32F103VE.dbgconf

     文件       2446  2017-09-10 10:50  usart\dma.c

     文件        189  2017-09-10 10:50  usart\dma.h

     文件        339  2017-09-10 10:55  usart\EventRecorderStub.scvd

     文件        603  2017-09-10 10:50  usart\led.c

     文件        362  2017-09-10 10:50  usart\led.h

     文件      54948  2017-09-09 22:45  usart\Listings\startup_stm32f10x_hd.lst

     文件      78536  2017-09-10 10:50  usart\Listings\usart2.map

     文件        530  2017-09-10 10:50  usart\main.c

     文件     271763  2017-09-09 22:12  usart\objects\delay.crf

     文件       1336  2017-09-09 22:12  usart\objects\delay.d

     文件     298408  2017-09-09 22:12  usart\objects\delay.o

     文件     270914  2017-09-10 10:50  usart\objects\dma.crf

     文件       1298  2017-09-10 10:50  usart\objects\dma.d

     文件     299028  2017-09-10 10:50  usart\objects\dma.o

     文件     270223  2017-09-10 10:50  usart\objects\led.crf

     文件       1274  2017-09-10 10:50  usart\objects\led.d

     文件     294396  2017-09-10 10:50  usart\objects\led.o

     文件     270675  2017-09-10 10:50  usart\objects\main.crf

     文件       1343  2017-09-10 10:50  usart\objects\main.d

     文件     297448  2017-09-10 10:50  usart\objects\main.o

     文件     270870  2017-09-09 22:45  usart\objects\misc.crf

     文件       1438  2017-09-09 22:45  usart\objects\misc.d

     文件     299140  2017-09-09 22:45  usart\objects\misc.o

     文件         81  2017-09-09 22:45  usart\objects\startup_stm32f10x_hd.d

     文件       6836  2017-09-09 22:45  usart\objects\startup_stm32f10x_hd.o

     文件     273962  2017-09-09 22:45  usart\objects\stm32f10x_dma.crf

     文件       1600  2017-09-09 22:45  usart\objects\stm32f10x_dma.d

     文件     309676  2017-09-09 22:45  usart\objects\stm32f10x_dma.o

     文件     274368  2017-09-09 22:45  usart\objects\stm32f10x_gpio.crf

............此处省略44个文件信息

评论

共有 条评论