Subversion Repositories DashDisplay

Rev

Rev 2 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. /**
  2.   ******************************************************************************
  3.   * @file    stm32f1xx_hal_can_ex.h
  4.   * @author  MCD Application Team
  5.   * @version V1.0.4
  6.   * @date    29-April-2016
  7.   * @brief   Header file of CAN HAL Extension module.
  8.   ******************************************************************************
  9.   * @attention
  10.   *
  11.   * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
  12.   *
  13.   * Redistribution and use in source and binary forms, with or without modification,
  14.   * are permitted provided that the following conditions are met:
  15.   *   1. Redistributions of source code must retain the above copyright notice,
  16.   *      this list of conditions and the following disclaimer.
  17.   *   2. Redistributions in binary form must reproduce the above copyright notice,
  18.   *      this list of conditions and the following disclaimer in the documentation
  19.   *      and/or other materials provided with the distribution.
  20.   *   3. Neither the name of STMicroelectronics nor the names of its contributors
  21.   *      may be used to endorse or promote products derived from this software
  22.   *      without specific prior written permission.
  23.   *
  24.   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  25.   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  26.   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  27.   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  28.   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  29.   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  30.   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  31.   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  32.   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  33.   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  34.   *
  35.   ******************************************************************************
  36.   */
  37.  
  38. /* Define to prevent recursive inclusion -------------------------------------*/
  39. #ifndef __STM32F1xx_HAL_CAN_EX_H
  40. #define __STM32F1xx_HAL_CAN_EX_H
  41.  
  42. #ifdef __cplusplus
  43.  extern "C" {
  44. #endif
  45.  
  46. #if defined(STM32F103x6) || defined(STM32F103xB) || defined(STM32F103xE) || \
  47.     defined(STM32F103xG) || defined(STM32F105xC) || defined(STM32F107xC)
  48.  
  49. /* Includes ------------------------------------------------------------------*/
  50. #include "stm32f1xx_hal_def.h"
  51.  
  52. /** @addtogroup STM32F1xx_HAL_Driver
  53.   * @{
  54.   */
  55.  
  56. /** @defgroup CANEx CANEx
  57.   * @{
  58.   */
  59.  
  60. /* Exported types ------------------------------------------------------------*/
  61.      
  62. /**
  63.   * @brief  CAN filter configuration structure definition
  64.   */
  65. /* CAN filter banks differences over STM32F1 devices:                         */
  66. /* - STM32F1 Connectivity line: 28 filter banks shared between CAN1 and CAN2  */
  67. /* - Other STM32F10x devices:   14 filter banks                               */
  68.  
  69. typedef struct
  70. {
  71.   uint32_t FilterIdHigh;          /*!< Specifies the filter identification number (MSBs for a 32-bit
  72.                                        configuration, first one for a 16-bit configuration).
  73.                                        This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. */
  74.                                              
  75.   uint32_t FilterIdLow;           /*!< Specifies the filter identification number (LSBs for a 32-bit
  76.                                        configuration, second one for a 16-bit configuration).
  77.                                        This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. */
  78.  
  79.   uint32_t FilterMaskIdHigh;      /*!< Specifies the filter mask number or identification number,
  80.                                        according to the mode (MSBs for a 32-bit configuration,
  81.                                        first one for a 16-bit configuration).
  82.                                        This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. */
  83.  
  84.   uint32_t FilterMaskIdLow;       /*!< Specifies the filter mask number or identification number,
  85.                                        according to the mode (LSBs for a 32-bit configuration,
  86.                                        second one for a 16-bit configuration).
  87.                                        This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. */
  88.  
  89.   uint32_t FilterFIFOAssignment;  /*!< Specifies the FIFO (0 or 1) which will be assigned to the filter.
  90.                                        This parameter can be a value of @ref CAN_filter_FIFO */
  91. #if defined(STM32F105xC) || defined(STM32F107xC)
  92.   uint32_t FilterNumber;          /*!< Specifies the filter which will be initialized.
  93.                                        This parameter must be a number between Min_Data = 0 and Max_Data = 27. */
  94. #else
  95.   uint32_t FilterNumber;          /*!< Specifies the filter which will be initialized.
  96.                                        This parameter must be a number between Min_Data = 0 and Max_Data = 13. */
  97. #endif /* STM32F105xC || STM32F107xC */
  98.   uint32_t FilterMode;            /*!< Specifies the filter mode to be initialized.
  99.                                        This parameter can be a value of @ref CAN_filter_mode */
  100.  
  101.   uint32_t FilterScale;           /*!< Specifies the filter scale.
  102.                                        This parameter can be a value of @ref CAN_filter_scale */
  103.  
  104.   uint32_t FilterActivation;      /*!< Enable or disable the filter.
  105.                                        This parameter can be set to ENABLE or DISABLE. */
  106.                                        
  107.   uint32_t BankNumber;            /*!< Select the start slave bank filter
  108.                                        This parameter must be a number between Min_Data = 0 and Max_Data = 28. */
  109.  
  110. }CAN_FilterConfTypeDef;
  111.  
  112. /* Exported constants --------------------------------------------------------*/
  113. /* Exported macro ------------------------------------------------------------*/
  114. /* Private macro -------------------------------------------------------------*/
  115.  
  116. /** @defgroup CANEx_Private_Macros CAN Extended Private Macros
  117.   * @{
  118.   */
  119. #if defined(STM32F105xC) || defined(STM32F107xC)
  120. #define IS_CAN_FILTER_NUMBER(NUMBER) ((NUMBER) <= 27)
  121. #else
  122. #define IS_CAN_FILTER_NUMBER(NUMBER) ((NUMBER) <= 13)
  123. #endif /* STM32F105xC || STM32F107xC */
  124.  
  125. /**
  126.   * @}
  127.   */
  128.  
  129.  
  130. /**
  131.   * @}
  132.   */
  133.  
  134. /**
  135.   * @}
  136.   */
  137.  
  138. #endif /* STM32F103x6) || STM32F103xB || STM32F103xE || */
  139.        /* STM32F103xG) || STM32F105xC || STM32F107xC    */
  140.  
  141. #ifdef __cplusplus
  142. }
  143. #endif
  144.  
  145. #endif /* __STM32F1xx_HAL_CAN_EX_H */
  146.  
  147. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
  148.