资源简介
简化正点原子的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\ob
文件 1336 2017-09-09 22:12 usart\ob
文件 298408 2017-09-09 22:12 usart\ob
文件 270914 2017-09-10 10:50 usart\ob
文件 1298 2017-09-10 10:50 usart\ob
文件 299028 2017-09-10 10:50 usart\ob
文件 270223 2017-09-10 10:50 usart\ob
文件 1274 2017-09-10 10:50 usart\ob
文件 294396 2017-09-10 10:50 usart\ob
文件 270675 2017-09-10 10:50 usart\ob
文件 1343 2017-09-10 10:50 usart\ob
文件 297448 2017-09-10 10:50 usart\ob
文件 270870 2017-09-09 22:45 usart\ob
文件 1438 2017-09-09 22:45 usart\ob
文件 299140 2017-09-09 22:45 usart\ob
文件 81 2017-09-09 22:45 usart\ob
文件 6836 2017-09-09 22:45 usart\ob
文件 273962 2017-09-09 22:45 usart\ob
文件 1600 2017-09-09 22:45 usart\ob
文件 309676 2017-09-09 22:45 usart\ob
文件 274368 2017-09-09 22:45 usart\ob
............此处省略44个文件信息
- 上一篇:基于实景图像的道路限速标志检测算法研究
- 下一篇:音乐播放器 安卓
相关资源
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- 基于xilinx FPGA的PCIe设计实战
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- 一个简单的verilog编写的DMA IP CORE,和
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- STM32F103 CC2500完整驱动(模拟SPI)
- AD7606采集程序
- stm32 用SPI 方式读写 SDHC
- stm32通过DMA方式采集ADC数据
- 意法半导体STM全系列微控制器STM32ST
- 基于STM32芯片的SX1278 驱动 LORA.rar
- STM32的PCB封装库,以及原理图库,48
- SX1280.rar
评论
共有 条评论