This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM5728: AM5728在DSP1实现CAN总线的问题咨询

Part Number: AM5728

目前已经根据TI原厂的实现了发送和接收配置,能够正常发送,但是接收中断只能实现一次,第二次就无法进入中断了。有以下几个问题想要请教

1:设置CAN接收消息配置之后,只能进行一次中断,想请教一下,这个中断时只针对配置了的消息对象进行中断呢?第二次中断会不会进入下一个消息对象,(CAN一共64个消息对象,我目前配置的是发送32个消息对象,接收32个消息对象),按照参考手册上应该是每个消息对象均可触发中断的,但是第二次是不会触发中断的,请问有哪些情况会导致第二次无法进中断呢?
2:在CAN发送数据的时候,我尝试了一次发送256x20的大型数据包,但是之后最后一个数据包是全的,前面几个都是不完整的,是否有一个函数判断该数据包是否发送完成的判断,否则后面很可能在发送大型数据包的话同样会出现堵塞的问题。
3:can消息对象接收和发送在完成一次8字节的接收之后,会不会出现自加的过程,比如我设置了CAN1的1号对象,接收完成之后会不会直接自动跳转到2号对象去?我在手册上没有看到明确的说法。
  问题比较多,麻烦你解答一下。
  • 请问参考的是TI哪个版本的processor SDK? 

    第二次不能进中断时,各个寄存器的状态如中断标志位等是否和第一次的值一样?

  • 是使用的processor SDK,TI例程里面是循环之后再初始化一次的,所以可以反复进入中断,所以在使用TI的例程是可以进第二次,因为他每次都初始化一次。我参考的是ti-processor-sdk-rtos-am57xx-evm-04.03.00.05这个版本的例程修改的

  • 各个寄存器的状态值是一致的。

  • 问题已经解决,是每次进入中断之后应当先获取当前中断的message num 然后判断在自己分配是的messagenum是发送还是接收,在根据自己的设置来进行相应的清零标志位的操作,非常感谢你的关注。

  • 非常感谢告知解决方法!

x 出现错误。请重试或与管理员联系。