STM32F0xx Standard Peripherals Firmware Library: Communication between two USART using DMA example

STM32F0xx Standard Peripherals Library

Communication between two USART using DMA example
  ******************** (C) COPYRIGHT 2014 STMicroelectronics *******************
  * @file    DMA/DMA_USARTTransfer/readme.txt 
  * @author  MCD Application Team
  * @version V1.4.0
  * @date    24-July-2014
  * @brief   Description of the USART Communication Data Exchange using DMA example.
  ******************************************************************************
  *
  * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
  * You may not use this file except in compliance with the License.
  * You may obtain a copy of the License at:
  *
  *        http://www.st.com/software_license_agreement_liberty_v2
  *
  * Unless required by applicable law or agreed to in writing, software 
  * distributed under the License is distributed on an "AS IS" BASIS, 
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
  ******************************************************************************
   
Example Description

This example provides a basic communication between USART1 and USART2 using DMA2 capability.

First, the DMA transfers data from TxBuffer2 buffer to USART2 Transmit data register, then this data is sent to USART1. Data received by USART1 is transferred by DMA and stored in RxBuffer1 then compared with the send ones and the result of this comparison is stored in the "TransferStatus1" variable.

In the same time, the DMA transfers data from TxBuffer1 buffer to USART1 Transmit data register, then this data is sent to USART2. Data received by USART2 is transferred by DMA and stored in RxBuffer2 then compared with the send ones and the result of this comparison is stored in the "TransferStatus2" variable.

USART1 and USART2 configured as follow:

  • BaudRate = 9600
  • Word Length = USART_WordLength_7b
  • Stop Bit = USART_StopBits_1
  • Parity = USART_Parity_No
  • Hardware flow control disabled (RTS and CTS signals)
  • Receive and transmit enabled
Directory contents
Note:
The "system_stm32f0xx.c" is generated by an automatic clock configuration tool and can be easily customized to meet user application requirements. To select different clock setup, use the "STM32F0xx_Clock_Configuration_VX.Y.Z.xls" provided with the AN4055 package available on ST Microcontrollers
Hardware and Software environment
  • This example runs on STM32F0xx devices.
  • This example has been tested with STMicroelectronics STM32091C-EVAL including respectively STM32F091VCT6 devices and can be easily tailored to any other supported device and development board
  • STM32091C-EVAL Set-up
    • Connect USART1 TX pin (PA.09) to USART2 RX pin (PD.06)
    • Connect USART1 RX pin (PA.10) to USART2 TX pin (PD.05)
How to use it ?

In order to make the program work, you must do the following :

  • Copy all source files from this example folder to the template folder under Project
  • Open your preferred toolchain
  • If the used device is STM32F091VCT6 choose STM32F091 project
  • Rebuild all files and load your image into target memory
  • Run the example

© COPYRIGHT STMicroelectronics

STM32L1xx Standard Peripherals Library: Footer

 

 

 For complete documentation on STM32 Microcontrollers visit www.st.com/STM32