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

📄 stm32f10x_i2c.lst

📁 stm32+ucos-ii
💻 LST
📖 第 1 页 / 共 5 页
字号:
###############################################################################
#                                                                             #
# IAR ANSI C/C++ Compiler V6.10.2.52244/W32 for ARM     07/Aug/2011  12:10:18 #
# Copyright 1999-2010 IAR Systems AB.                                         #
#                                                                             #
#    Cpu mode     =  thumb                                                    #
#    Endian       =  little                                                   #
#    Source file  =  F:\stm32\我的程序\Micrium\Software\EWARM\BSP\ST\STM32F10 #
#                    x_StdPeriph_Driver\src\stm32f10x_i2c.c                   #
#    Command line =  F:\stm32\我的程序\Micrium\Software\EWARM\BSP\ST\STM32F10 #
#                    x_StdPeriph_Driver\src\stm32f10x_i2c.c -D                #
#                    USE_STDPERIPH_DRIVER -D STM32F10X_CL -lCN                #
#                    F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Flash\Lis #
#                    t\ -o F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Fla #
#                    sh\Obj\ --no_cse --no_unroll --no_inline                 #
#                    --no_code_motion --no_tbaa --no_clustering               #
#                    --no_scheduling --debug --endian=little --cpu=Cortex-M3  #
#                    -e --fpu=None --dlib_config                              #
#                    D:\arm\INC\c\DLib_Config_Normal.h -I                     #
#                    F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\APP\ -I   #
#                    F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\   #
#                    -I F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP #
#                    \ST\CMSIS\CM3\CoreSupport\ -I                            #
#                    F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\ST #
#                    \CMSIS\CM3\DeviceSupport\ST\STM32F10x\ -I                #
#                    F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\ST #
#                    \STM32F10x_StdPeriph_Driver\inc\ -I                      #
#                    F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\uC #
#                    OS-II\ -I F:\stm32\我的程序\Micrium\Software\EWARM\OS-II #
#                    \..\..\uCOS-II\Ports\ARM-Cortex-M3\Generic\IAR\ -I       #
#                    F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\..\uCO #
#                    S-II\Source\ -I F:\stm32\我的程序\Micrium\Software\EWARM #
#                    \OS-II\..\..\uC-LIB\ -I F:\stm32\我的程序\Micrium\Softwa #
#                    re\EWARM\OS-II\..\..\uC-LIB\Ports\ARM-Cortex-M3\IAR\ -I  #
#                    F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\..\uC- #
#                    CPU\ -I F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\. #
#                    .\..\uC-CPU\ARM-Cortex-M3\IAR\ -On --use_c++_inline      #
#    List file    =  F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Flash\Lis #
#                    t\stm32f10x_i2c.lst                                      #
#    Object file  =  F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Flash\Obj #
#                    \stm32f10x_i2c.o                                         #
#                                                                             #
#                                                                             #
###############################################################################

