问题是这样的,我想用一个芯片通过CAN实时发送数据,发送的程序写在了主中断里,中断频率也就是发送的频率是20kHz(这个地方能不能实现希望也能解答一下),我连接CAN卡用软件助手可以接收到芯片发送的数据。然后用另外一个芯片来接收数据,用CAN中断的方式来接收,他也是单独连接CAN卡用软件助手发送数据,芯片是能接受到的。
问题来了,当我把这两个芯片(一个发送,一个接收)的CANH、CANL直接连接起来,就没法接收到数据了,就不太懂是为什么,求解答,不胜感激!
Jun Zhang10:
建议你把2个芯片连起来之后也连接CAN卡,如果CAN卡能收到数据说明你的发送方没有问题,问题出在接受方;如果收不到说明发送方有问题,接受方有没有问题进一步查。
问题是这样的,我想用一个芯片通过CAN实时发送数据,发送的程序写在了主中断里,中断频率也就是发送的频率是20kHz(这个地方能不能实现希望也能解答一下),我连接CAN卡用软件助手可以接收到芯片发送的数据。然后用另外一个芯片来接收数据,用CAN中断的方式来接收,他也是单独连接CAN卡用软件助手发送数据,芯片是能接受到的。
问题来了,当我把这两个芯片(一个发送,一个接收)的CANH、CANL直接连接起来,就没法接收到数据了,就不太懂是为什么,求解答,不胜感激!
Seven Han:
您好,
关于can的使用可参考手册section 3.2 :
http://www.ti.com/lit/an/spra876b/spra876b.pdf
问题是这样的,我想用一个芯片通过CAN实时发送数据,发送的程序写在了主中断里,中断频率也就是发送的频率是20kHz(这个地方能不能实现希望也能解答一下),我连接CAN卡用软件助手可以接收到芯片发送的数据。然后用另外一个芯片来接收数据,用CAN中断的方式来接收,他也是单独连接CAN卡用软件助手发送数据,芯片是能接受到的。
问题来了,当我把这两个芯片(一个发送,一个接收)的CANH、CANL直接连接起来,就没法接收到数据了,就不太懂是为什么,求解答,不胜感激!
mangui zhang:
CANH和CANL是一对差分啊 你连到一起肯定有问题的额
这个不像串口RX和TX
问题是这样的,我想用一个芯片通过CAN实时发送数据,发送的程序写在了主中断里,中断频率也就是发送的频率是20kHz(这个地方能不能实现希望也能解答一下),我连接CAN卡用软件助手可以接收到芯片发送的数据。然后用另外一个芯片来接收数据,用CAN中断的方式来接收,他也是单独连接CAN卡用软件助手发送数据,芯片是能接受到的。
问题来了,当我把这两个芯片(一个发送,一个接收)的CANH、CANL直接连接起来,就没法接收到数据了,就不太懂是为什么,求解答,不胜感激!
user4884320:
回复 mangui zhang:
那两个芯片之间通讯不是把之间的CANH和CANH、CANL和CANL分别连接在一起吗?
问题是这样的,我想用一个芯片通过CAN实时发送数据,发送的程序写在了主中断里,中断频率也就是发送的频率是20kHz(这个地方能不能实现希望也能解答一下),我连接CAN卡用软件助手可以接收到芯片发送的数据。然后用另外一个芯片来接收数据,用CAN中断的方式来接收,他也是单独连接CAN卡用软件助手发送数据,芯片是能接受到的。
问题来了,当我把这两个芯片(一个发送,一个接收)的CANH、CANL直接连接起来,就没法接收到数据了,就不太懂是为什么,求解答,不胜感激!
user4884320:
回复 Seven Han:
还有一个问题是,我现在把 BRPreg=1,SEG1reg=2,SEG2reg=1,。这样是不是把波特率改成2.5Mbps了,按照计算好像是这样的,确实也可以通讯,但是我什么我查资料都在说CAN通讯的最快速度就是1Mbps呢?
问题是这样的,我想用一个芯片通过CAN实时发送数据,发送的程序写在了主中断里,中断频率也就是发送的频率是20kHz(这个地方能不能实现希望也能解答一下),我连接CAN卡用软件助手可以接收到芯片发送的数据。然后用另外一个芯片来接收数据,用CAN中断的方式来接收,他也是单独连接CAN卡用软件助手发送数据,芯片是能接受到的。
问题来了,当我把这两个芯片(一个发送,一个接收)的CANH、CANL直接连接起来,就没法接收到数据了,就不太懂是为什么,求解答,不胜感激!
user4884320:
回复 Jun Zhang10:
还有一个问题是,我现在把 BRPreg=1,SEG1reg=2,SEG2reg=1,。这样是不是把波特率改成2.5Mbps了,按照计算好像是这样的,确实也可以通讯,但是我什么我查资料都在说CAN通讯的最快速度就是1Mbps呢?