tftgd 发表于 2023-11-9 11:47:33

51单片机的CAN通讯问题

小弟刚从业,有一个问题想请教一下各位大佬。

就是我用的时C8051F040的芯片基于RTX51TINY使用CAN通信,但是当我加上一串代码后,我之前好的通信就崩掉了。而且这一串代码不拘泥一样的类型,我加一个数组左移,或者设置一个变量让他自增通讯都会崩掉,甚至我就加了一个NOP就崩了,删掉之后又好了, 我也尝试把代码精简,但是即使把之前的代码精简了,删了一堆东西,但是这个问题始终存在。想请问一下各位大佬这个该怎么处理啊?

eric2013 发表于 2023-11-9 13:00:45

发你正常的代码和不正常的代码看下。

tftgd 发表于 2023-11-9 14:45:07

我的代码逻辑是这样的,通过CAN通信给从机发送指令,然后通过SPI发送相应的数据格式,再通过SPI返回的数据来进行下一步动作

eric2013 发表于 2023-11-10 08:41:27

tftgd 发表于 2023-11-9 14:45
我的代码逻辑是这样的,通过CAN通信给从机发送指令,然后通过SPI发送相应的数据格式,再通过SPI返回的数据 ...

你的代码是SPI部分的,看不出CAN的问题。

tftgd 发表于 2023-11-10 16:31:42

eric2013 发表于 2023-11-10 08:41
你的代码是SPI部分的,看不出CAN的问题。

硬汉哥,这是我CAN的初始化代码,我现在随便动点代码通信就崩了,一直显示错误被动

eric2013 发表于 2023-11-11 08:53:06

tftgd 发表于 2023-11-10 16:31
硬汉哥,这是我CAN的初始化代码,我现在随便动点代码通信就崩了,一直显示错误被动

这个看着也没什么问题。 也没有大的局部变量。

tftgd 发表于 2023-11-13 15:26:19

eric2013 发表于 2023-11-11 08:53
这个看着也没什么问题。 也没有大的局部变量。

硬汉哥,我的状态寄存器显示是帧形态错误,当我发送一个帧后我的错误寄存器就满了,用示波器抓了一下发现一下发了很多帧。会不会是我的波特率设置的不精准的缘故?但是我其他没用RTX51TINY的板子也用的这个波特率也可以通信
页: [1]
查看完整版本: 51单片机的CAN通讯问题