From fe3b233de4b77a7fb00cd666e25d70f5b4ae97cd Mon Sep 17 00:00:00 2001 From: "chaos.proton@gmail.com" Date: Thu, 1 Dec 2011 10:00:20 +0000 Subject: [PATCH] set DMA_Configuration.DMA_BufferSize to 1 DMA_Init asserts DMA_BufferSize >=1. git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1822 bbd45198-f89e-11dd-88c7-29a3b14d5316 --- bsp/stm32f10x/usart.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bsp/stm32f10x/usart.c b/bsp/stm32f10x/usart.c index c4b2b757a8..17d0f4c241 100644 --- a/bsp/stm32f10x/usart.c +++ b/bsp/stm32f10x/usart.c @@ -239,8 +239,12 @@ static void DMA_Configuration(void) DMA_DeInit(UART3_TX_DMA); DMA_InitStructure.DMA_PeripheralBaseAddr = USART3_DR_Base; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST; + /* As we will set them before DMA actually enabled, the DMA_MemoryBaseAddr + * and DMA_BufferSize are meaningless. So just set them to proper values + * which could make DMA_Init happy. + */ DMA_InitStructure.DMA_MemoryBaseAddr = (u32)0; - DMA_InitStructure.DMA_BufferSize = 0; + DMA_InitStructure.DMA_BufferSize = 1; DMA_Init(UART3_TX_DMA, &DMA_InitStructure); DMA_ITConfig(UART3_TX_DMA, DMA_IT_TC | DMA_IT_TE, ENABLE); DMA_ClearFlag(DMA1_FLAG_TC2);