找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3259|回復: 0
收起左側

STM32學習之使用DMA發(fā)送USART數(shù)據(jù)

[復制鏈接]
ID:75926 發(fā)表于 2015-4-10 17:34 | 顯示全部樓層 |閱讀模式
我這里配置DMA USART傳輸數(shù)據(jù)

void DMA_Configuration()
{
       DMA_InitTypeDef      DMA_InitStructure;//定義設置DMA的結構體
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE);//使能DMA1的時鐘
DMA_InitStructure.DMA_PeripheralBaseAddr= (unsigned int)&USART1->DR;//取USART->DR的地址為傳輸目的地
DMA_InitStructure.DMA_MemoryBaseAddr= (u32)a;//取a數(shù)組的地址為起始地
DMA_InitStructure.DMA_DIR= DMA_DIR_PeripheralDST;//設置外設作為數(shù)據(jù)傳輸?shù)哪康牡?/div>
DMA_InitStructure.DMA_BufferSize= 40;//設置DMA緩存
DMA_InitStructure.DMA_PeripheralInc= DMA_PeripheralInc_Disable;//設置外設地址不增
       DMA_InitStructure.DMA_MemoryInc= DMA_MemoryInc_Enable;//設置內存地址自增
DMA_InitStructure.DMA_PeripheralDataSize= DMA_PeripheralDataSize_Byte;//設置外設的傳輸數(shù)據(jù)寬度 這里為1個字節(jié)
DMA_InitStructure.DMA_MemoryDataSize= DMA_MemoryDataSize_Byte;    //設置內存的數(shù)據(jù)寬度為 1個字節(jié)
DMA_InitStructure.DMA_Mode= DMA_Mode_Circular;       //設置DMA為循環(huán)傳輸模式
DMA_InitStructure.DMA_Priority= DMA_Priority_Medium;//
DMA_InitStructure.DMA_M2M= DMA_M2M_Disable;//設置DMA通道的優(yōu)先級
DMA_Init(DMA1_Channel4,&DMA_InitStructure);//設置使用DMA1的第四通道為數(shù)據(jù)傳輸通道
DMA_Cmd (DMA1_Channel4,ENABLE);       //使能DMA
}
USART1也要設置過;
調用      USART_DMACmd(USART1,USART_DMAReq_Tx, ENABLE); 函數(shù)即可從發(fā)送數(shù)據(jù)這是CPU是空閑的


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表