⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kinetis_flexcan.h

📁 freescale k40/k60 can 例程
💻 H
📖 第 1 页 / 共 4 页
字号:
#define FLEXCAN_RXGMASK_MI15           (0x00008000)
#define FLEXCAN_RXGMASK_MI16           (0x00010000)
#define FLEXCAN_RXGMASK_MI17           (0x00020000)
#define FLEXCAN_RXGMASK_MI18           (0x00040000)
#define FLEXCAN_RXGMASK_MI19           (0x00080000)
#define FLEXCAN_RXGMASK_MI20           (0x00100000)
#define FLEXCAN_RXGMASK_MI21           (0x00200000)
#define FLEXCAN_RXGMASK_MI22           (0x00400000)
#define FLEXCAN_RXGMASK_MI23           (0x00800000)
#define FLEXCAN_RXGMASK_MI24           (0x01000000)
#define FLEXCAN_RXGMASK_MI25           (0x02000000)
#define FLEXCAN_RXGMASK_MI26           (0x04000000)
#define FLEXCAN_RXGMASK_MI27           (0x08000000)
#define FLEXCAN_RXGMASK_MI28           (0x10000000)
#define FLEXCAN_RXGMASK_MI29           (0x20000000)
#define FLEXCAN_RXGMASK_MI30           (0x40000000)
#define FLEXCAN_RXGMASK_MI31           (0x80000000)

/* Bit definitions and macros for FLEXCAN_RX14MASK */
#define FLEXCAN_RX14MASK_MI0           (0x00000001)
#define FLEXCAN_RX14MASK_MI1           (0x00000002)
#define FLEXCAN_RX14MASK_MI2           (0x00000004)
#define FLEXCAN_RX14MASK_MI3           (0x00000008)
#define FLEXCAN_RX14MASK_MI4           (0x00000010)
#define FLEXCAN_RX14MASK_MI5           (0x00000020)
#define FLEXCAN_RX14MASK_MI6           (0x00000040)
#define FLEXCAN_RX14MASK_MI7           (0x00000080)
#define FLEXCAN_RX14MASK_MI8           (0x00000100)
#define FLEXCAN_RX14MASK_MI9           (0x00000200)
#define FLEXCAN_RX14MASK_MI10          (0x00000400)
#define FLEXCAN_RX14MASK_MI11          (0x00000800)
#define FLEXCAN_RX14MASK_MI12          (0x00001000)
#define FLEXCAN_RX14MASK_MI13          (0x00002000)
#define FLEXCAN_RX14MASK_MI14          (0x00004000)
#define FLEXCAN_RX14MASK_MI15          (0x00008000)
#define FLEXCAN_RX14MASK_MI16          (0x00010000)
#define FLEXCAN_RX14MASK_MI17          (0x00020000)
#define FLEXCAN_RX14MASK_MI18          (0x00040000)
#define FLEXCAN_RX14MASK_MI19          (0x00080000)
#define FLEXCAN_RX14MASK_MI20          (0x00100000)
#define FLEXCAN_RX14MASK_MI21          (0x00200000)
#define FLEXCAN_RX14MASK_MI22          (0x00400000)
#define FLEXCAN_RX14MASK_MI23          (0x00800000)
#define FLEXCAN_RX14MASK_MI24          (0x01000000)
#define FLEXCAN_RX14MASK_MI25          (0x02000000)
#define FLEXCAN_RX14MASK_MI26          (0x04000000)
#define FLEXCAN_RX14MASK_MI27          (0x08000000)
#define FLEXCAN_RX14MASK_MI28          (0x10000000)
#define FLEXCAN_RX14MASK_MI29          (0x20000000)
#define FLEXCAN_RX14MASK_MI30          (0x40000000)
#define FLEXCAN_RX14MASK_MI31          (0x80000000)

