Хочу организовать пересылку данных из памяти в SPI через DMA по приходу внешнего DMA запроса
Ничего не выходит... Просветите, в чем косяк
Данные для пересылки храняться в массиве SSP1_Buffer_Tx, запрос приходит на ногу P0.3
Код
// Конфигурим ногу для внешнего DMA запроса
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStruct.GPIO_Direction = GPIO_PinInput;
//GPIO_InitStruct.GPIO_Type= GPIO_Type_PushPull;
GPIO_InitStruct.GPIO_IPConnected = GPIO_IPConnected_Enable;
GPIO_InitStruct.GPIO_Alternate= GPIO_InputAlt1;
GPIO_Init (GPIO3, &GPIO_InitStruct);
// Конфигурим DMA
DMA_DeInit();
DMA_StructInit(&DMA_InitStruct);
DMA_InitStruct.DMA_Channel_LLstItm= 0;
DMA_InitStruct.DMA_Channel_SrcAdd= (u32)&SSP1_Buffer_Tx;
DMA_InitStruct.DMA_Channel_DesAdd=(u32)(&SSP1->DR);
DMA_InitStruct.DMA_Channel_SrcWidth= DMA_SrcWidth_HalfWord;
DMA_InitStruct.DMA_Channel_DesWidth= DMA_DesWidth_HalfWord;
DMA_InitStruct.DMA_Channel_DesBstSize = DMA_DesBst_1Data;
DMA_InitStruct.DMA_Channel_FlowCntrl= DMA_FlowCntrl1_DMA;
DMA_InitStruct.DMA_Channel_Des = DMA_SRC_External_Req0;
DMA_InitStruct.DMA_Channel_TrsfSize = 16;
DMA_Init(DMA_Channel0,&DMA_InitStruct);
DMA_ChannelSRCIncConfig (DMA_Channel0, ENABLE);
DMA_ChannelDESIncConfig (DMA_Channel0, ENABLE);
DMA_ITConfig(DMA_Channel0, ENABLE);
DMA_ITMaskConfig(DMA_Channel0, DMA_ITMask_ITC, ENABLE);
DMA_ChannelCmd (DMA_Channel0,ENABLE);
DMA_Cmd(ENABLE);