資源簡(jiǎn)介
簡(jiǎn)化正點(diǎn)原子的DMA發(fā)送程序,添加DMA發(fā)送中斷,發(fā)送中斷內(nèi)更改引腳電平
簡(jiǎn)化正點(diǎn)原子的DMA發(fā)送程序,添加DMA發(fā)送中斷,發(fā)送中斷內(nèi)更改引腳電平

代碼片段和文件信息
#include?“dma.h“
#include?“l(fā)ed.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的各通道配置
//這里的傳輸形式是固定的這點(diǎn)要根據(jù)不同的情況來修改
//從存儲(chǔ)器->外設(shè)模式/8位數(shù)據(jù)寬度/存儲(chǔ)器增量模式
//DMA_CHx:DMA通道CHx
//cpar:外設(shè)地址
//cmar:存儲(chǔ)器地址
//cndtr:數(shù)據(jù)傳輸量?
void?MYDMA_Config(void)
{
DMA_InitTypeDef?DMA_InitStructure;
? RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1?ENABLE); //使能DMA傳輸
??DMA_DeInit(DMA1_Channel4);???//將DMA的通道1寄存器重設(shè)為缺省值
DMA_InitStructure.DMA_PeripheralbaseAddr?=?(u32)&USART1->DR;??//DMA外設(shè)ADC基地址
DMA_InitStructure.DMA_MemorybaseAddr?=?(u32)SendBuff;??//DMA內(nèi)存基地址
DMA_InitStructure.DMA_DIR?=?DMA_DIR_PeripheralDST;??//數(shù)據(jù)傳輸方向,從內(nèi)存讀取發(fā)送到外設(shè)
DMA_InitStructure.DMA_BufferSize?=?SENDBUF_SIZE;??//DMA通道的DMA緩存的大小
DMA_InitStructure.DMA_PeripheralInc?=?DMA_PeripheralInc_Disable;??//外設(shè)地址寄存器不變
DMA_InitStructure.DMA_MemoryInc?=?DMA_MemoryInc_Enable;??//內(nèi)存地址寄存器遞增
DMA_InitStructure.DMA_PeripheralDataSize?=?DMA_PeripheralDataSize_Byte;??//數(shù)據(jù)寬度為8位
DMA_InitStructure.DMA_MemoryDataSize?=?DMA_MemoryDataSize_Byte;?//數(shù)據(jù)寬度為8位
DMA_InitStructure.DMA_Mode?=?DMA_Mode_Normal;??//工作在正常緩存模式
DMA_InitStructure.DMA_Priority?=?DMA_Priority_Medium;?//DMA通道?x擁有中優(yōu)先級(jí)?
DMA_InitStructure.DMA_M2M?=?DMA_M2M_Disable;??//DMA通道x沒有設(shè)置為內(nèi)存到內(nèi)存?zhèn)鬏?br/> DMA_Init(DMA1_Channel4?&DMA_InitStructure);??//根據(jù)DMA_InitStruct中指定的參數(shù)初始化DMA的通道USART1_Tx_DMA_Channel所標(biāo)識(shí)的寄存器
DMA_ITConfig(DMA1_Channel4DMA_IT_TCENABLE);??//配置DMA發(fā)送完成后產(chǎn)生中斷
USART_DMACmd(USART1USART_DMAReq_TxENABLE);
NVIC_Config();
}
//開啟一次DMA傳輸
void?MYDMA_Enable(void)
{
DMA_Cmd(DMA1_Channel4?DISABLE?);??//關(guān)閉USART1?TX?DMA1?所指示的通道??????
? DMA_SetCurrDataCounter(DMA1_Channel4SENDBUF_SIZE);//DMA通道的DMA緩存的大小
? DMA_Cmd(DMA1_Channel4?ENABLE);??//使能USART1?TX?DMA1?所指示的通道?
}
void?DMA1_Channel4_IRQHandler(void)
{
//判斷是否為DMA發(fā)送完成中斷
if(DMA_GetFlagStatus(DMA1_FLAG_TC4)==SET)?
{
//LED關(guān)閉??
LEDXToggle();
DMA_ClearFlag(DMA1_FLAG_TC4);?
}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????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個(gè)文件信息
評(píng)論
共有 條評(píng)論