打印

GD32A503 CAN只能收不能发

[复制链接]
1404|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hzh0301|  楼主 | 2023-11-21 11:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
can_struct_para_init(CAN_MDSC_STRUCT, &transmit_message);
   transmit_message.rtr = 0;
    transmit_message.ide = 0;
    transmit_message.code = CAN_MB_TX_STATUS_DATA;
    transmit_message.brs = 0;
    transmit_message.fdf = 0;
    transmit_message.prio = 0;
    transmit_message.data_bytes = 8;
    /* tx message content */
    transmit_message.data = (uint32_t *)(tx_data);
    transmit_message.id = 0x11;

    can_mailbox_config(CAN0, 2, &transmit_message);

可以帮忙看一下哪里出错了吗

使用特权

评论回复
沙发
中国龙芯CDX| | 2023-11-29 12:31 | 只看该作者
CAN接收需要进行相关设置的

使用特权

评论回复
板凳
xlhmx| | 2023-11-30 11:05 | 只看该作者
// 触发CAN消息发送
can_transmit(CAN0, 2);  // 假设使用CAN0,并且配置的邮箱号为2


确保你的CAN模块已经正确初始化,CAN消息的发送函数被正确调用,以及硬件连接和节点地址等设置是正确的。

使用特权

评论回复
地板
xlhmx| | 2023-11-30 11:06 | 只看该作者
你的代码片段看起来主要是在配置CAN消息发送的一些参数,但并没有包含发送操作的具体代码。在你的代码中,你使用了can_mailbox_config函数配置了一个邮箱(mailbox)来发送CAN消息。

在调试CAN通信问题时,可以考虑以下几个方面:

硬件连接: 确保CAN线正确连接,电源供应正常,节点地址配置正确等。

初始化CAN模块: 在你的代码中没有展示CAN模块的初始化过程。确保你在使用CAN模块前正确进行了初始化。

错误处理: 在CAN通信中,可能会发生一些错误,如仲裁丢失、错误传输等。你可能需要在你的代码中添加错误处理的逻辑。

发送代码: 确保你在配置好邮箱后,有相应的代码触发CAN消息的发送。在你的代码片段中并没有展示这一部分的内容。

使用特权

评论回复
5
单片小菜| | 2023-11-30 11:22 | 只看该作者
CAN接收的时候,需要进行设置的。

使用特权

评论回复
6
cyckflove| | 2024-1-17 12:52 | 只看该作者
把CAN时钟源修改为 RCU_CANSRC_HXTAL , 然后调整SEG1/SEG2/PRESCALER参数(即波特率设置),然后就应该可以的。

使用特权

评论回复
7
elephant00| | 2024-1-30 10:42 | 只看该作者
检查CAN总线驱动是否正确配置

使用特权

评论回复
8
两只袜子| | 2024-1-30 10:42 | 只看该作者
CAN总线上的干扰过多

使用特权

评论回复
9
cr315| | 2024-1-30 10:42 | 只看该作者
检查CAN控制器或收发器是否正常工作

使用特权

评论回复
10
elephant00| | 2024-1-30 10:43 | 只看该作者
CAN总线线路是否正常,是否存在断路、短路、接触不良等问题。

使用特权

评论回复
11
发呆爱好者| | 2024-1-30 13:36 | 只看该作者
CAN的收发,需要单独设置的。

使用特权

评论回复
12
中国龙芯CDX| | 2024-1-30 22:01 | 只看该作者
应该是CAN设置的问题导致的

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