stm32f4xx_spi.c ( File view )

  • By zhyunhao 2015-01-04
  • View(s):1009
  • Download(s):77
  • Point(s): 1
			/**
  ******************************************************************************
  * @file    stm32f4xx_spi.c
  * @author  MCD Application Team
  * @version V1.0.0
  * @date    30-September-2011
  * @brief   This file provides firmware functions to manage the following 
  *          functionalities of the Serial peripheral interface (SPI):
  *           - Initialization and Configuration
  *           - Data transfers functions
  *           - Hardware CRC Calculation
  *           - DMA transfers management
  *           - Interrupts and flags management 
  *           
  *  @verbatim
  *          
  *                    
  *          ===================================================================
  *                                 How to use this driver
  *          ===================================================================
  *    
  *          1. Enable peripheral clock using the following functions 
  *             RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE) for SPI1
  *             RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE) for SPI2
  *             RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI3, ENABLE) for SPI3.
  *
  *          2. Enable SCK, MOSI, MISO and NSS GPIO clocks using RCC_AHB1PeriphClockCmd()
  *             function.
  *             In I2S mode, if an external clock source is used then the I2S CKIN pin GPIO
  *             clock should also be enabled.
  *
  *          3. Peripherals alternate function: 
  *                 - Connect the pin to the desired peripherals' Alternate 
  *                   Function (AF) using GPIO_PinAFConfig() function
  *                 - Configure the desired pin in alternate function by:
  *                   GPIO_InitStruct->GPIO_Mode = GPIO_Mode_AF
  *                 - Select the type, pull-up/pull-down and output speed via 
  *                   GPIO_PuPd, GPIO_OType and GPIO_Speed members
  *                 - Call GPIO_Init() function
  *              In I2S mode, if an external clock source is used then the I2S CKIN pin
  *              should be also configured in Alternate function Push-pull pull-up mode. 
  *        
  *          4. Program the Polarity, Phase, First Data, Baud Rate Prescaler, Slave 
  *             Management, Peripheral Mode and CRC Polynomial values using the SPI_Init()
  *             function.
  *             In I2S mode, program the Mode, Standard, Data Format, MCLK Output, Audio 
  *             frequency and Polarity using I2S_Init() function.
  *             For I2S mode, make sure that either:
  *              - I2S PLL is configured using the functions RCC_I2SCLKConfig(RCC_I2S2CLKSource_PLLI2S), 
  *                RCC_PLLI2SCmd(ENABLE) and RCC_GetFlagStatus(RCC_FLAG_PLLI2SRDY).
  *              or 
  *              - External clock source is configured using the function 
  *                RCC_I2SCLKConfig(RCC_I2S2CLKSource_Ext) and after setting correctly the define constant
  *                I2S_EXTERNAL_CLOCK_VAL in the stm32f4xx_conf.h file. 
  *
  *          5. Enable the NVIC and the corresponding interrupt using the function 
  *             SPI_ITConfig() if you need to use interrupt mode. 
  *
  *          6. When using the DMA mode 
  *                   - Configure the DMA using DMA_Init() function
  *                   - Active the needed channel Request using SPI_I2S_DMACmd() function
  * 
  *          7. Enable the SPI using the SPI_Cmd() function or enable the I2S using
  *             I2S_Cmd().
  * 
  *          8. Enable the DMA using the DMA_Cmd() function when using DMA mode. 
  *
  *          9. Optionally, you can enable/configure the following parameters without
  *             re-initialization (i.e there is no need to call again SPI_Init() function):
  *              - When bidirectional mode (SPI_Direction_1Line_Rx or SPI_Direction_1Line_Tx)
  *                is programmed as Data direction parameter using the SPI_Init() function
  *                it can be possible to switch between SPI_Direction_Tx or SPI_Direction_Rx
  *                using the SPI_BiDirectionalLineConfig() function.
  *              - When SPI_NSS_Soft is selected as Slave Select Management parameter 
  *                using the SPI_Init() function it can be possible to manage the 
  *                NSS internal signal using the SPI_NSSInternalSoftwareConfig() function.
  *              - Reconfigure the data size using the SPI_DataSizeConfig() function  
  *              - Enable or disable the SS output using the SPI_SSOutputCmd() function  
  *          
  *          10. To use the CRC Hardware calculation feature refer to the Peripheral 
  *              CRC hardware Calculation subsection.
  *   
  *
  *          It is possible to use SPI in I2S full duplex mode, in this case, each SPI 
  *          peripheral is able to manage sending and receiving data simultaneously
  *          using two data lines. Each SPI peripheral has an extended block called I2Sxext
  *          (ie. I2S2ext for SPI2 and I2S3ext for SPI3).
  *          The extension block is not a full SPI IP, it is used only as I2S slave to
  *          implement full duplex mode. The extension block uses the same clock sources
  *          as its master.          
  *          To configure I2S full duplex you have to:
  *            
  *          1. Configure SPIx in I2S mode (I2S_Init() function) as described above. 
  *           
  *          2. Call the I2S_FullDuplexConfig() function using the same strucutre passed to  
  *             I2S_Init() function.
  *            
  *          3. Call I2S_Cmd() for SPIx then for its extended block.
  *          
  *          4. To configure interrupts or DMA requests and to get/clear flag status, 
  *             use I2Sxext instance for the extension block.
  *             
  *          Functions that can be called with I2Sxext instances are:
  *          I2S_Cmd(), I2S_FullDuplexConfig(), SPI_I2S_ReceiveData(), SPI_I2S_SendData(), 
  *          SPI_I2S_DMACmd(), SPI_I2S_ITConfig(), SPI_I2S_GetFlagStatus(), SPI_I2S_ClearFlag(),
  *          SPI_I2S_GetITStatus() and SPI_I2S_ClearITPendingBit().
  *                 
  *          Example: To use SPI3 in Full duplex mode (SPI3 is Master Tx, I2S3ext is Slave Rx):
  *            
  *          RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3, ENABLE);   
  *          I2S_StructInit(&I2SInitStruct);
  *          I2SInitStruct.Mode = I2S_Mode_MasterTx;     
  *          I2S_Init(SPI3, &I2SInitStruct);
  *          I2S_FullDuplexConfig(SPI3ext, &I2SInitStruct)
  *          I2S_Cmd(SPI3, ENABLE);
  *          I2S_Cmd(SPI3ext, ENABLE);
  *          ...
  *          while (SPI_I2S_GetFlagStatus(SPI2, SPI_FLAG_TXE) == RESET)
  *          {

}
  *          SPI_I2S_SendData(SPI3, txdata[i]);
  *          ...  
  *          while (SPI_I2S_GetFlagStatus(I2S3ext, SPI_FLAG_RXNE) == RESET)
  *          {

}
  *          rxdata[i] = SPI_I2S_ReceiveData(I2S3ext);
  *          ...          
  *              
  *     
  * @note    In I2S mode: if an external clock is used as source clock for the I2S,  
  *          then the define I2S_EXTERNAL_CLOCK_VAL in file stm32f4xx_conf.h should 
  *          be enabled and set to the value of the source clock frequency (in Hz).
  * 
  * @note    In SPI mode: To use the SPI TI mode, call the function SPI_TIModeCmd() 
  *          just after calling the function SPI_Init().
  *
  *  @endverbatim  
  *                                  
  ******************************************************************************
  * @attention
  *
  * 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.
  *
  * <h2><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h2>
  ******************************************************************************  
  */ 

