查看: 2861|回复: 0

[MQX] MQX CAN总线

[复制链接]

该用户从未签到

2

主题

3

帖子

0

新手上路

Rank: 1

积分
26
最后登录
2015-10-26
发表于 2015-9-6 17:53:16 | 显示全部楼层 |阅读模式
void Main_Task(uint_32 parameter)
{
   _int_install_unexpected_isr();
   _bsp_flexcan_io_init(CAN_DEVICE);

   frequency                         = 125;                                                        //selected frequency
   data_len_code         = 1;                                                                //Data length
   format                                 = FLEXCAN_STANDARD;        //Select message format

   /* Select mailbox number */
   RX_mailbox_num                                 = 0;
   TX_mailbox_num                                 = 1;
   RX_remote_mailbox_num         = 2;
   TX_remote_mailbox_num         = 3;
        //NODE==1
   RX_identifier                                 = 0x123;
   TX_identifier                                 = 0x321;
   RX_remote_identifier = 0x0F0;
   TX_remote_identifier = 0x00F;

   bit_timing0         = bit_timing1 = 0;                        /* We use default settings */
  flexcan_mode = FLEXCAN_LOOPBK_MODE;        /* Select operation mode:FLEXCAN_LOOPBK_MODE | FLEXCAN_NORMAL_MODE*/
   interrupt                 = FLEXCAN_ENABLE;                         /* Enable interrupt */
   flexcan_error_interrupt = 1;                                        /* Enable error interrupt */

   FLEXCAN_Softreset ( CAN_DEVICE);/* Reset FLEXCAN device */
         FLEXCAN_Initialize ( CAN_DEVICE, bit_timing0, bit_timing1, frequency, FLEXCAN_IPBUS_CLK);/* Initialize FLEXCAN device */
         FLEXCAN_Select_mode( CAN_DEVICE, flexcan_mode);/* Select mode */
         FLEXCAN_Set_global_stdmask (CAN_DEVICE, 0x222 );
         
   if(flexcan_error_interrupt == 1)/* Enable error interrupts */
   {
      FLEXCAN_Install_isr_err_int(CAN_DEVICE, MY_FLEXCAN_ISR );
                        FLEXCAN_Install_isr_boff_int(CAN_DEVICE, MY_FLEXCAN_ISR  );
      FLEXCAN_Error_int_enable(CAN_DEVICE);
   }
         _lwevent_create(&event, LWEVENT_AUTO_CLEAR);  /* Set up an event group */
   _task_create(0, RX_TASK, 0);
   _task_create(0, TX_TASK, 0);
   FLEXCAN_Start(CAN_DEVICE);/* Start FLEXCAN */
   while(1){}
}

maibox是用来的干嘛的?
mailbox和remote_mailbox有什么区别,
如果我采用flexcan_mode = FLEXCAN_LOOPBK_MODE;模式,发送的时候才用这个哪个mailbox_num,接收就要初始化哪个mailbox_num,
FLEXCAN_Initialize_mailbox( CAN_DEVICE, TX_remote_mailbox_num, TX_remote_identifier,8, FLEXCAN_TX, format,interrupt);
FLEXCAN_Initialize_mailbox( CAN_DEVICE, TX_mailbox_num, TX_identifier,data_len_code, FLEXCAN_TX, format,interrupt);/* Initialize mailbox */
FLEXCAN_Activate_mailbox(CAN_DEVICE, TX_mailbox_num, FLEXCAN_TX_MSG_BUFFER_NOT_ACTIVE);
。。。
result = FLEXCAN_Tx_message(CAN_DEVICE, TX_mailbox_num, TX_identifier, format, data_len_code, &data);





我知道答案 目前已有0人回答
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-20 23:25 , Processed in 0.108911 second(s), 21 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表