Subversion Repositories LedShow

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

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