F:\stm32\我的程序\Micrium\Software\EWARM\BSP\ST\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c
      1          /**
      2            ******************************************************************************
      3            * @file    stm32f10x_i2c.c
      4            * @author  MCD Application Team
      5            * @version V3.4.0
      6            * @date    10/15/2010
      7            * @brief   This file provides all the I2C firmware functions.
      8            ******************************************************************************
      9            * @copy
     10            *
     11            * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
     12            * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
     13            * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
     14            * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
     15            * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
     16            * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
     17            *
     18            * <h2><center>&copy; COPYRIGHT 2010 STMicroelectronics</center></h2>
     19            */ 
     20          
     21          /* Includes ------------------------------------------------------------------*/
     22          #include "stm32f10x_i2c.h"
     23          #include "stm32f10x_rcc.h"
     24          
     25          
     26          /** @addtogroup STM32F10x_StdPeriph_Driver
     27            * @{
     28            */
     29          
     30          /** @defgroup I2C 
     31            * @brief I2C driver modules
     32            * @{
     33            */ 
     34          
     35          /** @defgroup I2C_Private_TypesDefinitions
     36            * @{
     37            */
     38          
     39          /**
     40            * @}
     41            */
     42          
     43          /** @defgroup I2C_Private_Defines
     44            * @{
     45            */
     46          
     47          /* I2C SPE mask */
     48          #define CR1_PE_Set              ((uint16_t)0x0001)
     49          #define CR1_PE_Reset            ((uint16_t)0xFFFE)
     50          
     51          /* I2C START mask */
     52          #define CR1_START_Set           ((uint16_t)0x0100)
     53          #define CR1_START_Reset         ((uint16_t)0xFEFF)
     54          
     55          /* I2C STOP mask */
     56          #define CR1_STOP_Set            ((uint16_t)0x0200)
     57          #define CR1_STOP_Reset          ((uint16_t)0xFDFF)
     58          
     59          /* I2C ACK mask */
     60          #define CR1_ACK_Set             ((uint16_t)0x0400)
     61          #define CR1_ACK_Reset           ((uint16_t)0xFBFF)
     62          
     63          /* I2C ENGC mask */
     64          #define CR1_ENGC_Set            ((uint16_t)0x0040)
     65          #define CR1_ENGC_Reset          ((uint16_t)0xFFBF)
     66          
     67          /* I2C SWRST mask */
     68          #define CR1_SWRST_Set           ((uint16_t)0x8000)
     69          #define CR1_SWRST_Reset         ((uint16_t)0x7FFF)
     70          
     71          /* I2C PEC mask */
     72          #define CR1_PEC_Set             ((uint16_t)0x1000)
     73          #define CR1_PEC_Reset           ((uint16_t)0xEFFF)
     74          
     75          /* I2C ENPEC mask */
     76          #define CR1_ENPEC_Set           ((uint16_t)0x0020)
     77          #define CR1_ENPEC_Reset         ((uint16_t)0xFFDF)
     78          
     79          /* I2C ENARP mask */
     80          #define CR1_ENARP_Set           ((uint16_t)0x0010)
     81          #define CR1_ENARP_Reset         ((uint16_t)0xFFEF)
     82          
     83          /* I2C NOSTRETCH mask */
     84          #define CR1_NOSTRETCH_Set       ((uint16_t)0x0080)
     85          #define CR1_NOSTRETCH_Reset     ((uint16_t)0xFF7F)
     86          
     87          /* I2C registers Masks */
     88          #define CR1_CLEAR_Mask          ((uint16_t)0xFBF5)
     89          
     90          /* I2C DMAEN mask */
     91          #define CR2_DMAEN_Set           ((uint16_t)0x0800)
     92          #define CR2_DMAEN_Reset         ((uint16_t)0xF7FF)
     93          
     94          /* I2C LAST mask */
     95          #define CR2_LAST_Set            ((uint16_t)0x1000)
     96          #define CR2_LAST_Reset          ((uint16_t)0xEFFF)
     97          
     98          /* I2C FREQ mask */
     99          #define CR2_FREQ_Reset          ((uint16_t)0xFFC0)
    100          
    101          /* I2C ADD0 mask */
    102          #define OAR1_ADD0_Set           ((uint16_t)0x0001)
    103          #define OAR1_ADD0_Reset         ((uint16_t)0xFFFE)
    104          
    105          /* I2C ENDUAL mask */
    106          #define OAR2_ENDUAL_Set         ((uint16_t)0x0001)
    107          #define OAR2_ENDUAL_Reset       ((uint16_t)0xFFFE)
    108          
    109          /* I2C ADD2 mask */
    110          #define OAR2_ADD2_Reset         ((uint16_t)0xFF01)
    111          
    112          /* I2C F/S mask */
    113          #define CCR_FS_Set              ((uint16_t)0x8000)
    114          
    115          /* I2C CCR mask */
    116          #define CCR_CCR_Set             ((uint16_t)0x0FFF)
    117          
    118          /* I2C FLAG mask */
    119          #define FLAG_Mask               ((uint32_t)0x00FFFFFF)
    120          
    121          /* I2C Interrupt Enable mask */
    122          #define ITEN_Mask               ((uint32_t)0x07000000)
    123          
    124          /**
    125            * @}
    126            */
    127          
    128          /** @defgroup I2C_Private_Macros
    129            * @{
    130            */
    131          
    132          /**
    133            * @}
    134            */
    135          
    136          /** @defgroup I2C_Private_Variables
    137            * @{
    138            */
    139          
    140          /**
    141            * @}
    142            */
    143          
    144          /** @defgroup I2C_Private_FunctionPrototypes
    145            * @{
    146            */
    147          
    148          /**
    149            * @}
    150            */
    151          
    152          /** @defgroup I2C_Private_Functions
    153            * @{
    154            */
    155          
    156          /**
    157            * @brief  Deinitializes the I2Cx peripheral registers to their default reset values.
    158            * @param  I2Cx: where x can be 1 or 2 to select the I2C peripheral.
    159            * @retval None
    160            */

   \                                 In section .text, align 2, keep-with-next
    161          void I2C_DeInit(I2C_TypeDef* I2Cx)
    162          {
   \                     I2C_DeInit:
   \   00000000   10B5               PUSH     {R4,LR}
   \   00000002   0400               MOVS     R4,R0
    163            /* Check the parameters */
    164            assert_param(IS_I2C_ALL_PERIPH(I2Cx));
    165          
    166            if (I2Cx == I2C1)
   \   00000004   ....               LDR.N    R0,??DataTable1  ;; 0x40005400
   \   00000006   8442               CMP      R4,R0
   \   00000008   0AD1               BNE.N    ??I2C_DeInit_0
    167            {
    168              /* Enable I2C1 reset state */
    169              RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, ENABLE);
   \   0000000A   0121               MOVS     R1,#+1
   \   0000000C   5FF40010           MOVS     R0,#+2097152
   \   00000010   ........           BL       RCC_APB1PeriphResetCmd
    170              /* Release I2C1 from reset state */
    171              RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, DISABLE);
   \   00000014   0021               MOVS     R1,#+0
   \   00000016   5FF40010           MOVS     R0,#+2097152
   \   0000001A   ........           BL       RCC_APB1PeriphResetCmd
   \   0000001E   09E0               B.N      ??I2C_DeInit_1
    172            }
    173            else
    174            {
    175              /* Enable I2C2 reset state */
    176              RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C2, ENABLE);
   \                     ??I2C_DeInit_0:
   \   00000020   0121               MOVS     R1,#+1
   \   00000022   5FF48000           MOVS     R0,#+4194304
   \   00000026   ........           BL       RCC_APB1PeriphResetCmd
    177              /* Release I2C2 from reset state */
    178              RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C2, DISABLE);
   \   0000002A   0021               MOVS     R1,#+0
   \   0000002C   5FF48000           MOVS     R0,#+4194304
   \   00000030   ........           BL       RCC_APB1PeriphResetCmd
    179            }
    180          }
   \                     ??I2C_DeInit_1:
   \   00000034   10BD               POP      {R4,PC}          ;; return

⌨️ 快捷键说明

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