PIC18F458 CAN通信源程序,Proteus调试出现问题,请教解决方法!

2020-02-07 09:35发布

调试程序时一直都在“while((CANSTAT&0X80)==0);”过不去,不知道是什么原因,请指教!!!
附件是程序和出现的问题!
程序是刘和平的书《PIC18FXXX单片机程序设计及应用》上的例程。
估计是不会有错误的,请指教!
源程序ourdev_278442.rar(文件大小:62K) (原文件名:CAN Debug.rar)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
31条回答
tdh03z
2020-02-07 15:15
没在Proteus环境中调试过CAN通讯,顺便问下你能在仿真中看到什么呢?

CAN通讯的测试是需要2个节点的,你要保证一个节点已经可以正常使用了,然后调试另一个节点的程序,以便达到设计要求。

while((CANSTAT&0X80)==0);这句表示检查CAN数据是否发送成功,没有发送成功则一直循环,如果没有另外一个相同波特率的节点,
会一直死循环的。呵呵,我一般在此死循环中加入计数功能,如果计数值超过一定值还没有跳出循环,则表示通讯失败,强制跳出循环
。可以利用此功能简单的判断通讯线路是否正常。

一周热门 更多>