• STM32 之 DMA


    //时钟配置
    void
    RCC_Configuartion(void) { RCC_APB2PeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE);//打开DMA1时钟 } //中断管理配置 void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; #ifdef VECT_TAB_RAM NVIC_SetVectorTable(NVIC_VectTab_RAM,0x0); #else NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0); #endif NVIC_InitStructure.NVIC_IRQChannel=DMA1_Channel6_IRQ; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure); }
    //DMA配置
    void DMA_Configuration(void) { DMA_InitTypeDef DMA_InitStructure; DMA_Init(DMA_Channel6); DMA_InitStructure.DMA_PeripheralBaseAddr=(u32) SRC_Const_Buffer; DMA_InitStructure.MDA_MemoryBaseAddr=(u32)DST_Buffer; DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralSRC; DMA_InitStructure.DMA_BufferSize=BufferSize;//32 DMA_InitStructure.DMA_PeripheralInc=DMA_PeripherialInc_Enable; DMA_InitStructure.DMA_MemoryInc=DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize=DMA_PeripheralDataSize_Word; DMA_InitStructure.DMA_MemoryDataSize=DMA_MemoryDataSize_Word; DMA_InitStructure.DMA_Mode=DMA_Priority=DMA_Mode_Normal; DMA_InitStructure.DMA_Priority=DMA_Priority_High; DMA_InitStructure.DMA_M2M=DMA_M2M_Enable; DMA_Init(DMA1_Chanel6,&DMA_InitStructure); DMA_ITConfig(DMA1_Channel6,DMA_IT_TC,ENABLE);//开启DMA完成中断 CurrDataCounter=DMA_GetCurrDataCounter(DMA1_Channel6);//读出当前数据量计数值 }
    //中断函数入口
    void DMA1_Channel6_IRQHandler(void) { CurrDataCounterDMA_GetCurrData_Counter(DMA1_Channel6); DMA_ClearITPendingBit(DMA1_IT_GL6); }
  • 相关阅读:
    [置顶] 呼~~~~--历时几个星期终于搞好了HTTPS协议---阿里云
    云数据库连接权限等
    Developer连接Oracle报错“ORA-12541
    VUE项目使用
    数据库优化面试内容
    CentOS配置svn
    老年痴呆博客引导
    日常问题记录
    Spring项目定时任务
    程序员逻辑思维题解答;
  • 原文地址:https://www.cnblogs.com/yeshuimaowei/p/5157316.html
Copyright © 2020-2023  润新知