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.

把LIN配置成SCI兼容模式遇到的问题,请各位老师指点!



TMS32F28035,把LIN配置成SCI兼容模式,即用LIN模拟SCI,配置为接收8字节,产生一个中断。假如要接收一个9个字节数据包。前8个字节通过中断是可以接收的;第9个字节接收后,不会产生中断,所以我想通过直接从接收数据寄存器读出。问题是有没有LIN接收数据的计数寄存器,指示接收了几个数据,数据取出是否要把它清零?读取的时候还需要注意什么,如复位等?

  • 这跟LIN还是SCI没关系。这是串口中断的应用问题。

    如你所说,是完全正常的现象。

    你设置的是8个字节一个中断,当你发9个字节时,前8个会产生中断。第9个就变成了第一个,在接收缓冲中,等待剩下的7个字节,再一起产生中断。

    SCI是有你说的那个接收数据个数计数的寄存器的,我好像没看到。

  • 接收到第9个数据的时候,后面没有数据了,所以等不到中断。我又想提前拿出第9个数据来处理。

  • 那就再填充7个没用的空数据,保证每包数据都是8个字节的。

  • 我遇到更为复杂的问题,因为无法确定每帧将接收到的数据个数(10~数十不等),而LINRD0~1里的数据在读取完后不能清零(我找不到清零的寄存器,外设复位也不行),也不知道到底接收了多少个字节,这个端口波特率是115K,如果将8字节中断改为单字节中断的话……你懂的。请问怎么破?如果解决不掉的话就只能换端口用4缓冲的了。