/* Bit definitions and macros for FLEXCAN_RX15MASK */
#define FLEXCAN_RX15MASK_MI0           (0x00000001)
#define FLEXCAN_RX15MASK_MI1           (0x00000002)
#define FLEXCAN_RX15MASK_MI2           (0x00000004)
#define FLEXCAN_RX15MASK_MI3           (0x00000008)
#define FLEXCAN_RX15MASK_MI4           (0x00000010)
#define FLEXCAN_RX15MASK_MI5           (0x00000020)
#define FLEXCAN_RX15MASK_MI6           (0x00000040)
#define FLEXCAN_RX15MASK_MI7           (0x00000080)
#define FLEXCAN_RX15MASK_MI8           (0x00000100)
#define FLEXCAN_RX15MASK_MI9           (0x00000200)
#define FLEXCAN_RX15MASK_MI10          (0x00000400)
#define FLEXCAN_RX15MASK_MI11          (0x00000800)
#define FLEXCAN_RX15MASK_MI12          (0x00001000)
#define FLEXCAN_RX15MASK_MI13          (0x00002000)
#define FLEXCAN_RX15MASK_MI14          (0x00004000)
#define FLEXCAN_RX15MASK_MI15          (0x00008000)
#define FLEXCAN_RX15MASK_MI16          (0x00010000)
#define FLEXCAN_RX15MASK_MI17          (0x00020000)
#define FLEXCAN_RX15MASK_MI18          (0x00040000)
#define FLEXCAN_RX15MASK_MI19          (0x00080000)
#define FLEXCAN_RX15MASK_MI20          (0x00100000)
#define FLEXCAN_RX15MASK_MI21          (0x00200000)
#define FLEXCAN_RX15MASK_MI22          (0x00400000)
#define FLEXCAN_RX15MASK_MI23          (0x00800000)
#define FLEXCAN_RX15MASK_MI24          (0x01000000)
#define FLEXCAN_RX15MASK_MI25          (0x02000000)
#define FLEXCAN_RX15MASK_MI26          (0x04000000)
#define FLEXCAN_RX15MASK_MI27          (0x08000000)
#define FLEXCAN_RX15MASK_MI28          (0x10000000)
#define FLEXCAN_RX15MASK_MI29          (0x20000000)
#define FLEXCAN_RX15MASK_MI30          (0x40000000)
#define FLEXCAN_RX15MASK_MI31          (0x80000000)

/* Bit definitions and macros for FLEXCAN_ECR */
#define FLEXCAN_ECR_TX_ERR_COUNTER(x)  (((x)&0x000000FF)<<0)
#define FLEXCAN_ECR_RX_ERR_COUNTER(x)  (((x)&0x000000FF)<<8)

/* Bit definitions and macros for FLEXCAN_ESR1 */
#define FLEXCAN_ESR_WAK_INT            (0x00000001)
#define FLEXCAN_ESR_ERR_INT            (0x00000002)
#define FLEXCAN_ESR_BOFF_INT           (0x00000004)
#define FLEXCAN_ESR_RX                 (0x00000008)
#define FLEXCAN_ESR_FLT_CONF(x)        (((x)&0x00000003)<<4)
#define FLEXCAN_ESR_FLT_CONF_MASK		(0x00000030)
#define FLEXCAN_ESR_TX                 (0x00000040)
#define FLEXCAN_ESR_IDLE               (0x00000080)
#define FLEXCAN_ESR_RX_WRN             (0x00000100)
#define FLEXCAN_ESR_TX_WRN             (0x00000200)
#define FLEXCAN_ESR_STF_ERR            (0x00000400)
#define FLEXCAN_ESR_FRM_ERR            (0x00000800)
#define FLEXCAN_ESR_CRC_ERR            (0x00001000)
#define FLEXCAN_ESR_ACK_ERR            (0x00002000)
#define FLEXCAN_ESR_BIT0_ERR           (0x00004000)
#define FLEXCAN_ESR_BIT1_ERR           (0x00008000)
#define FLEXCAN_ESR_RWRN_INT           (0x00010000)
#define FLEXCAN_ESR_TWRN_INT           (0x00020000)
#define FLEXCAN_ESR_get_fault_code(esr)	(((esr) & FLEXCAN_ESR_FLT_CONF_MASK)>>4)
#define CAN_ERROR_ACTIVE				0
#define CAN_ERROR_PASSIVE				1
#define CAN_ERROR_BUS_OFF				2

/* Bit definition for FLEXCAN_ESR2 */
#define FLEXCAN_ESR2_IMB            	(0x00002000)
#define FLEXCAN_ESR2_VPS            	(0x00004000)
#define FLEXCAN_ESR2_LTM            	(0x007F0000L)
#define FLEXCAN_ESR2_LTM_BIT_NO       	(16)
#define FLEXCAN_ESR2_LOSTRLF			(0x00000004)
#define FLEXCAN_ESR2_LOSTRMF			(0x00000002)
#define FLEXCAN_ESR2_IMEUF				(0x00000001)
#define FLEXCAN_get_LTM(esr2_value)	(((esr2_value) & (FLEXCAN_ESR2_LTM))>>(FLEXCAN_ESR2_LTM_BIT_NO))		

/* Bit definitions and macros for FLEXCAN_IMASK1 */
#define FLEXCAN_IMASK1_BUF0M           (0x00000001)
#define FLEXCAN_IMASK1_BUF1M           (0x00000002)
#define FLEXCAN_IMASK1_BUF2M           (0x00000004)
#define FLEXCAN_IMASK1_BUF3M           (0x00000008)
#define FLEXCAN_IMASK1_BUF4M           (0x00000010)
#define FLEXCAN_IMASK1_BUF5M           (0x00000020)
#define FLEXCAN_IMASK1_BUF6M           (0x00000040)
#define FLEXCAN_IMASK1_BUF7M           (0x00000080)
#define FLEXCAN_IMASK1_BUF8M           (0x00000100)
#define FLEXCAN_IMASK1_BUF9M           (0x00000200)
#define FLEXCAN_IMASK1_BUF10M          (0x00000400)
#define FLEXCAN_IMASK1_BUF11M          (0x00000800)
#define FLEXCAN_IMASK1_BUF12M          (0x00001000)
#define FLEXCAN_IMASK1_BUF13M          (0x00002000)
#define FLEXCAN_IMASK1_BUF14M          (0x00004000)
#define FLEXCAN_IMASK1_BUF15M          (0x00008000)
#define FLEXCAN_IMASK1_BUF16M          (0x00010000)
#define FLEXCAN_IMASK1_BUF17M          (0x00020000)
#define FLEXCAN_IMASK1_BUF18M          (0x00040000)
#define FLEXCAN_IMASK1_BUF19M          (0x00080000)
#define FLEXCAN_IMASK1_BUF20M          (0x00100000)
#define FLEXCAN_IMASK1_BUF21M          (0x00200000)
#define FLEXCAN_IMASK1_BUF22M          (0x00400000)
#define FLEXCAN_IMASK1_BUF23M          (0x00800000)
#define FLEXCAN_IMASK1_BUF24M          (0x01000000)
#define FLEXCAN_IMASK1_BUF25M          (0x02000000)
#define FLEXCAN_IMASK1_BUF26M          (0x04000000)
#define FLEXCAN_IMASK1_BUF27M          (0x08000000)
#define FLEXCAN_IMASK1_BUF28M          (0x10000000)
#define FLEXCAN_IMASK1_BUF29M          (0x20000000)
#define FLEXCAN_IMASK1_BUF30M          (0x40000000)
#define FLEXCAN_IMASK1_BUF31M          (0x80000000)

/* Bit definitions and macros for FLEXCAN_IFLAG1 */
#define FLEXCAN_IFLAG1_BUF0I           (0x00000001)
#define FLEXCAN_IFLAG1_BUF1I           (0x00000002)
#define FLEXCAN_IFLAG1_BUF2I           (0x00000004)
#define FLEXCAN_IFLAG1_BUF3I           (0x00000008)
#define FLEXCAN_IFLAG1_BUF4I           (0x00000010)
#define FLEXCAN_IFLAG1_BUF5I           (0x00000020)
#define FLEXCAN_IFLAG1_BUF6I           (0x00000040)
#define FLEXCAN_IFLAG1_BUF7I           (0x00000080)
#define FLEXCAN_IFLAG1_BUF8I           (0x00000100)
#define FLEXCAN_IFLAG1_BUF9I           (0x00000200)
#define FLEXCAN_IFLAG1_BUF10I          (0x00000400)
#define FLEXCAN_IFLAG1_BUF11I          (0x00000800)
#define FLEXCAN_IFLAG1_BUF12I          (0x00001000)
#define FLEXCAN_IFLAG1_BUF13I          (0x00002000)
#define FLEXCAN_IFLAG1_BUF14I          (0x00004000)
#define FLEXCAN_IFLAG1_BUF15I          (0x00008000)
#define FLEXCAN_IFLAG1_BUF16I          (0x00010000)
#define FLEXCAN_IFLAG1_BUF17I          (0x00020000)
#define FLEXCAN_IFLAG1_BUF18I          (0x00040000)
#define FLEXCAN_IFLAG1_BUF19I          (0x00080000)
#define FLEXCAN_IFLAG1_BUF20I          (0x00100000)
#define FLEXCAN_IFLAG1_BUF21I          (0x00200000)
#define FLEXCAN_IFLAG1_BUF22I          (0x00400000)
#define FLEXCAN_IFLAG1_BUF23I          (0x00800000)
#define FLEXCAN_IFLAG1_BUF24I          (0x01000000)
#define FLEXCAN_IFLAG1_BUF25I          (0x02000000)
#define FLEXCAN_IFLAG1_BUF26I          (0x04000000)
#define FLEXCAN_IFLAG1_BUF27I          (0x08000000)
#define FLEXCAN_IFLAG1_BUF28I          (0x10000000)
#define FLEXCAN_IFLAG1_BUF29I          (0x20000000)
#define FLEXCAN_IFLAG1_BUF30I          (0x40000000)
#define FLEXCAN_IFLAG1_BUF31I          (0x80000000)

/* Bit definitions and macros for FLEXCAN_MB_CS */
#define FLEXCAN_MB_CS_TIMESTAMP(x)    (((x)&0x0000FFFF)<<0)
#define FLEXCAN_MB_CS_TIMESTAMP_MASK  (0x0000FFFFL)
#define FLEXCAN_MB_CS_LENGTH(x)       (((x)&0x0000000F)<<16)
#define FLEXCAN_MB_CS_RTR             (0x00100000)
#define FLEXCAN_MB_CS_IDE             (0x00200000)
#define FLEXCAN_MB_CS_SRR             (0x00400000)
#define FLEXCAN_MB_CS_CODE(x)         (((x)&0x0000000F)<<24)
#define FLEXCAN_MB_CS_CODE_MASK		(0x0F000000L)
#define FLEXCAN_MB_CS_DLC_MASK			(0x000F0000L)
#define FLEXCAN_MB_CODE_RX_INACTIVE	(0)
#define FLEXCAN_MB_CODE_RX_EMPTY		(4)
#define FLEXCAN_MB_CODE_RX_FULL		(2)
#define FLEXCAN_MB_CODE_RX_OVERRUN		(6)
#define FLEXCAN_MB_CODE_RX_BUSY		(1)

#define FLEXCAN_MB_CS_IDE_BIT_NO        (21)
#define FLEXCAN_MB_CS_RTR_BIT_NO        (20)
#define FLEXCAN_MB_CS_DLC_BIT_NO        (16)

#define FLEXCAN_MB_CODE_TX_INACTIVE	(8)
#define FLEXCAN_MB_CODE_TX_ABORT		(9)
#define FLEXCAN_MB_CODE_TX_ONCE			(0x0C)
#define FLEXCAN_MB_CODE_TX_RESPONSE		(0x0A)
#define FLEXCAN_MB_CODE_TX_RESPONSE_TEMPO	(0x0E)
#define FLEXCAN_get_code(cs)				(((cs) & FLEXCAN_MB_CS_CODE_MASK)>>24)
#define FLEXCAN_get_length(cs)             (((cs) & FLEXCAN_MB_CS_DLC_MASK)>>16)

/* Bit definitions and macros for FLEXCAN_MB_ID */
#define FLEXCAN_MB_ID_STD_MASK		   (0x1FFC0000L)
#define FLEXCAN_MB_ID_EXT_MASK		   (0x1FFFFFFFL)
#define FLEXCAN_MB_ID_IDEXT(x)        (((x)&0x0003FFFF)<<0)
#define FLEXCAN_MB_ID_IDSTD(x)        (((x)&0x000007FF)<<18)
#define FLEXCAN_MB_ID_PRIO(x)         (((x)&0x00000007)<<29)
#define FLEXCAN_MB_ID_PRIO_BIT_NO	(29)
#define FLEXCAN_MB_ID_STD_BIT_NO	(18)
#define FLEXCAN_MB_ID_EXT_BIT_NO	(0)


/* Bit definitions and macros for FLEXCAN_MB_WORD0 */
#define FLEXCAN_MB_WORD0_DATA3(x)     (((x)&0x000000FF)<<0)
#define FLEXCAN_MB_WORD0_DATA2(x)     (((x)&0x000000FF)<<8)
#define FLEXCAN_MB_WORD0_DATA1(x)     (((x)&0x000000FF)<<16)
#define FLEXCAN_MB_WORD0_DATA0(x)     (((x)&0x000000FF)<<24)

/* Bit definitions and macros for FLEXCAN_MB_WORD1 */
#define FLEXCAN_MB_WORD1_DATA7(x)     (((x)&0x000000FF)<<0)
#define FLEXCAN_MB_WORD1_DATA6(x)     (((x)&0x000000FF)<<8)
#define FLEXCAN_MB_WORD1_DATA5(x)     (((x)&0x000000FF)<<16)
#define FLEXCAN_MB_WORD1_DATA4(x)     (((x)&0x000000FF)<<24)

/* Bit definitions and macros for FLEXCAN_RXIMR0 */
#define FLEXCAN_RXIMR0_MI0             (0x00000001)
#define FLEXCAN_RXIMR0_MI1             (0x00000002)
#define FLEXCAN_RXIMR0_MI2             (0x00000004)
#define FLEXCAN_RXIMR0_MI3             (0x00000008)
#define FLEXCAN_RXIMR0_MI4             (0x00000010)
#define FLEXCAN_RXIMR0_MI5             (0x00000020)
#define FLEXCAN_RXIMR0_MI6             (0x00000040)
#define FLEXCAN_RXIMR0_MI7             (0x00000080)
#define FLEXCAN_RXIMR0_MI8             (0x00000100)
#define FLEXCAN_RXIMR0_MI9             (0x00000200)
#define FLEXCAN_RXIMR0_MI10            (0x00000400)
#define FLEXCAN_RXIMR0_MI11            (0x00000800)
#define FLEXCAN_RXIMR0_MI12            (0x00001000)
#define FLEXCAN_RXIMR0_MI13            (0x00002000)
#define FLEXCAN_RXIMR0_MI14            (0x00004000)
#define FLEXCAN_RXIMR0_MI15            (0x00008000)
#define FLEXCAN_RXIMR0_MI16            (0x00010000)
#define FLEXCAN_RXIMR0_MI17            (0x00020000)
#define FLEXCAN_RXIMR0_MI18            (0x00040000)
#define FLEXCAN_RXIMR0_MI19            (0x00080000)
#define FLEXCAN_RXIMR0_MI20            (0x00100000)
#define FLEXCAN_RXIMR0_MI21            (0x00200000)
#define FLEXCAN_RXIMR0_MI22            (0x00400000)
#define FLEXCAN_RXIMR0_MI23            (0x00800000)
#define FLEXCAN_RXIMR0_MI24            (0x01000000)
#define FLEXCAN_RXIMR0_MI25            (0x02000000)
#define FLEXCAN_RXIMR0_MI26            (0x04000000)
#define FLEXCAN_RXIMR0_MI27            (0x08000000)
#define FLEXCAN_RXIMR0_MI28            (0x10000000)
#define FLEXCAN_RXIMR0_MI29            (0x20000000)
#define FLEXCAN_RXIMR0_MI30            (0x40000000)
#define FLEXCAN_RXIMR0_MI31            (0x80000000)

/* Bit definitions and macros for FLEXCAN_RXIMR1 */
#define FLEXCAN_RXIMR1_MI0             (0x00000001)
#define FLEXCAN_RXIMR1_MI1             (0x00000002)
#define FLEXCAN_RXIMR1_MI2             (0x00000004)
#define FLEXCAN_RXIMR1_MI3             (0x00000008)
#define FLEXCAN_RXIMR1_MI4             (0x00000010)
#define FLEXCAN_RXIMR1_MI5             (0x00000020)
#define FLEXCAN_RXIMR1_MI6             (0x00000040)
#define FLEXCAN_RXIMR1_MI7             (0x00000080)
#define FLEXCAN_RXIMR1_MI8             (0x00000100)
#define FLEXCAN_RXIMR1_MI9             (0x00000200)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -