]> git.donarmstrong.com Git - qmk_firmware.git/blob - tool/mbed/mbed-sdk/libraries/mbed/targets/cmsis/TARGET_STM/TARGET_STM32F1/stm32f1xx_hal_can_ex.h
Squashed 'tmk_core/' changes from 7967731..b9e0ea0
[qmk_firmware.git] / tool / mbed / mbed-sdk / libraries / mbed / targets / cmsis / TARGET_STM / TARGET_STM32F1 / stm32f1xx_hal_can_ex.h
1 /**
2   ******************************************************************************
3   * @file    stm32f1xx_hal_can_ex.h
4   * @author  MCD Application Team
5   * @version V1.0.0
6   * @date    15-December-2014
7   * @brief   Header file of CAN HAL Extension module.
8   ******************************************************************************
9   * @attention
10   *
11   * <h2><center>&copy; COPYRIGHT(c) 2014 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****/