DMA_SPI

所属分类:处理器开发
开发工具:C/C++
文件大小:767KB
下载次数:822
上传日期:2010-09-24 13:22:13
上 传 者sddp001
说明:  ,STM32F10X DMA SPI操作,STM32例程包之一
(, STM32F10X DMA SPI operation, STM32 routine one package)

文件列表:
DMA_SPI\MDK_prj\Output\DMA_SPI.plg (229, 2009-12-20)
DMA_SPI\MDK_prj\Output\cortexm3_macro.o (2392, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_vector.o (5672, 2009-12-15)
DMA_SPI\MDK_prj\Output\main.d (636, 2009-12-15)
DMA_SPI\MDK_prj\Output\main.crf (230973, 2009-12-15)
DMA_SPI\MDK_prj\Output\main.o (238588, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_it.d (745, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_it.crf (229392, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_it.o (244164, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_lib.d (727, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_lib.crf (226316, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_lib.o (230016, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_dma.d (418, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_dma.crf (209364, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_dma.o (210420, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_rcc.d (357, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_rcc.crf (207685, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_rcc.o (208348, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_spi.d (418, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_spi.crf (211384, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_spi.o (212428, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_nvic.d (365, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_nvic.crf (203085, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_nvic.o (207000, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_gpio.d (427, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_gpio.crf (209161, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_gpio.o (210360, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_flash.d (373, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_flash.crf (193089, 2009-12-15)
DMA_SPI\MDK_prj\Output\stm32f10x_flash.o (190252, 2009-12-15)
DMA_SPI\MDK_prj\Output\DMA_SPI.tra (1789, 2009-12-15)
DMA_SPI\MDK_prj\Output\DMA_SPI.sct (479, 2009-12-15)
DMA_SPI\MDK_prj\Output\DMA_SPI.lnp (546, 2009-12-15)
DMA_SPI\MDK_prj\Output\DMA_SPI.htm (58906, 2009-12-15)
DMA_SPI\MDK_prj\Output\DMA_SPI.axf (279844, 2009-12-15)
DMA_SPI\MDK_prj\Output\ExtDll.iex (19, 2009-12-20)
DMA_SPI\MDK_prj\Src\cortexm3_macro.s (10308, 2008-09-21)
DMA_SPI\MDK_prj\Src\stm32f10x_vector.s (12871, 2008-09-21)
DMA_SPI\MDK_prj\Src\lcd.c (6763, 2007-09-27)
DMA_SPI\MDK_prj\Src\lcd.h (1849, 2007-09-25)
... ...

/******************** (C) COPYRIGHT 2008 STMicroelectronics ******************** * File Name : readme.txt * Author : MCD Application Team * Version : V2.0.3 * Date : 09/22/2008 * Description : Description of the DMA SPI example. ******************************************************************************** * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. *******************************************************************************/ Example description =================== This example provides a description of how to use four DMA channels to transfer a data buffer from memory to SPI2 through SPI1 and a second data buffer from memory to SPI1 through SPI2 in ful-duplex mode. The NSS pins are configured by software to set SPI1 as master and SPI2 as slave. DMA1 Channel2 and Channel4 are configured to store, respectively, the data received by SPI1 into the SPI1_Buffer_Rx and the data received by SPI2 into the SPI2_Buffer_Rx. DMA1 Channel3 is configured to transfer data from the SPI1_Buffer_Tx to the SPI1_DR register for transmission to SPI2. DMA1 Channel5 is configured to transfer data from the SPI2_Buffer_Tx to the SPI2_DR register for transmission to SPI1. As soon as the two SPIs TxDMAEN and RxDMAEN bits are set in the SPI1_CR2 and SPI2_CR2 registers, DMA1 Channel3 and Channel5 start transmitting, respectively, the SPI1 and SPI2 Tx buffers at the same time. At the same moment, the data received on SPI1 and SPI2 are stored by DMA1 Channel2 and Channel4 to the SPI1 and SPI2 Rx buffers, respectively. A polling on all Transfer complete flags are done for all used DMA channels to check the end of all DMA channels transfers. The last received data on SPI1 and SPI2 are the CRC values sent by each SPI to the other. The transmitted and received buffers are compared to check that all data have been correctly transferred. 本例展示了如何利用4个DMA通道来实现把内存中4块数据两两通过SPI1和SPI2交换。 即SPI1 Tx buffer中的数据由DMA传送至SPI1发送端发送至SPI2,再由DMA从SPI2接收端传送至SPI2 Rx buffer。 SPI2 Tx buffer中的数据也由同样的方法传送到SPI1 Rx buffer。 在本例中SPI1工作在主模式(master)而SPI2工作在从模式(slave)。 SPI1的NSS管脚由软件配置。DMA通道2用来把SPI1接收到的数据传送进SPI1 Rx buffer; DMA通道4用来把SPI2接收到的数据传送进SPI2 Rx buffer。相应的DMA通道3用来把SPI1 Tx buffer中的待发送数据送进SPI1发送端, DMA通道5用来把SPI2 Tx buffer中的待发送数据送进SPI2发送端。 一旦SPI1_CR2和SPI2_CR2两寄存器中的TxDMAEN 和 RxDMAEN比特被置一,传送就会开始。 传送结束以后,程序会比较SPI1 Tx buffer和SPI2 Rx buffer以及SPI2 Tx buffer和SPI1 Rx buffer中的数据。 在STM3210B_LK1开发板上,当接收缓冲区和发送缓冲区的数据比较正确之后,开发板上的四个指示灯闪亮,反之,指示灯流水灯亮。 Directory contents ================== stm32f10x_conf.h Library Configuration file stm32f10x_it.c Interrupt handlers stm32f10x_it.h Interrupt handlers header file main.c Main program Hardware environment ==================== This example runs on STMicroelectronics STM3210B-EVAL and STM3210E-EVAL evaluation boards and can be easily tailored to any other hardware. - Connect SPI1 SCK pin (PA.05) to SPI2 SCK pin (PB.13) - Connect SPI1 MISO pin (PA.06) to SPI2 MISO pin (PB.14) - Connect SPI1 MOSI pin (PA.07) to SPI2 MOSI pin (PB.15) Note: in STM3210E-EVAL board, the jumper 14 (USB Disconnect) must be set in position 1<->2 in order to not interfer with SPI2 MISO pin PB14. 本例程可以运行在 STM3210B-LK1 , STM3210B-EVAL 和 STM3210E-EVAL 开发板上,并可以轻松移植到其他开发板。 - 连接 SPI1 SCK pin (PA.05) to SPI2 SCK pin (PB.13) - 连接 SPI1 MISO pin (PA.06) to SPI2 MISO pin (PB.14) - 连接 SPI1 MOSI pin (PA.07) to SPI2 MOSI pin (PB.15) How to use it ============= In order to make the program work, you must do the following : - Create a project and setup all your toolchain's start-up files - Compile the directory content files and required Library files : + stm32f10x_lib.c + stm32f10x_dma.c + stm32f10x_rcc.c + stm32f10x_spi.c + stm32f10x_nvic.c + stm32f10x_gpio.c + stm32f10x_flash.c - Link all compiled files and load your image into target memory - Run the example ******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE******

近期下载者

相关文件


收藏者