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

📄 stm32f10x_can.lst

📁 编译环境是 iar EWARM ,STM32 下的UCOSII
💻 LST
📖 第 1 页 / 共 4 页
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.42A/W32 KICKSTART     26/Dec/2008  18:23:37 #
# 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_c #
#                       an.c                                                 #
#    Command line    =  F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_c #
#                       an.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_can.lst            #
#    Object file     =  F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
#                       IAR\OS-Probe\Flash\Obj\stm32f10x_can.r79             #
#                                                                            #
#                                                                            #
##############################################################################

F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_can.c
      1          /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
      2          * File Name          : stm32f10x_can.c
      3          * Author             : MCD Application Team
      4          * Version            : V2.0
      5          * Date               : 05/23/2008
      6          * Description        : This file provides all the CAN 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_can.h"
     20          #include "stm32f10x_rcc.h"
     21          
     22          /* Private typedef -----------------------------------------------------------*/
     23          
     24          /* Private define ------------------------------------------------------------*/
     25          /* CAN Master Control Register bits */
     26          #define CAN_MCR_INRQ     ((u32)0x00000001) /* Initialization request */
     27          #define CAN_MCR_SLEEP    ((u32)0x00000002) /* Sleep mode request */
     28          #define CAN_MCR_TXFP     ((u32)0x00000004) /* Transmit FIFO priority */
     29          #define CAN_MCR_RFLM     ((u32)0x00000008) /* Receive FIFO locked mode */
     30          #define CAN_MCR_NART     ((u32)0x00000010) /* No automatic retransmission */
     31          #define CAN_MCR_AWUM     ((u32)0x00000020) /* Automatic wake up mode */
     32          #define CAN_MCR_ABOM     ((u32)0x00000040) /* Automatic bus-off management */
     33          #define CAN_MCR_TTCM     ((u32)0x00000080) /* time triggered communication */
     34          
     35          /* CAN Master Status Register bits */
     36          #define CAN_MSR_INAK     ((u32)0x00000001)    /* Initialization acknowledge */
     37          #define CAN_MSR_WKUI     ((u32)0x00000008)    /* Wake-up interrupt */
     38          #define CAN_MSR_SLAKI    ((u32)0x00000010)    /* Sleep acknowledge interrupt */
     39          
     40          /* CAN Transmit Status Register bits */
     41          #define CAN_TSR_RQCP0    ((u32)0x00000001)    /* Request completed mailbox0 */
     42          #define CAN_TSR_TXOK0    ((u32)0x00000002)    /* Transmission OK of mailbox0 */
     43          #define CAN_TSR_ABRQ0    ((u32)0x00000080)    /* Abort request for mailbox0 */
     44          #define CAN_TSR_RQCP1    ((u32)0x00000100)    /* Request completed mailbox1 */
     45          #define CAN_TSR_TXOK1    ((u32)0x00000200)    /* Transmission OK of mailbox1 */
     46          #define CAN_TSR_ABRQ1    ((u32)0x00008000)    /* Abort request for mailbox1 */
     47          #define CAN_TSR_RQCP2    ((u32)0x00010000)    /* Request completed mailbox2 */
     48          #define CAN_TSR_TXOK2    ((u32)0x00020000)    /* Transmission OK of mailbox2 */
     49          #define CAN_TSR_ABRQ2    ((u32)0x00800000)    /* Abort request for mailbox2 */
     50          #define CAN_TSR_TME0     ((u32)0x04000000)    /* Transmit mailbox 0 empty */
     51          #define CAN_TSR_TME1     ((u32)0x08000000)    /* Transmit mailbox 1 empty */
     52          #define CAN_TSR_TME2     ((u32)0x10000000)    /* Transmit mailbox 2 empty */
     53          
     54          /* CAN Receive FIFO 0 Register bits */
     55          #define CAN_RF0R_FULL0   ((u32)0x00000008)    /* FIFO 0 full */
     56          #define CAN_RF0R_FOVR0   ((u32)0x00000010)    /* FIFO 0 overrun */
     57          #define CAN_RF0R_RFOM0   ((u32)0x00000020)    /* Release FIFO 0 output mailbox */
     58          
     59          /* CAN Receive FIFO 1 Register bits */
     60          #define CAN_RF1R_FULL1   ((u32)0x00000008)    /* FIFO 1 full */
     61          #define CAN_RF1R_FOVR1   ((u32)0x00000010)    /* FIFO 1 overrun */
     62          #define CAN_RF1R_RFOM1   ((u32)0x00000020)    /* Release FIFO 1 output mailbox */
     63          
     64          /* CAN Error Status Register bits */
     65          #define CAN_ESR_EWGF     ((u32)0x00000001)    /* Error warning flag */
     66          #define CAN_ESR_EPVF     ((u32)0x00000002)    /* Error passive flag */
     67          #define CAN_ESR_BOFF     ((u32)0x00000004)    /* Bus-off flag */
     68          
     69          /* CAN Mailbox Transmit Request */
     70          #define CAN_TMIDxR_TXRQ    ((u32)0x00000001) /* Transmit mailbox request */
     71          
     72          /* CAN Filter Master Register bits */
     73          #define CAN_FMR_FINIT ((u32)0x00000001) /* Filter init mode */
     74          
     75          
     76          /* Private macro -------------------------------------------------------------*/
     77          /* Private variables ---------------------------------------------------------*/
     78          /* Private function prototypes -----------------------------------------------*/
     79          static ITStatus CheckITStatus(u32 CAN_Reg, u32 It_Bit);
     80          
     81          /* Private functions ---------------------------------------------------------*/
     82          /*******************************************************************************
     83          * Function Name  : CAN_DeInit
     84          * Description    : Deinitializes the CAN peripheral registers to their default
     85          *                  reset values.
     86          * Input          : None.
     87          * Output         : None.
     88          * Return         : None.
     89          *******************************************************************************/
     90          void CAN_DeInit(void)
     91          {
     92            /* Enable CAN reset state */
     93            RCC_APB1PeriphResetCmd(RCC_APB1Periph_CAN, ENABLE);
     94            /* Release CAN from reset state */
     95            RCC_APB1PeriphResetCmd(RCC_APB1Periph_CAN, DISABLE);
     96          }
     97          
     98          /*******************************************************************************
     99          * Function Name  : CAN_Init
    100          * Description    : Initializes the CAN peripheral according to the specified
    101          *                  parameters in the CAN_InitStruct.
    102          * Input          : CAN_InitStruct: pointer to a CAN_InitTypeDef structure that
    103                             contains the configuration information for the CAN peripheral.
    104          * Output         : None.
    105          * Return         : Constant indicates initialization succeed which will be 
    106          *                  CANINITFAILED or CANINITOK.
    107          *******************************************************************************/
    108          u8 CAN_Init(CAN_InitTypeDef* CAN_InitStruct)
    109          {
    110            u8 InitStatus = 0;
    111            u16 WaitAck;
    112          
    113            /* Check the parameters */
    114            assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->CAN_TTCM));
    115            assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->CAN_ABOM));
    116            assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->CAN_AWUM));
    117            assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->CAN_NART));
    118            assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->CAN_RFLM));
    119            assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->CAN_TXFP));
    120            assert_param(IS_CAN_MODE(CAN_InitStruct->CAN_Mode));
    121            assert_param(IS_CAN_SJW(CAN_InitStruct->CAN_SJW));
    122            assert_param(IS_CAN_BS1(CAN_InitStruct->CAN_BS1));
    123            assert_param(IS_CAN_BS2(CAN_InitStruct->CAN_BS2));
    124            assert_param(IS_CAN_PRESCALER(CAN_InitStruct->CAN_Prescaler));
    125          
    126            /* Request initialisation */
    127            CAN->MCR = CAN_MCR_INRQ;
    128          
    129            /* ...and check acknowledged */
    130            if ((CAN->MSR & CAN_MSR_INAK) == 0)
    131            {
    132              InitStatus = CANINITFAILED;
    133            }
    134            else
    135            {
    136              /* Set the time triggered communication mode */
    137              if (CAN_InitStruct->CAN_TTCM == ENABLE)
    138              {
    139                CAN->MCR |= CAN_MCR_TTCM;
    140              }
    141              else
    142              {
    143                CAN->MCR &= ~CAN_MCR_TTCM;
    144              }
    145          
    146              /* Set the automatic bus-off management */
    147              if (CAN_InitStruct->CAN_ABOM == ENABLE)
    148              {
    149                CAN->MCR |= CAN_MCR_ABOM;
    150              }
    151              else
    152              {
    153                CAN->MCR &= ~CAN_MCR_ABOM;
    154              }
    155          
    156              /* Set the automatic wake-up mode */
    157              if (CAN_InitStruct->CAN_AWUM == ENABLE)
    158              {
    159                CAN->MCR |= CAN_MCR_AWUM;
    160              }
    161              else
    162              {
    163                CAN->MCR &= ~CAN_MCR_AWUM;
    164              }
    165          
    166              /* Set the no automatic retransmission */
    167              if (CAN_InitStruct->CAN_NART == ENABLE)
    168              {
    169                CAN->MCR |= CAN_MCR_NART;
    170              }
    171              else
    172              {
    173                CAN->MCR &= ~CAN_MCR_NART;
    174              }
    175          
    176              /* Set the receive FIFO locked mode */
    177              if (CAN_InitStruct->CAN_RFLM == ENABLE)
    178              {
    179                CAN->MCR |= CAN_MCR_RFLM;
    180              }
    181              else
    182              {
    183                CAN->MCR &= ~CAN_MCR_RFLM;
    184              }

⌨️ 快捷键说明

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