/* Includes ------------------------------------------------------------------*/
#include "stm32f4xx_spi.h"
#include "stm32f4xx_rcc.h"

/** @addtogroup STM32F4xx_StdPeriph_Driver
  * @{

  */

/** @defgroup SPI 
  * @brief SPI driver modules
  * @{

  */ 

/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/

/* SPI registers Masks */
#define CR1_CLEAR_MASK            ((uint16_t)0x3040)
#define I2SCFGR_CLEAR_MASK        ((uint16_t)0xF040)

/* RCC PLLs masks */
#define PLLCFGR_PPLR_MASK         ((uint32_t)0x70000000)
#define PLLCFGR_PPLN_MASK         ((uint32_t)0x00007FC0)

#define SPI_CR2_FRF               ((uint16_t)0x0010)
#define SPI_SR_TIFRFE             ((uint16_t)0x0100)

/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/

/** @defgroup SPI_Private_Functions
  * @{

  */

/** @defgroup SPI_Group1 Initialization and Configuration functions
 *  @brief   Initialization and Configuration functions 
 *
@verbatim   
 ===============================================================================
                  Initialization and Configuration functions
 ===============================================================================  

  This section provides a set of functions allowing to initialize the SPI Direction,
  SPI Mode, SPI Data Size, SPI Polarity, SPI Phase, SPI NSS Management, SPI Baud
  Rate Prescaler, SPI First Bit and SPI CRC Polynomial.
  
  The SPI_Init() function follows the SPI configuration procedures for Master mo
...
...
(Not finished, please download and read the complete file)
			
...
Expand> <Close

Want complete source code? Download it here

Point(s): 1

Download
0 lines left, continue to read
Sponsored links

File list

Tips: You can preview the content of files by clicking file names^_^
Name Size Date
01.97 kB
Autoploit.pdf77.58 kB2013-02-21|20:43
Captain_F405.map339.77 kB2014-10-09|10:09
Captain_F405.plg75.58 kB2013-04-12|21:31
Captain_F405.sct479.00 B2013-03-05|13:51
Captain_F405.tra3.18 kB2013-03-05|14:44
Captain_F405.uvgui.Administrator682.33 kB2014-02-28|14:33
Captain_F405.uvgui.haoyun91.55 kB2014-12-28|17:15
Captain_F405.uvgui.ZhaoLong109.23 kB2014-10-09|10:16
Captain_F405.uvgui_Administrator.bak679.11 kB2014-02-27|12:40
Captain_F405.uvgui_haoyun.bak88.97 kB2014-12-28|17:13
Captain_F405.uvgui_ZhaoLong.bak106.65 kB2014-10-06|20:29
Captain_F405.uvopt29.78 kB2014-12-28|17:15
Captain_F405.uvproj24.15 kB2014-02-20|23:08
Captain_F405_Captain.dep43.10 kB2014-12-28|17:15
Captain_F405_Target79.00 B2013-03-05|12:09
Captain_F405_uvopt.bak29.78 kB2014-12-28|17:13
Captain_F405_uvproj.bak24.58 kB2013-12-24|16:53
01.97 kB
common.h847.00 B2014-02-20|22:47
datamap.h2.27 kB2013-12-14|13:44
fly_config.h1.29 kB2013-09-03|15:25
debug.ini112.00 B2012-12-03|19:51
ExtDll.iex19.00 B2013-03-05|14:23
01.97 kB
cc936.c707.25 kB2013-12-24|16:07
diskio.c4.79 kB2013-12-24|17:38
diskio.h1.82 kB2013-12-24|11:26
FAT_driver.c1.40 kB2013-12-25|13:38
FAT_driver.h444.00 B2013-12-24|14:12
ff.c139.67 kB2013-12-25|12:30
ff.h11.79 kB2013-12-25|12:30
ffconf.h7.45 kB2013-12-24|16:35
integer.h936.00 B2013-12-24|16:10
SD_card.h2.42 kB2013-12-24|11:26
SD_init.c7.96 kB2013-12-25|11:56
01.97 kB
01.97 kB
STM32ADC.c6.19 kB2012-12-03|20:45
STM32ADC.h415.00 B2013-03-05|12:15
01.97 kB
AT45DB.c16.05 kB2014-02-27|10:06
AT45DB.h3.24 kB2014-02-27|10:06
Autoploit.pdf77.58 kB2013-02-21|20:43
01.97 kB
GCS_Protocol.c18.85 kB2013-12-24|14:23
GCS_Protocol.h1.56 kB2013-12-09|13:19
01.97 kB
GPS.c15.68 kB2014-01-06|11:56
GPS.h1.40 kB2014-01-06|11:56
01.97 kB
HMC5883L.c10.59 kB2013-12-14|14:11
HMC5883L.h1.35 kB2013-05-28|11:44
01.97 kB
IMU.c10.80 kB2014-02-27|11:23
IMU.h620.00 B2013-12-14|13:54
01.97 kB
LED.c4.09 kB2013-12-18|20:30
LED.h1.02 kB2013-12-24|15:03
01.97 kB
LSM303D.c5.37 kB2014-02-27|11:36
LSM303D.h5.49 kB2014-02-26|22:21
01.97 kB
Fmath.c1.15 kB2013-09-02|22:02
Fmath.h589.00 B2012-09-17|22:46
01.97 kB
MAX21000.c2.97 kB2014-02-26|22:20
MAX21000.h452.00 B2014-02-26|22:20
01.97 kB
MPU6050.c11.41 kB2013-12-24|10:19
MPU6050.h14.56 kB2013-09-09|20:38
01.97 kB
MS5611.c11.44 kB2013-12-16|19:11
MS5611.h1.71 kB2013-09-02|21:00
01.97 kB
Pid.c3.45 kB2013-12-14|12:31
pid.h1.40 kB2014-02-27|11:16
01.97 kB
PWM_Input.c10.95 kB2013-09-02|20:20
PWM_Input.h817.00 B2013-03-05|12:16
01.97 kB
PWM_Output.c12.37 kB2013-12-24|14:23
PWM_Output.h1.90 kB2013-12-24|14:23
01.97 kB
Quadrotor.c20.75 kB2014-02-27|11:23
Quadrotor.h1.18 kB2013-12-16|21:00
01.97 kB
delay.c2.75 kB2013-12-09|14:32
delay.h285.00 B2013-03-05|12:18
IOI2C.c9.49 kB2012-11-16|09:37
IOI2C.h2.10 kB2013-03-05|12:18
SPI3.c3.16 kB2014-02-27|11:55
SPI3.h327.00 B2013-12-18|21:07
01.97 kB
UART1.c9.06 kB2013-12-16|20:54
UART1.h676.00 B2013-12-09|13:19
01.97 kB
Ultrasonic.c6.64 kB2013-12-18|20:16
Ultrasonic.h387.00 B2013-03-05|13:51
01.97 kB
OSQMem.c4.30 kB2013-12-09|13:46
OSQMem.h1,006.00 B2013-12-09|13:42
USART1ConFig.c12.31 kB2013-12-09|12:05
USART1DMATX.c7.08 kB2014-12-23|11:42
USART1DMATX.h697.00 B2013-12-09|13:48
JLinkLog.txt203.61 kB2014-09-30|11:55
JLinkSettings.ini573.00 B2013-03-05|13:51
01.97 kB
01.97 kB
01.97 kB
arm_common_tables.h1.09 kB2011-10-28|10:31
arm_math.h234.69 kB2011-10-28|10:31
core_cm0.h31.20 kB2011-10-28|10:31
core_cm3.h68.09 kB2011-10-28|10:31
core_cm4.h77.42 kB2011-10-28|10:31
core_cm4_simd.h23.42 kB2011-10-28|10:31
core_cmFunc.h15.32 kB2011-10-28|10:31
core_cmInstr.h15.73 kB2011-10-28|10:31
misc.h6.63 kB2011-10-28|10:31
stm32f4xx_adc.h31.66 kB2011-10-28|10:31
stm32f4xx_can.h26.55 kB2011-10-28|10:31
stm32f4xx_crc.h2.23 kB2011-10-28|10:31
stm32f4xx_cryp.h12.23 kB2011-10-28|10:31
stm32f4xx_dac.h14.47 kB2011-10-28|10:31
stm32f4xx_dbgmcu.h4.07 kB2011-10-28|10:31
stm32f4xx_dcmi.h12.54 kB2011-10-28|10:31
stm32f4xx_dma.h28.08 kB2011-10-28|10:31
stm32f4xx_exti.h7.70 kB2011-10-28|10:31
stm32f4xx_flash.h14.12 kB2011-10-28|10:31
stm32f4xx_fsmc.h26.41 kB2011-10-28|10:31
stm32f4xx_gpio.h17.16 kB2011-10-28|10:31
stm32f4xx_hash.h8.74 kB2011-10-28|10:31
stm32f4xx_i2c.h30.78 kB2011-10-28|10:31
stm32f4xx_iwdg.h4.09 kB2011-10-28|10:31
stm32f4xx_pwr.h5.88 kB2011-10-28|10:31
stm32f4xx_rcc.h24.16 kB2011-10-28|10:31
stm32f4xx_rng.h3.74 kB2011-10-28|10:31
stm32f4xx_rtc.h39.47 kB2011-10-28|10:31
stm32f4xx_sdio.h22.11 kB2011-10-28|10:31
stm32f4xx_spi.h20.17 kB2011-10-28|10:31
stm32f4xx_syscfg.h6.93 kB2011-10-28|10:31
stm32f4xx_tim.h50.35 kB2011-10-28|10:31
stm32f4xx_usart.h17.26 kB2011-10-28|10:31
stm32f4xx_wwdg.h3.33 kB2011-10-28|10:31
01.97 kB
misc.c11.05 kB2011-10-28|10:31
stm32f4xx_adc.c66.67 kB2011-10-28|10:31
stm32f4xx_can.c58.52 kB2011-10-28|10:31
stm32f4xx_crc.c3.38 kB2011-10-28|10:31
stm32f4xx_cryp.c31.82 kB2011-10-28|10:31
stm32f4xx_cryp_aes.c21.14 kB2011-10-28|10:31
stm32f4xx_cryp_des.c9.14 kB2011-10-28|10:31
stm32f4xx_cryp_tdes.c9.85 kB2011-10-28|10:31
stm32f4xx_dac.c26.36 kB2011-10-28|10:31
stm32f4xx_dbgmcu.c6.52 kB2011-10-28|10:31
stm32f4xx_dcmi.c18.42 kB2011-10-28|10:31
stm32f4xx_dma.c51.33 kB2011-10-28|10:31
stm32f4xx_exti.c9.98 kB2011-10-28|10:31
stm32f4xx_flash.c37.02 kB2011-10-28|10:31
stm32f4xx_fsmc.c40.78 kB2011-10-28|10:31
stm32f4xx_gpio.c20.53 kB2011-10-28|10:31
stm32f4xx_hash.c25.48 kB2011-10-28|10:31
stm32f4xx_hash_md5.c9.32 kB2011-10-28|10:31
stm32f4xx_hash_sha1.c9.51 kB2011-10-28|10:31
stm32f4xx_i2c.c51.45 kB2011-10-28|10:31
stm32f4xx_iwdg.c9.32 kB2011-10-28|10:31
stm32f4xx_pwr.c24.67 kB2011-10-28|10:31
stm32f4xx_rcc.c72.90 kB2011-10-28|10:31
stm32f4xx_rng.c13.68 kB2011-10-28|10:31
stm32f4xx_rtc.c101.15 kB2011-10-28|10:31
stm32f4xx_sdio.c38.77 kB2011-10-28|10:31
stm32f4xx_spi.c50.51 kB2011-10-28|10:31
stm32f4xx_syscfg.c7.30 kB2011-10-28|10:31
stm32f4xx_tim.c122.42 kB2011-10-28|10:31
stm32f4xx_usart.c55.35 kB2011-10-28|10:31
stm32f4xx_wwdg.c10.41 kB2011-10-28|10:31
01.97 kB
01.97 kB
at45db.crf456.46 kB2014-09-30|11:21
at45db.d2.91 kB2014-09-30|11:21
at45db.o500.02 kB2014-09-30|11:21
Captain_F405.axf660.84 kB2014-10-09|10:09
Captain_F405.hex166.59 kB2014-10-09|10:09
Captain_F405.htm203.60 kB2014-10-09|10:09
Captain_F405.lnp1.34 kB2014-10-09|10:09
Captain_F405.plg203.00 B2014-12-28|17:15
Captain_F405.sct479.00 B2013-04-12|20:18
Captain_F405.tra4.46 kB2014-10-09|10:09
cc936.crf6.64 kB2013-12-24|16:12
cc936.d132.00 B2013-12-24|16:12
cc936.o185.13 kB2013-12-24|16:12
cc936.__i943.00 B2013-12-24|16:12
delay.crf416.12 kB2014-09-30|11:22
delay.d1.73 kB2014-09-30|11:22
delay.o440.09 kB2014-09-30|11:22
diskio.crf425.14 kB2014-09-30|11:22
diskio.d1.87 kB2014-09-30|11:22
diskio.o451.17 kB2014-09-30|11:22
ExtDll.iex19.00 B2014-02-27|10:02
fat_driver.crf425.40 kB2014-09-30|11:22
fat_driver.d2.08 kB2014-09-30|11:22
fat_driver.o452.20 kB2014-09-30|11:22
ff.crf37.21 kB2014-09-30|11:22
ff.d199.00 B2014-09-30|11:22
ff.o98.88 kB2014-09-30|11:22
fmath.crf417.35 kB2014-09-30|11:22
fmath.d1.76 kB2014-09-30|11:22
fmath.o443.82 kB2014-09-30|11:22
gcs_protocol.crf460.35 kB2014-09-30|11:22
gcs_protocol.d3.53 kB2014-09-30|11:22
gcs_protocol.o497.80 kB2014-09-30|11:22
gps.crf456.10 kB2014-09-30|11:21
gps.d2.89 kB2014-09-30|11:21
gps.o499.18 kB2014-09-30|11:21
hmc5883l.crf455.14 kB2014-02-20|22:47
hmc5883l.d3.06 kB2014-02-20|22:47
hmc5883l.o498.88 kB2014-02-20|22:47
hmc5883l.__i990.00 B2014-02-20|22:47
imu.crf457.10 kB2014-09-30|11:21
imu.d2.77 kB2014-09-30|11:21
imu.o495.16 kB2014-09-30|11:21
ioi2c.crf421.17 kB2014-09-30|11:22
ioi2c.d1.78 kB2014-09-30|11:22
ioi2c.o459.73 kB2014-09-30|11:22
led.crf418.07 kB2014-09-30|11:21
led.d1.69 kB2014-09-30|11:21
led.o441.42 kB2014-09-30|11:21
lsm303d.crf453.87 kB2014-09-30|11:22
lsm303d.d3.03 kB2014-09-30|11:22
lsm303d.o488.79 kB2014-09-30|11:22
main.crf463.30 kB2014-09-30|11:21
main.d2.99 kB2014-09-30|11:21
main.o492.65 kB2014-09-30|11:21
max21000.crf453.19 kB2014-09-30|11:22
max21000.d3.09 kB2014-09-30|11:22
max21000.o483.38 kB2014-09-30|11:22
misc.crf416.02 kB2014-09-30|11:21
misc.d1.66 kB2014-09-30|11:21
misc.o440.02 kB2014-09-30|11:21
mpu6050.crf470.47 kB2014-02-20|22:47
mpu6050.d3.05 kB2014-02-20|22:47
mpu6050.o510.14 kB2014-02-20|22:47
mpu6050.__i985.00 B2014-02-20|22:47
ms5611.crf455.11 kB2014-09-30|11:21
ms5611.d2.91 kB2014-09-30|11:21
ms5611.o499.88 kB2014-09-30|11:21
osqmem.crf420.87 kB2014-09-30|11:22
osqmem.d1.82 kB2014-09-30|11:22
osqmem.o443.41 kB2014-09-30|11:22
pid.crf3.46 kB2014-09-30|11:22
pid.d84.00 B2014-09-30|11:22
pid.o24.76 kB2014-09-30|11:22
pwm_input.crf420.54 kB2014-09-30|11:21
pwm_input.d1.99 kB2014-09-30|11:21
pwm_input.o453.93 kB2014-09-30|11:21
pwm_output.crf458.55 kB2014-09-30|11:22
pwm_output.d3.32 kB2014-09-30|11:22
pwm_output.o490.34 kB2014-09-30|11:22
quadrotor.crf458.90 kB2014-09-30|11:22
quadrotor.d3.26 kB2014-09-30|11:22
quadrotor.o502.92 kB2014-09-30|11:22
sd_init.crf421.82 kB2014-09-30|11:22
sd_init.d1.83 kB2014-09-30|11:22
sd_init.o464.06 kB2014-09-30|11:22
spi3.crf452.77 kB2014-09-30|11:22
spi3.d2.79 kB2014-09-30|11:22
spi3.o479.34 kB2014-09-30|11:22
startup_stm32f4xx.d59.00 B2014-09-30|11:21
startup_stm32f4xx.o7.73 kB2014-09-30|11:21
stm32adc.crf416.63 kB2014-09-30|11:21
stm32adc.d1.84 kB2014-09-30|11:21
stm32adc.o444.02 kB2014-09-30|11:21
stm32f4xx_adc.crf422.59 kB2014-09-30|11:21
stm32f4xx_adc.d2.01 kB2014-09-30|11:21
stm32f4xx_adc.o487.58 kB2014-09-30|11:21
stm32f4xx_dbgmcu.crf415.63 kB2014-09-30|11:21
stm32f4xx_dbgmcu.d2.12 kB2014-09-30|11:21
stm32f4xx_dbgmcu.o440.03 kB2014-09-30|11:21
stm32f4xx_dcmi.crf417.75 kB2014-09-30|11:21
stm32f4xx_dcmi.d2.04 kB2014-09-30|11:21
stm32f4xx_dcmi.o453.16 kB2014-09-30|11:21
stm32f4xx_dma.crf422.48 kB2014-09-30|11:21
stm32f4xx_dma.d2.01 kB2014-09-30|11:21
stm32f4xx_dma.o461.39 kB2014-09-30|11:21
stm32f4xx_exti.crf416.59 kB2014-09-30|11:21
stm32f4xx_exti.d2.04 kB2014-09-30|11:21
stm32f4xx_exti.o444.07 kB2014-09-30|11:21
stm32f4xx_flash.crf420.54 kB2014-09-30|11:21
stm32f4xx_flash.d2.08 kB2014-09-30|11:21
stm32f4xx_flash.o475.34 kB2014-09-30|11:21
stm32f4xx_gpio.crf417.89 kB2014-09-30|11:21
stm32f4xx_gpio.d2.04 kB2014-09-30|11:21
stm32f4xx_gpio.o453.07 kB2014-09-30|11:21
stm32f4xx_it.crf415.49 kB2014-09-30|11:21
stm32f4xx_it.d1.97 kB2014-09-30|11:21
stm32f4xx_it.o444.81 kB2014-09-30|11:21
stm32f4xx_pwr.crf417.44 kB2014-09-30|11:21
stm32f4xx_pwr.d2.01 kB2014-09-30|11:21
stm32f4xx_pwr.o449.88 kB2014-09-30|11:21
stm32f4xx_rcc.crf424.55 kB2014-09-30|11:21
stm32f4xx_rcc.d2.01 kB2014-09-30|11:21
stm32f4xx_rcc.o495.22 kB2014-09-30|11:21
stm32f4xx_rng.crf415.92 kB2014-09-30|11:21
stm32f4xx_rng.d2.01 kB2014-09-30|11:21
stm32f4xx_rng.o443.76 kB2014-09-30|11:21
stm32f4xx_rtc.crf433.11 kB2014-09-30|11:21
stm32f4xx_rtc.d2.01 kB2014-09-30|11:21
stm32f4xx_rtc.o516.53 kB2014-09-30|11:21
stm32f4xx_sdio.crf419.94 kB2014-09-30|11:21
stm32f4xx_sdio.d2.04 kB2014-09-30|11:21
stm32f4xx_sdio.o474.00 kB2014-09-30|11:21
stm32f4xx_spi.crf420.43 kB2014-09-30|11:21
stm32f4xx_spi.d2.01 kB2014-09-30|11:21
stm32f4xx_spi.o468.64 kB2014-09-30|11:21
stm32f4xx_syscfg.crf416.09 kB2014-09-30|11:21
stm32f4xx_syscfg.d2.12 kB2014-09-30|11:21
stm32f4xx_syscfg.o441.90 kB2014-09-30|11:21
stm32f4xx_tim.crf435.53 kB2014-09-30|11:21
stm32f4xx_tim.d2.01 kB2014-09-30|11:21
stm32f4xx_tim.o563.30 kB2014-09-30|11:21
stm32f4xx_usart.crf420.95 kB2014-09-30|11:21
stm32f4xx_usart.d2.08 kB2014-09-30|11:21
stm32f4xx_usart.o474.46 kB2014-09-30|11:21
stm32f4xx_wwdg.crf416.16 kB2014-09-30|11:21
stm32f4xx_wwdg.d2.04 kB2014-09-30|11:21
stm32f4xx_wwdg.o443.88 kB2014-09-30|11:21
system_stm32f4xx.crf417.16 kB2014-09-30|11:21
system_stm32f4xx.d2.06 kB2014-09-30|11:21
system_stm32f4xx.o438.50 kB2014-09-30|11:21
uart1.crf455.77 kB2014-09-30|11:22
uart1.d2.97 kB2014-09-30|11:22
uart1.o490.19 kB2014-09-30|11:22
ultrasonic.crf420.98 kB2014-09-30|11:22
ultrasonic.d2.09 kB2014-09-30|11:22
ultrasonic.o451.47 kB2014-09-30|11:22
usart1dmatx.crf418.27 kB2014-09-30|11:22
usart1dmatx.d2.02 kB2014-09-30|11:22
usart1dmatx.o444.86 kB2014-09-30|11:22
Protel76.01 kB2013-11-26|21:29
01.97 kB
startup_stm32f4xx.s28.82 kB2011-10-28|10:31
system_stm32f4xx.c21.36 kB2013-06-17|19:09
system_stm32f4xx.h2.05 kB2011-10-28|10:31
startup_stm32f4xx.lst73.83 kB2014-09-30|11:21
01.97 kB
main.c9.82 kB2014-02-27|11:56
main.h1.86 kB2012-11-15|11:46
Read_Me.txt6.96 kB2013-12-16|21:46
stm32f4xx_conf.h3.71 kB2013-03-05|14:42
stm32f4xx_it.c4.34 kB2013-03-05|12:05
stm32f4xx_it.h2.00 kB2013-03-05|12:06
...
Sponsored links

stm32f4xx_spi.c (12.86 MB)

Need 1 point
Your Point(s)

Your Point isn't enough.

Get point immediately by PayPal

More(Debit card / Credit card / PayPal Credit / Online Banking)

Submit your source codes. Get more point

LOGIN

Don't have an account? Register now
Need any help?
Mail to: support@codeforge.com

切换到中文版?

CodeForge Chinese Version
CodeForge English Version

Where are you going?

^_^"Oops ...

Sorry!This guy is mysterious, its blog hasn't been opened, try another, please!
OK

Warm tip!

CodeForge to FavoriteFavorite by Ctrl+D