打印

GD32E505 CAN0 PA11 PA12 无法接收喝发送数据

[复制链接]
1012|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangruiqiys|  楼主 | 2023-4-20 15:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*!
    \brief      configure GPIO
    \param[in]  none
    \param[out] none
    \retval     none
*/
void gpio_config(void)
{
    /* enable can clock */
        rcu_periph_clock_enable(RCU_CAN0);
        rcu_periph_clock_enable(RCU_CAN1);
  rcu_periph_clock_enable(RCU_GPIOB);
        rcu_periph_clock_enable(RCU_GPIOA);
       
   rcu_periph_clock_enable(RCU_AF);
       
  /* configure CAN0 GPIO, CAN0_TX(PA12) and CAN0_RX(PA11) */
       
        gpio_init(GPIOA,GPIO_MODE_IPU,GPIO_OSPEED_50MHZ,GPIO_PIN_11);/*RX*/
        gpio_init(GPIOA,GPIO_MODE_AF_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_12);/*TX*/
       
        gpio_pin_remap_config(GPIO_CAN0_PARTIAL_REMAP,DISABLE);

//        gpio_pin_remap_config(GPIO_CAN0_FULL_REMAP,ENABLE);  
//       
//       
       
//        gpio_init(GPIOB,GPIO_MODE_IPU,GPIO_OSPEED_50MHZ,GPIO_PIN_12);/*RX*/
//        gpio_init(GPIOB,GPIO_MODE_AF_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_13);/*TX*/
//       
//        gpio_pin_remap_config(GPIO_CAN1_FULL_REMAP,ENABLE);

}
void can0_networking_init(void)
{
    can_parameter_struct can_parameter;
    can_filter_parameter_struct can_filter;

                gpio_config();
       
       
       
    can_struct_para_init(CAN_INIT_STRUCT, &can_parameter);
    /* initialize CAN register */
    can_deinit(CAN0);
    /*90M*/
    /* initialize CAN parameters */
    can_parameter.time_triggered = DISABLE;
    can_parameter.auto_bus_off_recovery = DISABLE;
    can_parameter.auto_wake_up = DISABLE;
    can_parameter.auto_retrans = DISABLE;
    can_parameter.rec_fifo_overwrite = DISABLE;
    can_parameter.trans_fifo_order = DISABLE;
    can_parameter.working_mode = CAN_NORMAL_MODE;
    /* configure CAN0 baud rate 1Mbps */
    can_parameter.resync_jump_width = CAN_BT_SJW_1TQ;
    can_parameter.time_segment_1 = CAN_BT_BS1_7TQ;
    can_parameter.time_segment_2 = CAN_BT_BS2_2TQ;
    can_parameter.prescaler = 9;
    /* initialize CAN */
    can_init(CAN0, &can_parameter);
//    can_init(CAN1, &can_parameter);
   
    /* initialize filter */
    /* configure filter mode */
    can_filter.filter_mode = CAN_FILTERMODE_MASK;
    can_filter.filter_bits = CAN_FILTERBITS_32BIT;
    /* configure filter ID, only the 0xaabb expand ID can be received */
    can_filter.filter_list_high = 0x0000;
    can_filter.filter_list_low = 0x0000;
    /* configure filter mask */
    can_filter.filter_mask_high = 0x0000;
    can_filter.filter_mask_low = 0x0000;
    /* select receiver fifo */
    can_filter.filter_fifo_number = CAN_FIFO0;
    can_filter.filter_number = 0;
    can_filter.filter_enable = ENABLE;
    can_filter_init(CAN0, &can_filter);
   
    /* configure CAN0 NVIC */
               
#if defined(GD32E50X_HD)
    /* configure CAN0 NVIC */
    nvic_irq_enable(USBD_LP_CAN0_RX0_IRQn, 0, 0);
#else
    /* configure CAN0 NVIC */
    nvic_irq_enable(CAN0_RX0_IRQn, 0, 0);
#endif /* GD32E50X_HD */
               
    /* enable can receive FIFO0 not empty interrupt */
    can_interrupt_enable(CAN0, CAN_INTEN_RFNEIE0);
               
               
                    /* initialize transmit message */
    can_struct_para_init(CAN_TX_MESSAGE_STRUCT, &can0_transmit_message);
    can0_transmit_message.tx_sfid = 0x00;
    can0_transmit_message.tx_efid = 0x00;
    can0_transmit_message.tx_ft = CAN_FT_DATA;
    can0_transmit_message.tx_ff = CAN_FF_EXTENDED;
    can0_transmit_message.tx_dlen = 8;
    /* initialize receive message */
    can_struct_para_init(CAN_RX_MESSAGE_STRUCT, &can0_receive_message);
               
               
               
}

使用特权

评论回复
沙发
wangruiqiys|  楼主 | 2023-4-20 15:44 | 只看该作者

使用特权

评论回复
板凳
wangruiqiys|  楼主 | 2023-4-21 09:41 | 只看该作者

使用特权

评论回复
地板
yangxiaor520| | 2023-4-23 16:58 | 只看该作者
有什么现象?一上来就是扔代码。

使用特权

评论回复
5
观海| | 2023-5-15 17:06 | 只看该作者
楼主使用的是can通讯方式吗?另一端是什么

使用特权

评论回复
6
tpgf| | 2023-5-15 17:26 | 只看该作者
收发两端有没有接上终端电阻呢?另外硬件连接有没有问题啊

使用特权

评论回复
7
guanjiaer| | 2023-5-16 09:10 | 只看该作者
楼主说的是也无法发送数据是吗 现象是什么呢

使用特权

评论回复
8
heimaojingzhang| | 2023-5-16 10:30 | 只看该作者
楼主可以在调试过程中打断点看看能不能进入发送函数中进行发送数据

使用特权

评论回复
9
keaibukelian| | 2023-5-16 11:29 | 只看该作者
正常运行程序是没有问题的是吗 只是在硬件上没有看到数据?

使用特权

评论回复
10
paotangsan| | 2023-5-16 12:17 | 只看该作者
楼主需要描述一下 当前的硬件现象以及调试的细节

使用特权

评论回复
11
V853| | 2023-5-16 14:16 | 只看该作者
拿CAN分析仪抓一下,感觉是代码配置的问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

13

帖子

1

粉丝