⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stm32f10x_i2c.lst

📁 编译环境是 iar EWARM ,STM32 下的UCOSII
💻 LST
📖 第 1 页 / 共 5 页
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.42A/W32 KICKSTART     26/Dec/2008  18:22:06 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  thumb                                                #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_i #
#                       2c.c                                                 #
#    Command line    =  F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_i #
#                       2c.c -lCN F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3 #
#                       210E-EVAL\IAR\OS-Probe\Flash\List\ -o                #
#                       F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\Flash\Obj\ -z6 --no_unroll --no_inline  #
#                       --no_tbaa --no_scheduling --debug --cpu_mode thumb   #
#                       --endian little --cpu cortex-M3 --stack_align 4 -e   #
#                       --fpu None --dlib_config "E:\Program Files\IAR       #
#                       Systems\Embedded Workbench 4.0                       #
#                       Kickstart\arm\LIB\dl7mptnnl8n.h" -I                  #
#                       F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\ -I F:\PROJECT\STM32_UCOSII\EvalBoards\ #
#                       ST\STM3210E-EVAL\IAR\OS-Probe\..\BSP\ -I             #
#                       F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\..\..\..\..\..\CPU\ST\STM32\inc\ -I     #
#                       F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\..\..\..\..\..\uC-CPU\ -I               #
#                       F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\..\..\..\..\..\uC-CPU\ARM-Cortex-M3\IAR #
#                       \ -I F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E- #
#                       EVAL\IAR\OS-Probe\..\..\..\..\..\uC-LCD\Source\ -I   #
#                       F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\..\..\..\..\..\uC-LIB\ -I               #
#                       F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\..\..\..\..\..\uCOS-II\Ports\ARM-Cortex #
#                       -M3\Generic\IAR\ -I F:\PROJECT\STM32_UCOSII\EvalBoar #
#                       ds\ST\STM3210E-EVAL\IAR\OS-Probe\..\..\..\..\..\uCOS #
#                       -II\Source\ -I F:\PROJECT\STM32_UCOSII\EvalBoards\ST #
#                       \STM3210E-EVAL\IAR\OS-Probe\..\..\..\..\..\uC-Probe\ #
#                       Target\Communication\Generic\RS-232\Source\ -I       #
#                       F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Communic #
#                       ation\Generic\RS-232\Ports\ST\STM32\ -I              #
#                       F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Communic #
#                       ation\Generic\Source\ -I F:\PROJECT\STM32_UCOSII\Eva #
#                       lBoards\ST\STM3210E-EVAL\IAR\OS-Probe\..\..\..\..\.. #
#                       \uC-Probe\Target\Plugins\uCOS-II\ -I "E:\Program     #
#                       Files\IAR Systems\Embedded Workbench 4.0             #
#                       Kickstart\arm\INC\"                                  #
#    List file       =  F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\Flash\List\stm32f10x_i2c.lst            #
#    Object file     =  F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\Flash\Obj\stm32f10x_i2c.r79             #
#                                                                            #
#                                                                            #
##############################################################################

