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.

[参考译文] TMS320F280025C:串口热插拔后无法进入RX中断 μ A

Guru**** 2188815 points
Other Parts Discussed in Thread: TMS320F280025C
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1336191/tms320f280025c-rx

器件型号:TMS320F280025C

我在开发板上使用USB转串口模块将PC(窗口)设备与TMS320F280025C连接进行串口通信。当串口正常连接后,PC和单片机能够正常通信。但是如果我将串口拔出后再重新插回,单片机就会无法进入RX中断,导致收不到数据,但是PC是仍然能够收到单片机的TX发送出的数据的。如果想要恢复通信,只能将单片机复位重启。

根据上面的情况,我还测试了:先断开PC和单片机的串口连接,当单片机启动后再重新连接串口,此时也会出现同样的情况,即单片机无法进入RX中断。

我的串口初始化和中断代码如下:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//RX
interrupt void Rx1Isr(void) // SCI-A
{
UCHAR data = SciaRegs.SCIRXBUF.all; //ALL SCIFFRX 21~241~4RXINT
int processBytes = CProtocol_AddToStream(&g_proUart1, data & 0xFF);
SciaRegs.SCIFFRX.bit.RXFFOVRCLR=1; // Clear Overflow flag
PieCtrlRegs.PIEACK.bit.ACK9 = 1;
SciaRegs.SCIFFRX.bit.RXFFINTCLR = 1; // clear Receive interrupt flag
}
void InitUart1Gpio() //SEARCH "GPIO Muxed Pins",GPIO16(TX),17(RX)6,
{
EALLOW; //6=0110b, 01GMUX10MUX
GpioCtrlRegs.GPAGMUX2.bit.GPIO16 = 0x01;
GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 0x02; //16=TX
GpioCtrlRegs.GPAGMUX2.bit.GPIO17 = 0x01;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

我尝试了对SciaRegs寄存器的值进行检查发现,当能够正常进行串口通信的时候,SciaRegs.SCIRXST.μ all的值为2,当PC与单片机断开连接后这个值会变为176,恢复PC与单片机的连接后这个值又会变为178,由此我猜测可能是RX出现了错误但是没有复位导致的无法进入中断,但是我应该怎么做让RX能够支持串口热插拔呢?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我们无法在论坛上支持中文线程。 请用 C2000︎ 微控制器论坛重新发布或寄至微控制器- C2000 设计支持- E2E ( ti.com).”

    此致、

    辛奇塔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    抱歉,之前我在中文论坛上发帖时,网站上有一个错误,网站会自动跳转到个人信息修改页面。 现在我已经找到了一种方法来解决这个错误、并再次在中文论坛上发布。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我找不到删除此错误帖子的方法。 如果可能、请帮我删除不应出现在英文论坛上的帖子。