STM32 can总线问题 用示波器查看没有信号发出,用环回模式测试是正常的,但改为正常模式时就不能发出信号了

在发送之后加了一个
while((CAN_TransmitStatus(TransmitMailbox) != CANTXOK) && (i != 0xFF))
{
i++;
}判断是否发出的语句,得到CAN_TransmitStatus(TransmitMailbox) 始终不等于 CANTXOK说明发送不成功。很着急希望有高手指点一下

TransmitMailbox可能返回的返回值可能是0.1.2和4,你可以看看你发送完以后收到的这个TransmitMailbox是不是等于4,等于4就没有必要执行你上面的这个循环了,当返回4时表示当前CAN控制器无空闲邮箱。CAN是需要至少两个正常节点才能通信的。追问

现在主要是我发不出去信号,感觉寄存器啥的设置没问题的,这位仁兄你有这个can正常发送程序嘛?能不能发给我一份,我的邮箱是[email protected]

追答

我也是用例程来发送的,另外,CAN是需要至少两个正常的节点才能发出数据的,否则总线会自动关闭,所以你至少要用两个CAN连在一起才能发送出来。

温馨提示:答案为网友推荐,仅供参考