F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_i2c.c
      1          /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
      2          * File Name          : stm32f10x_i2c.c
      3          * Author             : MCD Application Team
      4          * Version            : V2.0
      5          * Date               : 05/23/2008
      6          * Description        : This file provides all the I2C firmware functions.
      7          ********************************************************************************
      8          * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
      9          * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
     10          * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
     11          * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
     12          * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
     13          * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
     14          * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED 
     15          * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE.
     16          *******************************************************************************/
     17          
     18          /* Includes ------------------------------------------------------------------*/
     19          #include "stm32f10x_i2c.h"
     20          #include "stm32f10x_rcc.h"
     21          	 
     22          /* Private typedef -----------------------------------------------------------*/
     23          /* Private define ------------------------------------------------------------*/
     24          /* I2C SPE mask */
     25          #define CR1_PE_Set              ((u16)0x0001)
     26          #define CR1_PE_Reset            ((u16)0xFFFE)
     27          
     28          /* I2C START mask */
     29          #define CR1_START_Set           ((u16)0x0100)
     30          #define CR1_START_Reset         ((u16)0xFEFF)
     31          
     32          /* I2C STOP mask */
     33          #define CR1_STOP_Set            ((u16)0x0200)
     34          #define CR1_STOP_Reset          ((u16)0xFDFF)
     35          
     36          /* I2C ACK mask */
     37          #define CR1_ACK_Set             ((u16)0x0400)
     38          #define CR1_ACK_Reset           ((u16)0xFBFF)
     39          
     40          /* I2C ENGC mask */
     41          #define CR1_ENGC_Set            ((u16)0x0040)
     42          #define CR1_ENGC_Reset          ((u16)0xFFBF)
     43          
     44          /* I2C SWRST mask */
     45          #define CR1_SWRST_Set           ((u16)0x8000)
     46          #define CR1_SWRST_Reset         ((u16)0x7FFF)
     47          
     48          /* I2C PEC mask */
     49          #define CR1_PEC_Set             ((u16)0x1000)
     50          #define CR1_PEC_Reset           ((u16)0xEFFF)
     51          
     52          /* I2C ENPEC mask */
     53          #define CR1_ENPEC_Set           ((u16)0x0020)
     54          #define CR1_ENPEC_Reset         ((u16)0xFFDF)
     55          
     56          /* I2C ENARP mask */
     57          #define CR1_ENARP_Set           ((u16)0x0010)
     58          #define CR1_ENARP_Reset         ((u16)0xFFEF)
     59          
     60          /* I2C NOSTRETCH mask */
     61          #define CR1_NOSTRETCH_Set       ((u16)0x0080)
     62          #define CR1_NOSTRETCH_Reset     ((u16)0xFF7F)
     63          
     64          /* I2C registers Masks */
     65          #define CR1_CLEAR_Mask          ((u16)0xFBF5)
     66          
     67          /* I2C DMAEN mask */
     68          #define CR2_DMAEN_Set           ((u16)0x0800)
     69          #define CR2_DMAEN_Reset         ((u16)0xF7FF)
     70          
     71          /* I2C LAST mask */
     72          #define CR2_LAST_Set            ((u16)0x1000)
     73          #define CR2_LAST_Reset          ((u16)0xEFFF)
     74          
     75          /* I2C FREQ mask */
     76          #define CR2_FREQ_Reset          ((u16)0xFFC0)
     77          
     78          /* I2C ADD0 mask */
     79          #define OAR1_ADD0_Set           ((u16)0x0001)
     80          #define OAR1_ADD0_Reset         ((u16)0xFFFE)
     81          
     82          /* I2C ENDUAL mask */
     83          #define OAR2_ENDUAL_Set         ((u16)0x0001)
     84          #define OAR2_ENDUAL_Reset       ((u16)0xFFFE)
     85          
     86          /* I2C ADD2 mask */
     87          #define OAR2_ADD2_Reset         ((u16)0xFF01)
     88          
     89          /* I2C F/S mask */
     90          #define CCR_FS_Set              ((u16)0x8000)
     91          
     92          /* I2C CCR mask */
     93          #define CCR_CCR_Set             ((u16)0x0FFF)
     94          
     95          /* I2C FLAG mask */
     96          #define FLAG_Mask               ((u32)0x00FFFFFF)
     97          
     98          /* Private macro -------------------------------------------------------------*/
     99          /* Private variables ---------------------------------------------------------*/
    100          /* Private function prototypes -----------------------------------------------*/
    101          /* Private functions ---------------------------------------------------------*/
    102          
    103          /*******************************************************************************
    104          * Function Name  : I2C_DeInit
    105          * Description    : Deinitializes the I2Cx peripheral registers to their default
    106          *                  reset values.
    107          * Input          : - I2Cx: where x can be 1 or 2 to select the I2C peripheral.
    108          * Output         : None
    109          * Return         : None
    110          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    111          void I2C_DeInit(I2C_TypeDef* I2Cx)
    112          {
   \                     I2C_DeInit:
   \   00000000   00B5               PUSH     {LR}
    113            /* Check the parameters */
    114            assert_param(IS_I2C_ALL_PERIPH(I2Cx));
    115          
    116            switch (*(u32*)&I2Cx)
   \   00000002   0D49               LDR.N    R1,??I2C_DeInit_0  ;; 0x40005400
   \   00000004   8842               CMP      R0,R1
   \   00000006   03D0               BEQ.N    ??I2C_DeInit_1
   \   00000008   0C49               LDR.N    R1,??I2C_DeInit_0+0x4  ;; 0x40005800
   \   0000000A   8842               CMP      R0,R1
   \   0000000C   0AD0               BEQ.N    ??I2C_DeInit_2
   \   0000000E   00BD               POP      {PC}
    117            {
    118              case I2C1_BASE:
    119                /* Enable I2C1 reset state */
    120                RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, ENABLE);
   \                     ??I2C_DeInit_1:
   \   00000010   0121               MOVS     R1,#+1
   \   00000012   4805               LSLS     R0,R1,#+21
   \   00000014   ........           _BLF     RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
    121                /* Release I2C1 from reset state */
    122                RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, DISABLE);
   \   00000018   0021               MOVS     R1,#+0
   \   0000001A   5FF40010           MOVS     R0,#+2097152
   \   0000001E   ........           _BLF     RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
   \   00000022   00BD               POP      {PC}
    123                break;
    124          
    125              case I2C2_BASE:
    126                /* Enable I2C2 reset state */
    127                RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C2, ENABLE);
   \                     ??I2C_DeInit_2:
   \   00000024   0121               MOVS     R1,#+1
   \   00000026   8805               LSLS     R0,R1,#+22
   \   00000028   ........           _BLF     RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
    128                /* Release I2C2 from reset state */
    129                RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C2, DISABLE);
   \   0000002C   0021               MOVS     R1,#+0
   \   0000002E   5FF48000           MOVS     R0,#+4194304
   \   00000032   ........           _BLF     RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
    130                break;
    131          
    132              default:
    133                break;
    134            }
    135          }
   \   00000036   00BD               POP      {PC}             ;; return
   \                     ??I2C_DeInit_0:
   \   00000038   00540040           DC32     0x40005400
   \   0000003C   00580040           DC32     0x40005800
    136          
    137          /*******************************************************************************
    138          * Function Name  : I2C_Init
    139          * Description    : Initializes the I2Cx peripheral according to the specified 
    140          *                  parameters in the I2C_InitStruct.
    141          * Input          : - I2Cx: where x can be 1 or 2 to select the I2C peripheral.
    142          *                  - I2C_InitStruct: pointer to a I2C_InitTypeDef structure that
    143          *                    contains the configuration information for the specified
    144          *                    I2C peripheral.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -