stm32f4xx_cryp.c ( File view )

  • By zhyunhao 2015-01-04
  • View(s):1009
  • Download(s):77
  • Point(s): 1
  * @file    stm32f4xx_cryp.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  Cryptographic processor (CRYP) peripheral:           
  *           - Initialization and Configuration functions
  *           - Data treatment functions 
  *           - Context swapping functions     
  *           - DMA interface function       
  *           - Interrupts and flags management       
  *  @verbatim
  *          ===================================================================      
  *                                 How to use this driver
  *          =================================================================== 
  *          1. Enable the CRYP controller clock using 
  *              RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_CRYP, ENABLE); function.
  *          2. Initialise the CRYP using CRYP_Init(), CRYP_KeyInit() and if 
  *             needed CRYP_IVInit(). 
  *          3. Flush the IN and OUT FIFOs by using CRYP_FIFOFlush() function.
  *          4. Enable the CRYP controller using the CRYP_Cmd() function. 
  *          5. If using DMA for Data input and output transfer, 
  *             Activate the needed DMA Requests using CRYP_DMACmd() function 
  *          6. If DMA is not used for data transfer, use CRYP_DataIn() and 
  *             CRYP_DataOut() functions to enter data to IN FIFO and get result
  *             from OUT FIFO.
  *          7. To control CRYP events you can use one of the following 
  *              two methods:
  *               - Check on CRYP flags using the CRYP_GetFlagStatus() function.  
  *               - Use CRYP interrupts through the function CRYP_ITConfig() at 
  *                 initialization phase and CRYP_GetITStatus() function into 
  *                 interrupt routines in processing phase.
  *          8. Save and restore Cryptographic processor context using  
  *             CRYP_SaveContext() and CRYP_RestoreContext() functions.     
  *          ===================================================================  
  *                Procedure to perform an encryption or a decryption
  *          ===================================================================  
  *      Initialization
  *      ===============  
  *     1. Initialize the peripheral using CRYP_Init(), CRYP_KeyInit() and 
  *        CRYP_IVInit functions:
  *        - Configure the key size (128-, 192- or 256-bit, in the AES only) 
  *        - Enter the symmetric key 
  *        - Configure the data type
  *        - In case of decryption in AES-ECB or AES-CBC, you must prepare 
  *          the key: configure the key preparation mode. Then Enable the CRYP 
  *          peripheral using CRYP_Cmd() function: the BUSY flag is set. 
  *          Wait until BUSY flag is reset : the key is prepared for decryption
  *       - Configure the algorithm and chaining (the DES/TDES in ECB/CBC, the 
  *          AES in ECB/CBC/CTR) 
  *       - Configure the direction (encryption/decryption).
  *       - Write the initialization vectors (in CBC or CTR modes only)
  *    2. Flush the IN and OUT FIFOs using the CRYP_FIFOFlush() function
  *    Basic Processing mode (polling mode) 
  *    ====================================  
  *    1. Enable the cryptographic processor using CRYP_Cmd() function.
  *    2. Write the first blocks in the input FIFO (2 to 8 words) using 
  *       CRYP_DataIn() function.
  *    3. Repeat the following sequence until the complete message has been 
  *       processed:
  *       a) Wait for flag CRYP_FLAG_OFNE occurs (using CRYP_GetFlagStatus() 
  *          function), then read the OUT-FIFO using CRYP_DataOut() function
  *          (1 block or until the FIFO is empty)
  *       b) Wait for flag CRYP_FLAG_IFNF occurs, (using CRYP_GetFlagStatus() 
  *          function then write the IN FIFO using CRYP_DataIn() function 
  *          (1 block or until the FIFO is full)
  *    4. At the end of the processing, CRYP_FLAG_BUSY flag will be reset and 
  *        both FIFOs are empty (CRYP_FLAG_IFEM is set and CRYP_FLAG_OFNE is 
  *        reset). You can disable the peripheral using CRYP_Cmd() function.
  *    Interrupts Processing mode 
  *    ===========================
  *    In this mode, Processing is done when the data are transferred by the 
  *    CPU during interrupts.
  *    1. Enable the interrupts CRYP_IT_INI and CRYP_IT_OUTI using 
  *       CRYP_ITConfig() function.
  *    2. Enable the cryptographic processor using CRYP_Cmd() function.
  *    3. In the CRYP_IT_INI interrupt handler : load the input message into the 
  *       IN FIFO using CRYP_DataIn() function . You can load 2 or 4 words at a 
  *       time, or load data until the IN FIFO is full. When the last word of
  *       the message has been entered into the IN FIFO, disable the CRYP_IT_INI 
  *       interrupt (using CRYP_ITConfig() function).
  *    4. In the CRYP_IT_OUTI interrupt handler : read the output message from 
  *       the OUT FIFO using CRYP_DataOut() function. You can read 1 block (2 or 
  *       4 words) at a time or read data until the FIFO is empty.
  *       When the last word has been read, INIM=0, BUSY=0 and both FIFOs are 
  *       empty (CRYP_FLAG_IFEM is set and CRYP_FLAG_OFNE is reset). 
  *       You can disable the CRYP_IT_OUTI interrupt (using CRYP_ITConfig() 
  *       function) and you can disable the peripheral using CRYP_Cmd() function.
  *    DMA Processing mode 
  *    ====================
  *    In this mode, Processing is done when the DMA is used to transfer the 
  *    data from/to the memory.
  *    1. Configure the DMA controller to transfer the input data from the 
  *       memory using DMA_Init() function. 
  *       The transfer length is the length of the message. 
  *       As message padding is not managed by the peripheral, the message 
  *       length must be an entire number of blocks. The data are transferred 
  *       in burst mode. The burst length is 4 words in the AES and 2 or 4 
  *       words in the DES/TDES. The DMA should be configured to set an 
  *       interrupt on transfer completion of the output data to indicate that 
  *       the processing is finished. 
  *       Refer to DMA peripheral driver for more details.  
  *    2. Enable the cryptographic processor using CRYP_Cmd() function. 
  *       Enable the DMA requests CRYP_DMAReq_DataIN and CRYP_DMAReq_DataOUT 
  *       using CRYP_DMACmd() function.
  *    3. All the transfers and processing are managed by the DMA and the 
  *       cryptographic processor. The DMA transfer complete interrupt indicates 
  *       that the processing is complete. Both FIFOs are normally empty and 
  *       CRYP_FLAG_BUSY flag is reset.
  *  @endverbatim
  * @attention
  * <h2><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h2>

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

/** @addtogroup STM32F4xx_StdPeriph_Driver
  * @{


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


/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
#define FLAG_MASK     ((uint8_t)0x20)
#define MAX_TIMEOUT   ((uint16_t)0xFFFF)

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

/** @defgroup CRYP_Private_Functions
  * @{


/** @defgroup CRYP_Group1 Initialization and Configuration functions
 *  @brief    Initialization and Configuration functions 
                      Initialization and Configuration functions
  This section provides functions allowing to 
   - Initialize the cryptographic Processor using CRYP_Init() function 
      -  Encrypt or Decrypt 
      -  mode : TDES-ECB, TDES-CBC, 
                DES-ECB, DES-CBC, 
                AES-ECB, AES-CBC, AES-CTR, AES-Key 
      - DataType :  32-bit data, 16-bit data, bit data or bit-string
      - Key Size (only in AES modes)
   - Configure the Encrypt or Decrypt Key using CRYP_KeyInit() function 
   - Configure the Initialization Vectors(IV) for CBC and CTR modes using 
     CRYP_IVInit() function.  
   - Flushes the IN and OUT FIFOs : using CRYP_FIFOFlush() function.                         
   - Enable or disable the CRYP Processor using CRYP_Cmd() function 
  * @{

  * @brief  Deinitializes the CRYP peripheral registers to their default reset values
  * @param  None
  * @retval None
void CRYP_DeInit(void)

  /* Enable CRYP reset state */
(Not finished, please download and read the complete file)
Expand> <Close

Want complete source code? Download it here

Point(s): 1

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_cryp.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


Don't have an account? Register now
Need any help?
Mail to:


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!

Warm tip!

CodeForge to FavoriteFavorite by Ctrl+D