关于STM32_CAN

2019-07-20 22:38发布

        CAN1->sFilterRegister[0].FR1=0X00000000;//32位ID
        CAN1->sFilterRegister[0].FR2=0X00000000;//32位MASK

        在例程代码里我看到这两句没找到在哪定义的。我想问一下作用是什么?新手求教多谢。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
365mcu
1楼-- · 2019-07-21 01:30
冷枫漠然 发表于 2016-4-26 20:06
定义的这个结构体在哪???我没有找到呢???

typedef struct
{
  uint16_t CAN_FilterIdHigh;             /*!< Specifies the filter identification number (MSBs for a 32-bit
                                              configuration, first one for a 16-bit configuration).
                                              This parameter can be a value between 0x0000 and 0xFFFF */

  uint16_t CAN_FilterIdLow;              /*!< Specifies the filter identification number (LSBs for a 32-bit
                                              configuration, second one for a 16-bit configuration).
                                              This parameter can be a value between 0x0000 and 0xFFFF */

  uint16_t CAN_FilterMaskIdHigh;         /*!< Specifies the filter mask number or identification number,
                                              according to the mode (MSBs for a 32-bit configuration,
                                              first one for a 16-bit configuration).
                                              This parameter can be a value between 0x0000 and 0xFFFF */

  uint16_t CAN_FilterMaskIdLow;          /*!< Specifies the filter mask number or identification number,
                                              according to the mode (LSBs for a 32-bit configuration,
                                              second one for a 16-bit configuration).
                                              This parameter can be a value between 0x0000 and 0xFFFF */

  uint16_t CAN_FilterFIFOAssignment;     /*!< Specifies the FIFO (0 or 1) which will be assigned to the filter.
                                              This parameter can be a value of @ref CAN_filter_FIFO */
  
  uint8_t CAN_FilterNumber;              /*!< Specifies the filter which will be initialized. It ranges from 0 to 13. */

  uint8_t CAN_FilterMode;                /*!< Specifies the filter mode to be initialized.
                                              This parameter can be a value of @ref CAN_filter_mode */

  uint8_t CAN_FilterScale;               /*!< Specifies the filter scale.
                                              This parameter can be a value of @ref CAN_filter_scale */

  FunctionalState CAN_FilterActivation;  /*!< Enable or disable the filter.
                                              This parameter can be set either to ENABLE or DISABLE. */
} CAN_FilterInitTypeDef;
365mcu
2楼-- · 2019-07-21 02:54
CAN1->sFilterRegister[0].FR1=0X00000000;//32位ID 是你需要接收的ID范围
  CAN1->sFilterRegister[0].FR2=0X00000000;//32位MASK 结合上面设置屏蔽其他地址范围的bit为1必须与FR1一致值才能通过,0表示无所谓与FR1是否一直,这样组合就可以实现过滤了。
冷枫漠然
3楼-- · 2019-07-21 07:10
365mcu 发表于 2016-4-26 17:35
CAN1->sFilterRegister[0].FR1=0X00000000;//32位ID 是你需要接收的ID范围
  CAN1->sFilterRegister[0].FR ...

定义的这个结构体在哪???我没有找到呢???

一周热门 更多>