1 /**
2   ******************************************************************************
3   * @file    stm32f1xx_hal_can_ex_legacy.h
4   * @author  MCD Application Team
5   * @brief   Header file of CAN HAL Extension module.
6   ******************************************************************************
7   * @attention
8   *
9   * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
10   * All rights reserved.</center></h2>
11   *
12   * This software component is licensed by ST under BSD 3-Clause license,
13   * the "License"; You may not use this file except in compliance with the
14   * License. You may obtain a copy of the License at:
15   *                        opensource.org/licenses/BSD-3-Clause
16   *
17   ******************************************************************************
18   */
19 
20 /* Define to prevent recursive inclusion -------------------------------------*/
21 #ifndef __STM32F1xx_HAL_CAN_EX_LEGACY_H
22 #define __STM32F1xx_HAL_CAN_EX_LEGACY_H
23 
24 #ifdef __cplusplus
25  extern "C" {
26 #endif
27 
28 #if defined(STM32F103x6) || defined(STM32F103xB) || defined(STM32F103xE) || \
29     defined(STM32F103xG) || defined(STM32F105xC) || defined(STM32F107xC)
30 
31 /* Includes ------------------------------------------------------------------*/
32 #include "stm32f1xx_hal_def.h"
33 
34 /** @addtogroup STM32F1xx_HAL_Driver
35   * @{
36   */
37 
38 /** @defgroup CANEx CANEx
39   * @{
40   */
41 
42 /* Exported types ------------------------------------------------------------*/
43 
44 /**
45   * @brief  CAN filter configuration structure definition
46   */
47 /* CAN filter banks differences over STM32F1 devices:                         */
48 /* - STM32F1 Connectivity line: 28 filter banks shared between CAN1 and CAN2  */
49 /* - Other STM32F10x devices:   14 filter banks                               */
50 
51 typedef struct
52 {
53   uint32_t FilterIdHigh;          /*!< Specifies the filter identification number (MSBs for a 32-bit
54                                        configuration, first one for a 16-bit configuration).
55                                        This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. */
56 
57   uint32_t FilterIdLow;           /*!< Specifies the filter identification number (LSBs for a 32-bit
58                                        configuration, second one for a 16-bit configuration).
59                                        This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. */
60 
61   uint32_t FilterMaskIdHigh;      /*!< Specifies the filter mask number or identification number,
62                                        according to the mode (MSBs for a 32-bit configuration,
63                                        first one for a 16-bit configuration).
64                                        This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. */
65 
66   uint32_t FilterMaskIdLow;       /*!< Specifies the filter mask number or identification number,
67                                        according to the mode (LSBs for a 32-bit configuration,
68                                        second one for a 16-bit configuration).
69                                        This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. */
70 
71   uint32_t FilterFIFOAssignment;  /*!< Specifies the FIFO (0 or 1) which will be assigned to the filter.
72                                        This parameter can be a value of @ref CAN_filter_FIFO */
73 #if defined(STM32F105xC) || defined(STM32F107xC)
74   uint32_t FilterNumber;          /*!< Specifies the filter which will be initialized.
75                                        This parameter must be a number between Min_Data = 0 and Max_Data = 27. */
76 #else
77   uint32_t FilterNumber;          /*!< Specifies the filter which will be initialized.
78                                        This parameter must be a number between Min_Data = 0 and Max_Data = 13. */
79 #endif /* STM32F105xC || STM32F107xC */
80   uint32_t FilterMode;            /*!< Specifies the filter mode to be initialized.
81                                        This parameter can be a value of @ref CAN_filter_mode */
82 
83   uint32_t FilterScale;           /*!< Specifies the filter scale.
84                                        This parameter can be a value of @ref CAN_filter_scale */
85 
86   uint32_t FilterActivation;      /*!< Enable or disable the filter.
87                                        This parameter can be set to ENABLE or DISABLE. */
88 
89   uint32_t BankNumber;            /*!< Select the start slave bank filter
90                                        This parameter must be a number between Min_Data = 0 and Max_Data = 28. */
91 
92 }CAN_FilterConfTypeDef;
93 
94 /* Exported constants --------------------------------------------------------*/
95 /* Exported macro ------------------------------------------------------------*/
96 /* Private macro -------------------------------------------------------------*/
97 
98 /** @defgroup CANEx_Private_Macros CAN Extended Private Macros
99   * @{
100   */
101 #if defined(STM32F105xC) || defined(STM32F107xC)
102 #define IS_CAN_FILTER_NUMBER(NUMBER) ((NUMBER) <= 27U)
103 #else
104 #define IS_CAN_FILTER_NUMBER(NUMBER) ((NUMBER) <= 13U)
105 #endif /* STM32F105xC || STM32F107xC */
106 
107 /**
108   * @}
109   */
110 
111 
112 /**
113   * @}
114   */
115 
116 /**
117   * @}
118   */
119 
120 #endif /* STM32F103x6) || STM32F103xB || STM32F103xE || STM32F103xG) || STM32F105xC || STM32F107xC    */
121 
122 #ifdef __cplusplus
123 }
124 #endif
125 
126 #endif /* __STM32F1xx_HAL_CAN_EX_LEGACY_H */
127 
128 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
129