Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Вопрос по DMA на STR911 (+)
Отправлено
VM 25 февраля 2009 г. 16:07
Настраиваю DMA на SSP. Один канал на прием, другой на передачу.
SSP - мастер, режим SPI.
Передавать - передает, принимать - никак!
Вот кусок кода:
DMA_StructInit(&DMA_InitStruct);
DMA_InitStruct.DMA_Channel_LLstItm=0;
DMA_InitStruct.DMA_Channel_SrcAdd=(u32)((&SSP0->DR));
DMA_InitStruct.DMA_Channel_DesAdd=(u32)(rdata);
DMA_InitStruct.DMA_Channel_SrcWidth= DMA_SrcWidth_Byte;
DMA_InitStruct.DMA_Channel_DesWidth= DMA_SrcWidth_Byte;
DMA_InitStruct.DMA_Channel_FlowCntrl= DMA_FlowCntrl2_DMA;
DMA_InitStruct.DMA_Channel_Src = DMA_DES_SSP0_RX;
DMA_InitStruct.DMA_Channel_TrsfSize =num;
DMA_ChannelDESIncConfig (DMA_Channel2, ENABLE);
DMA_Init(DMA_Channel2,&DMA_InitStruct);
DMA_ChannelCmd (DMA_Channel2,ENABLE);
DMA_InitStruct.DMA_Channel_SrcAdd=(u32)(wdata);
DMA_InitStruct.DMA_Channel_DesAdd=(u32)((&SSP0->DR));
DMA_InitStruct.DMA_Channel_SrcWidth= DMA_SrcWidth_Byte;
DMA_InitStruct.DMA_Channel_DesWidth= DMA_SrcWidth_Byte;
DMA_InitStruct.DMA_Channel_FlowCntrl= DMA_FlowCntrl1_DMA;
DMA_InitStruct.DMA_Channel_Src = 0;
DMA_InitStruct.DMA_Channel_Des = DMA_DES_SSP0_TX;
DMA_InitStruct.DMA_Channel_TrsfSize =num;
DMA_ChannelSRCIncConfig (DMA_Channel1, ENABLE);
DMA_Init(DMA_Channel1,&DMA_InitStruct);
DMA_ChannelCmd (DMA_Channel1,ENABLE);
Составить ответ | Вернуться на конференцию.
Ответы