CARME-M4 BSP  V1.5
stm32f4xx_can.h File Reference

This file contains all the functions prototypes for the CAN firmware library. More...

#include "stm32f4xx.h"
+ Include dependency graph for stm32f4xx_can.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  CAN_InitTypeDef
 CAN init structure definition. More...
 
struct  CAN_FilterInitTypeDef
 CAN filter init structure definition. More...
 
struct  CanTxMsg
 CAN Tx message structure definition. More...
 
struct  CanRxMsg
 CAN Rx message structure definition. More...
 

Macros

#define IS_CAN_ALL_PERIPH(PERIPH)
 
#define CAN_InitStatus_Failed   ((uint8_t)0x00)
 
#define CAN_InitStatus_Success   ((uint8_t)0x01)
 
#define CANINITFAILED   CAN_InitStatus_Failed
 
#define CANINITOK   CAN_InitStatus_Success
 
#define CAN_Mode_Normal   ((uint8_t)0x00)
 
#define CAN_Mode_LoopBack   ((uint8_t)0x01)
 
#define CAN_Mode_Silent   ((uint8_t)0x02)
 
#define CAN_Mode_Silent_LoopBack   ((uint8_t)0x03)
 
#define IS_CAN_MODE(MODE)
 
#define CAN_OperatingMode_Initialization   ((uint8_t)0x00)
 
#define CAN_OperatingMode_Normal   ((uint8_t)0x01)
 
#define CAN_OperatingMode_Sleep   ((uint8_t)0x02)
 
#define IS_CAN_OPERATING_MODE(MODE)
 
#define CAN_ModeStatus_Failed   ((uint8_t)0x00)
 
#define CAN_ModeStatus_Success   ((uint8_t)!CAN_ModeStatus_Failed)
 
#define CAN_SJW_1tq   ((uint8_t)0x00)
 
#define CAN_SJW_2tq   ((uint8_t)0x01)
 
#define CAN_SJW_3tq   ((uint8_t)0x02)
 
#define CAN_SJW_4tq   ((uint8_t)0x03)
 
#define IS_CAN_SJW(SJW)
 
#define CAN_BS1_1tq   ((uint8_t)0x00)
 
#define CAN_BS1_2tq   ((uint8_t)0x01)
 
#define CAN_BS1_3tq   ((uint8_t)0x02)
 
#define CAN_BS1_4tq   ((uint8_t)0x03)
 
#define CAN_BS1_5tq   ((uint8_t)0x04)
 
#define CAN_BS1_6tq   ((uint8_t)0x05)
 
#define CAN_BS1_7tq   ((uint8_t)0x06)
 
#define CAN_BS1_8tq   ((uint8_t)0x07)
 
#define CAN_BS1_9tq   ((uint8_t)0x08)
 
#define CAN_BS1_10tq   ((uint8_t)0x09)
 
#define CAN_BS1_11tq   ((uint8_t)0x0A)
 
#define CAN_BS1_12tq   ((uint8_t)0x0B)
 
#define CAN_BS1_13tq   ((uint8_t)0x0C)
 
#define CAN_BS1_14tq   ((uint8_t)0x0D)
 
#define CAN_BS1_15tq   ((uint8_t)0x0E)
 
#define CAN_BS1_16tq   ((uint8_t)0x0F)
 
#define IS_CAN_BS1(BS1)   ((BS1) <= CAN_BS1_16tq)
 
#define CAN_BS2_1tq   ((uint8_t)0x00)
 
#define CAN_BS2_2tq   ((uint8_t)0x01)
 
#define CAN_BS2_3tq   ((uint8_t)0x02)
 
#define CAN_BS2_4tq   ((uint8_t)0x03)
 
#define CAN_BS2_5tq   ((uint8_t)0x04)
 
#define CAN_BS2_6tq   ((uint8_t)0x05)
 
#define CAN_BS2_7tq   ((uint8_t)0x06)
 
#define CAN_BS2_8tq   ((uint8_t)0x07)
 
#define IS_CAN_BS2(BS2)   ((BS2) <= CAN_BS2_8tq)
 
#define IS_CAN_PRESCALER(PRESCALER)   (((PRESCALER) >= 1) && ((PRESCALER) <= 1024))
 
#define IS_CAN_FILTER_NUMBER(NUMBER)   ((NUMBER) <= 27)
 
#define CAN_FilterMode_IdMask   ((uint8_t)0x00)
 
#define CAN_FilterMode_IdList   ((uint8_t)0x01)
 
#define IS_CAN_FILTER_MODE(MODE)
 
#define CAN_FilterScale_16bit   ((uint8_t)0x00)
 
#define CAN_FilterScale_32bit   ((uint8_t)0x01)
 
#define IS_CAN_FILTER_SCALE(SCALE)
 
#define CAN_Filter_FIFO0   ((uint8_t)0x00)
 
#define CAN_Filter_FIFO1   ((uint8_t)0x01)
 
#define IS_CAN_FILTER_FIFO(FIFO)
 
#define CAN_FilterFIFO0   CAN_Filter_FIFO0
 
#define CAN_FilterFIFO1   CAN_Filter_FIFO1
 
#define IS_CAN_BANKNUMBER(BANKNUMBER)   (((BANKNUMBER) >= 1) && ((BANKNUMBER) <= 27))
 
#define IS_CAN_TRANSMITMAILBOX(TRANSMITMAILBOX)   ((TRANSMITMAILBOX) <= ((uint8_t)0x02))
 
#define IS_CAN_STDID(STDID)    ((STDID) <= ((uint32_t)0x7FF))
 
#define IS_CAN_EXTID(EXTID)    ((EXTID) <= ((uint32_t)0x1FFFFFFF))
 
#define IS_CAN_DLC(DLC)    ((DLC) <= ((uint8_t)0x08))
 
#define CAN_Id_Standard   ((uint32_t)0x00000000)
 
#define CAN_Id_Extended   ((uint32_t)0x00000004)
 
#define IS_CAN_IDTYPE(IDTYPE)
 
#define CAN_ID_STD   CAN_Id_Standard
 
#define CAN_ID_EXT   CAN_Id_Extended
 
#define CAN_RTR_Data   ((uint32_t)0x00000000)
 
#define CAN_RTR_Remote   ((uint32_t)0x00000002)
 
#define IS_CAN_RTR(RTR)   (((RTR) == CAN_RTR_Data) || ((RTR) == CAN_RTR_Remote))
 
#define CAN_RTR_DATA   CAN_RTR_Data
 
#define CAN_RTR_REMOTE   CAN_RTR_Remote
 
#define CAN_TxStatus_Failed   ((uint8_t)0x00)
 
#define CAN_TxStatus_Ok   ((uint8_t)0x01)
 
#define CAN_TxStatus_Pending   ((uint8_t)0x02)
 
#define CAN_TxStatus_NoMailBox   ((uint8_t)0x04)
 
#define CANTXFAILED   CAN_TxStatus_Failed
 
#define CANTXOK   CAN_TxStatus_Ok
 
#define CANTXPENDING   CAN_TxStatus_Pending
 
#define CAN_NO_MB   CAN_TxStatus_NoMailBox
 
#define CAN_FIFO0   ((uint8_t)0x00)
 
#define CAN_FIFO1   ((uint8_t)0x01)
 
#define IS_CAN_FIFO(FIFO)   (((FIFO) == CAN_FIFO0) || ((FIFO) == CAN_FIFO1))
 
#define CAN_Sleep_Failed   ((uint8_t)0x00)
 
#define CAN_Sleep_Ok   ((uint8_t)0x01)
 
#define CANSLEEPFAILED   CAN_Sleep_Failed
 
#define CANSLEEPOK   CAN_Sleep_Ok
 
#define CAN_WakeUp_Failed   ((uint8_t)0x00)
 
#define CAN_WakeUp_Ok   ((uint8_t)0x01)
 
#define CANWAKEUPFAILED   CAN_WakeUp_Failed
 
#define CANWAKEUPOK   CAN_WakeUp_Ok
 
#define CAN_ErrorCode_NoErr   ((uint8_t)0x00)
 
#define CAN_ErrorCode_StuffErr   ((uint8_t)0x10)
 
#define CAN_ErrorCode_FormErr   ((uint8_t)0x20)
 
#define CAN_ErrorCode_ACKErr   ((uint8_t)0x30)
 
#define CAN_ErrorCode_BitRecessiveErr   ((uint8_t)0x40)
 
#define CAN_ErrorCode_BitDominantErr   ((uint8_t)0x50)
 
#define CAN_ErrorCode_CRCErr   ((uint8_t)0x60)
 
#define CAN_ErrorCode_SoftwareSetErr   ((uint8_t)0x70)
 
#define CAN_FLAG_RQCP0   ((uint32_t)0x38000001)
 
#define CAN_FLAG_RQCP1   ((uint32_t)0x38000100)
 
#define CAN_FLAG_RQCP2   ((uint32_t)0x38010000)
 
#define CAN_FLAG_FMP0   ((uint32_t)0x12000003)
 
#define CAN_FLAG_FF0   ((uint32_t)0x32000008)
 
#define CAN_FLAG_FOV0   ((uint32_t)0x32000010)
 
#define CAN_FLAG_FMP1   ((uint32_t)0x14000003)
 
#define CAN_FLAG_FF1   ((uint32_t)0x34000008)
 
#define CAN_FLAG_FOV1   ((uint32_t)0x34000010)
 
#define CAN_FLAG_WKU   ((uint32_t)0x31000008)
 
#define CAN_FLAG_SLAK   ((uint32_t)0x31000012)
 
#define CAN_FLAG_EWG   ((uint32_t)0x10F00001)
 
#define CAN_FLAG_EPV   ((uint32_t)0x10F00002)
 
#define CAN_FLAG_BOF   ((uint32_t)0x10F00004)
 
#define CAN_FLAG_LEC   ((uint32_t)0x30F00070)
 
#define IS_CAN_GET_FLAG(FLAG)
 
#define IS_CAN_CLEAR_FLAG(FLAG)
 
#define CAN_IT_TME   ((uint32_t)0x00000001)
 
#define CAN_IT_FMP0   ((uint32_t)0x00000002)
 
#define CAN_IT_FF0   ((uint32_t)0x00000004)
 
#define CAN_IT_FOV0   ((uint32_t)0x00000008)
 
#define CAN_IT_FMP1   ((uint32_t)0x00000010)
 
#define CAN_IT_FF1   ((uint32_t)0x00000020)
 
#define CAN_IT_FOV1   ((uint32_t)0x00000040)
 
#define CAN_IT_WKU   ((uint32_t)0x00010000)
 
#define CAN_IT_SLK   ((uint32_t)0x00020000)
 
#define CAN_IT_EWG   ((uint32_t)0x00000100)
 
#define CAN_IT_EPV   ((uint32_t)0x00000200)
 
#define CAN_IT_BOF   ((uint32_t)0x00000400)
 
#define CAN_IT_LEC   ((uint32_t)0x00000800)
 
#define CAN_IT_ERR   ((uint32_t)0x00008000)
 
#define CAN_IT_RQCP0   CAN_IT_TME
 
#define CAN_IT_RQCP1   CAN_IT_TME
 
#define CAN_IT_RQCP2   CAN_IT_TME
 
#define IS_CAN_IT(IT)
 
#define IS_CAN_CLEAR_IT(IT)
 

Functions

void CAN_DeInit (CAN_TypeDef *CANx)
 Deinitializes the CAN peripheral registers to their default reset values. More...
 
uint8_t CAN_Init (CAN_TypeDef *CANx, CAN_InitTypeDef *CAN_InitStruct)
 Initializes the CAN peripheral according to the specified parameters in the CAN_InitStruct. More...
 
void CAN_FilterInit (CAN_FilterInitTypeDef *CAN_FilterInitStruct)
 Configures the CAN reception filter according to the specified parameters in the CAN_FilterInitStruct. More...
 
void CAN_StructInit (CAN_InitTypeDef *CAN_InitStruct)
 Fills each CAN_InitStruct member with its default value. More...
 
void CAN_SlaveStartBank (uint8_t CAN_BankNumber)
 Select the start bank filter for slave CAN. More...
 
void CAN_DBGFreeze (CAN_TypeDef *CANx, FunctionalState NewState)
 Enables or disables the DBG Freeze for CAN. More...
 
void CAN_TTComModeCmd (CAN_TypeDef *CANx, FunctionalState NewState)
 Enables or disables the CAN Time TriggerOperation communication mode. More...
 
uint8_t CAN_Transmit (CAN_TypeDef *CANx, CanTxMsg *TxMessage)
 Initiates and transmits a CAN frame message. More...
 
uint8_t CAN_TransmitStatus (CAN_TypeDef *CANx, uint8_t TransmitMailbox)
 Checks the transmission status of a CAN Frame. More...
 
void CAN_CancelTransmit (CAN_TypeDef *CANx, uint8_t Mailbox)
 Cancels a transmit request. More...
 
void CAN_Receive (CAN_TypeDef *CANx, uint8_t FIFONumber, CanRxMsg *RxMessage)
 Receives a correct CAN frame. More...
 
void CAN_FIFORelease (CAN_TypeDef *CANx, uint8_t FIFONumber)
 Releases the specified receive FIFO. More...
 
uint8_t CAN_MessagePending (CAN_TypeDef *CANx, uint8_t FIFONumber)
 Returns the number of pending received messages. More...
 
uint8_t CAN_OperatingModeRequest (CAN_TypeDef *CANx, uint8_t CAN_OperatingMode)
 Selects the CAN Operation mode. More...
 
uint8_t CAN_Sleep (CAN_TypeDef *CANx)
 Enters the Sleep (low power) mode. More...
 
uint8_t CAN_WakeUp (CAN_TypeDef *CANx)
 Wakes up the CAN peripheral from sleep mode . More...
 
uint8_t CAN_GetLastErrorCode (CAN_TypeDef *CANx)
 Returns the CANx's last error code (LEC). More...
 
uint8_t CAN_GetReceiveErrorCounter (CAN_TypeDef *CANx)
 Returns the CANx Receive Error Counter (REC). More...
 
uint8_t CAN_GetLSBTransmitErrorCounter (CAN_TypeDef *CANx)
 Returns the LSB of the 9-bit CANx Transmit Error Counter(TEC). More...
 
void CAN_ITConfig (CAN_TypeDef *CANx, uint32_t CAN_IT, FunctionalState NewState)
 Enables or disables the specified CANx interrupts. More...
 
FlagStatus CAN_GetFlagStatus (CAN_TypeDef *CANx, uint32_t CAN_FLAG)
 Checks whether the specified CAN flag is set or not. More...
 
void CAN_ClearFlag (CAN_TypeDef *CANx, uint32_t CAN_FLAG)
 Clears the CAN's pending flags. More...
 
ITStatus CAN_GetITStatus (CAN_TypeDef *CANx, uint32_t CAN_IT)
 Checks whether the specified CANx interrupt has occurred or not. More...
 
void CAN_ClearITPendingBit (CAN_TypeDef *CANx, uint32_t CAN_IT)
 Clears the CANx's interrupt pending bits. More...
 

Detailed Description

This file contains all the functions prototypes for the CAN firmware library.

Author
MCD Application Team
Version
V1.3.0
Date
08-November-2013
Attention

© COPYRIGHT 2013 STMicroelectronics

Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); You may not use this file except in compliance with the License. You may obtain a copy of the License at:

   http://www.st.com/software_license_agreement_liberty_v2

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Definition in file stm32f4xx_can.h.