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

📄 stm32f10x_can.lst

📁 完成数据的采集
💻 LST
📖 第 1 页 / 共 4 页
字号:
    704            /* Check the parameters */
    705            assert_param(IS_CAN_FLAG(CAN_FLAG));
    706          
    707            /* Check the status of the specified CAN flag */
    708            if ((CAN->ESR & CAN_FLAG) != (u32)RESET)
    709            {
    710              /* CAN_FLAG is set */
    711              bitstatus = SET;
    712            }
    713            else
    714            {
    715              /* CAN_FLAG is reset */
    716              bitstatus = RESET;
    717            }
    718            /* Return the CAN_FLAG status */
    719            return  bitstatus;
    720          }
    721          
    722          /*******************************************************************************
    723          * Function Name  : CAN_ClearFlag
    724          * Description    : Clears the CAN's pending flags.
    725          * Input          : CAN_FLAG: specifies the flag to clear.
    726          * Output         : None.
    727          * Return         : None.
    728          *******************************************************************************/
    729          void CAN_ClearFlag(u32 CAN_FLAG)
    730          {
    731            /* Check the parameters */
    732            assert_param(IS_CAN_FLAG(CAN_FLAG));
    733          
    734            /* Clear the selected CAN flags */
    735            CAN->ESR &= ~CAN_FLAG;
    736          }
    737          
    738          /*******************************************************************************
    739          * Function Name  : CAN_GetITStatus
    740          * Description    : Checks whether the specified CAN interrupt has occurred or 
    741          *                  not.
    742          * Input          : CAN_IT: specifies the CAN interrupt source to check.
    743          *                  This parameter can be: CAN_IT_RQCP0, CAN_IT_RQCP1, CAN_IT_RQCP2,
    744          *                                         CAN_IT_FF0, CAN_IT_FOV0, CAN_IT_FF1,
    745          *                                         CAN_IT_FOV1, CAN_IT_EWG, CAN_IT_EPV, 
    746          *                                         CAN_IT_BOF, CAN_IT_WKU or CAN_IT_SLK.
    747          * Output         : None.
    748          * Return         : The new state of CAN_IT (SET or RESET).
    749          *******************************************************************************/
    750          ITStatus CAN_GetITStatus(u32 CAN_IT)
    751          {
    752            ITStatus pendingbitstatus = RESET;
    753          
    754            /* Check the parameters */
    755            assert_param(IS_CAN_ITStatus(CAN_IT));
    756          
    757            switch (CAN_IT)
    758            {
    759              case CAN_IT_RQCP0:
    760                pendingbitstatus = CheckITStatus(CAN->TSR, CAN_TSR_RQCP0);
    761                break;
    762              case CAN_IT_RQCP1:
    763                pendingbitstatus = CheckITStatus(CAN->TSR, CAN_TSR_RQCP1);
    764                break;
    765              case CAN_IT_RQCP2:
    766                pendingbitstatus = CheckITStatus(CAN->TSR, CAN_TSR_RQCP2);
    767                break;
    768              case CAN_IT_FF0:
    769                pendingbitstatus = CheckITStatus(CAN->RF0R, CAN_RF0R_FULL0);
    770                break;
    771              case CAN_IT_FOV0:
    772                pendingbitstatus = CheckITStatus(CAN->RF0R, CAN_RF0R_FOVR0);
    773                break;
    774              case CAN_IT_FF1:
    775                pendingbitstatus = CheckITStatus(CAN->RF1R, CAN_RF1R_FULL1);
    776                break;
    777              case CAN_IT_FOV1:
    778                pendingbitstatus = CheckITStatus(CAN->RF1R, CAN_RF1R_FOVR1);
    779                break;
    780              case CAN_IT_EWG:
    781                pendingbitstatus = CheckITStatus(CAN->ESR, CAN_ESR_EWGF);
    782                break;
    783              case CAN_IT_EPV:
    784                pendingbitstatus = CheckITStatus(CAN->ESR, CAN_ESR_EPVF);
    785                break;
    786              case CAN_IT_BOF:
    787                pendingbitstatus = CheckITStatus(CAN->ESR, CAN_ESR_BOFF);
    788                break;
    789              case CAN_IT_SLK:
    790                pendingbitstatus = CheckITStatus(CAN->MSR, CAN_MSR_SLAKI);
    791                break;
    792              case CAN_IT_WKU:
    793                pendingbitstatus = CheckITStatus(CAN->MSR, CAN_MSR_WKUI);
    794                break;
    795          
    796              default :
    797                pendingbitstatus = RESET;
    798                break;
    799            }
    800          
    801            /* Return the CAN_IT status */
    802            return  pendingbitstatus;
    803          }
    804          
    805          /*******************************************************************************
    806          * Function Name  : CAN_ClearITPendingBit
    807          * Description    : Clears the CAN抯 interrupt pending bits.
    808          * Input          : CAN_IT: specifies the interrupt pending bit to clear.
    809          * Output         : None.
    810          * Return         : None.
    811          *******************************************************************************/
    812          void CAN_ClearITPendingBit(u32 CAN_IT)
    813          {
    814            /* Check the parameters */
    815            assert_param(IS_CAN_ITStatus(CAN_IT));
    816          
    817            switch (CAN_IT)
    818            {
    819              case CAN_IT_RQCP0:
    820                CAN->TSR = CAN_TSR_RQCP0; /* rc_w1*/
    821                break;
    822              case CAN_IT_RQCP1:
    823                CAN->TSR = CAN_TSR_RQCP1; /* rc_w1*/
    824                break;
    825              case CAN_IT_RQCP2:
    826                CAN->TSR = CAN_TSR_RQCP2; /* rc_w1*/
    827                break;
    828              case CAN_IT_FF0:
    829                CAN->RF0R = CAN_RF0R_FULL0; /* rc_w1*/
    830                break;
    831              case CAN_IT_FOV0:
    832                CAN->RF0R = CAN_RF0R_FOVR0; /* rc_w1*/
    833                break;
    834              case CAN_IT_FF1:
    835                CAN->RF1R = CAN_RF1R_FULL1; /* rc_w1*/
    836                break;
    837              case CAN_IT_FOV1:
    838                CAN->RF1R = CAN_RF1R_FOVR1; /* rc_w1*/
    839                break;
    840              case CAN_IT_EWG:
    841                CAN->ESR &= ~ CAN_ESR_EWGF; /* rw */
    842                break;
    843              case CAN_IT_EPV:
    844                CAN->ESR &= ~ CAN_ESR_EPVF; /* rw */
    845                break;
    846              case CAN_IT_BOF:
    847                CAN->ESR &= ~ CAN_ESR_BOFF; /* rw */
    848                break;
    849              case CAN_IT_WKU:
    850                CAN->MSR = CAN_MSR_WKUI;  /* rc_w1*/
    851                break;
    852              case CAN_IT_SLK:
    853                CAN->MSR = CAN_MSR_SLAKI;  /* rc_w1*/
    854                break;
    855              default :
    856                break;
    857            }
    858          }
    859          
    860          /*******************************************************************************
    861          * Function Name  : CheckITStatus
    862          * Description    : Checks whether the CAN interrupt has occurred or not.
    863          * Input          : CAN_Reg: specifies the CAN interrupt register to check.
    864          *                  It_Bit: specifies the interrupt source bit to check.
    865          * Output         : None.
    866          * Return         : The new state of the CAN Interrupt (SET or RESET).
    867          *******************************************************************************/
    868          static ITStatus CheckITStatus(u32 CAN_Reg, u32 It_Bit)
    869          {
    870            ITStatus pendingbitstatus = RESET;
    871          
    872            if ((CAN_Reg & It_Bit) != (u32)RESET)
    873            {
    874              /* CAN_IT is set */
    875              pendingbitstatus = SET;
    876            }
    877            else
    878            {
    879              /* CAN_IT is reset */
    880              pendingbitstatus = RESET;
    881            }
    882          
    883            return pendingbitstatus;
    884          }
    885          
    886          /******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/

   Maximum stack usage in bytes:

     Function              .cstack
     --------              -------
     CAN_CancelTransmit         8
     CAN_ClearFlag              0
     CAN_ClearITPendingBit      8
     CAN_DeInit                 8
     CAN_FIFORelease            0
     CAN_FilterInit            16
     CAN_GetFlagStatus          0
     CAN_GetITStatus            8
     CAN_ITConfig               0
     CAN_Init                   8
     CAN_MessagePending         0
     CAN_Receive                8
     CAN_Sleep                  0
     CAN_StructInit             0
     CAN_Transmit               8
     CAN_TransmitStatus         8
     CAN_WakeUp                 0


   Section sizes:

     Function/Label        Bytes
     --------------        -----
     CAN_DeInit              22
     CAN_Init               188
     CAN_FilterInit         184
     CAN_StructInit          32
     CAN_ITConfig            24
     CAN_Transmit           176
     CAN_TransmitStatus     134
     CAN_CancelTransmit      50
     CAN_FIFORelease         16
     CAN_MessagePending      36
     CAN_Receive            124
     CAN_Sleep               28
     CAN_WakeUp              28
     CAN_GetFlagStatus       20
     CAN_ClearFlag           16
     CAN_GetITStatus        188
     CAN_ClearITPendingBit  172
     ??DataTable0             4
     ??DataTable7             4
     ??DataTable9             4

 
 1 450 bytes in section .text
 
 1 450 bytes of CODE memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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