欢迎光临散文网 会员登陆 & 注册

STM32入门教程-2022持续更新中

2022-11-09 20:29 作者:AaaGss  | 我要投稿

想看SPI和汉字以及图片的去 我的B站,UID:626862190 看这期视频【SPI 0.96oled+字库图库制作】


DMA这里

/**先配置通道,传送时再写源地址、目的地址、传送大小,这样地址更灵活**/

void MyDMA_Init(void)

{

  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);

  DMA_InitTypeDef DMA_InitStructure;

  DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;

  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Enable;

  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;

  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;

  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;

  DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;

DMA_InitStructure.DMA_M2M = DMA_M2M_Enable;

  DMA_InitStructure.DMA_Priority = DMA_Priority_Low;

  DMA_Init(DMA1_Channel7,&DMA_InitStructure);

DMA_Cmd(DMA1_Channel7,DISABLE);

}


void MyDMA_StartTransfer(uint32_t AddrA,uint32_t AddrB,uint16_t Size)

{

DMA_Cmd(DMA1_Channel7,DISABLE);

  DMA1_Channel7->CPAR = AddrA;

DMA1_Channel7->CMAR = AddrB;

DMA_SetCurrDataCounter(DMA1_Channel7,Size);// 等同于DMA1_Channel7->CNDTR = Size;  

DMA_Cmd(DMA1_Channel7,ENABLE);

while(DMA_GetFlagStatus(DMA1_FLAG_TC7) == RESET);

DMA_ClearFlag(DMA1_FLAG_TC7);

}



STM32入门教程-2022持续更新中的评论 (共 条)

分享到微博请遵守国家法律