STM32 can总线问题 用示波器查看没有信号发出,用环回模式测试是正常的,但改为正常模式时就不能发出信号了
在发送之后加了一个while((CAN_TransmitStatus(TransmitMailbox)!=CANTXOK)&&(i!=0xFF)){i++;}判断是否发出...
在发送之后加了一个
while((CAN_TransmitStatus(TransmitMailbox) != CANTXOK) && (i != 0xFF))
{
i++;
}判断是否发出的语句,得到CAN_TransmitStatus(TransmitMailbox) 始终不等于 CANTXOK说明发送不成功。很着急希望有高手指点一下 展开
while((CAN_TransmitStatus(TransmitMailbox) != CANTXOK) && (i != 0xFF))
{
i++;
}判断是否发出的语句,得到CAN_TransmitStatus(TransmitMailbox) 始终不等于 CANTXOK说明发送不成功。很着急希望有高手指点一下 展开
1个回答
展开全部
TransmitMailbox可能返回的返回值可能是0.1.2和4,你可以看看你发送完以后收到的这个TransmitMailbox是不是等于4,等于4就没有必要执行你上面的这个循环了,当返回4时表示当前CAN控制器无空闲邮箱。CAN是需要至少两个正常节点才能通信的。
追问
现在主要是我发不出去信号,感觉寄存器啥的设置没问题的,这位仁兄你有这个can正常发送程序嘛?能不能发给我一份,我的邮箱是373334371@qq.com
追答
我也是用例程来发送的,另外,CAN是需要至少两个正常的节点才能发出数据的,否则总线会自动关闭,所以你至少要用两个CAN连在一起才能发送出来。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询