Quantcast
Channel: MSP 低功耗微控制器论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 3634

UCA0--UART DMA发送无法触发,DMA接收可以

$
0
0

UCA0--UART DMA发送无法触发,DMA接收可以。

配置如下。不理解什么原因?

目前SPI用了通道0-1,正常 通道2用了UART接收。通道3配置如下,无法触发发送,只能使用UART_WRITE,或者UART_WRITEPOLLING。

{
DMA_initParam param = {0};
param.channelSelect = DMA_CHANNEL_3;
param.transferModeSelect = DMA_TRANSFER_SINGLE;
param.transferSize = len;
param.triggerSourceSelect = DMA_TRIGGERSOURCE_17;
param.transferUnitSelect = DMA_SIZE_SRCBYTE_DSTBYTE;
param.triggerTypeSelect = DMA_TRIGGER_HIGH;
DMA_init(&param);
/*
* Configure DMA channel 0
* Use ADC10_A Memory Buffer as source
* Increment destination address after every transfer
*/
DMA_setSrcAddress(DMA_CHANNEL_3,
(uint32_t)buf,
DMA_DIRECTION_INCREMENT);
/*
* Base Address for the DMA Module
* Configure DMA channel 0
* Use ADC_Result[0] as destination
* Increment destination address after every transfer
*/
DMA_setDstAddress(DMA_CHANNEL_3,
USCI_A_UART_getTransmitBufferAddressForDMA (USCI_A0_BASE),
DMA_DIRECTION_UNCHANGED);

//Enable DMA channel 0 interrupt
//DMA_disableTransfers(DMA_CHANNEL_3);
//DMA_clearInterrupt(DMA_CHANNEL_3);

DMA_enableInterrupt(DMA_CHANNEL_3);
//Enable transfers on DMA channel 0
DMA_enableTransfers(DMA_CHANNEL_3);

DMA_startTransfer(DMA_CHANNEL_3);

}


Viewing all articles
Browse latest Browse all 3634

Trending Articles