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.

[参考译文] 当发送数据时、SCI (RX 缓冲器)崩溃、并设置为0、其波特率与控制器中定义的波特率不同

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1199156/sci-rx-buffer-crashes-and-set-to-0-when-sending-data-with-a-different-baudrate-as-defined-in-the-controller

主题中讨论的其他器件:TMS320F28055

大家好、

我正在使用 TMS320F28055微控制器。
我的 UART 通信有问题。
我已将 UART 波特率配置为9600、一切运行良好、RX 缓冲器接收一切、中断也被启用。

如果我通过我的 PC (波特率9600)将数据发送到控制器、那么一切都运行得很好。

例如、一旦我将 PC 的波特率设置为1200并发送几次、控制器的 RX 缓冲区就会崩溃、并且其中有0。

如果我将波特率设置回9600、控制器将必须再次接收所有数据。 但是缓冲区仍然只有0、并且他不再接收任何内容。

是否有人知道如何解决此问题、以便即使以不正确的波特率发送数据、RX 缓冲区也不会崩溃。

感谢你的帮助。

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void init_RS232()
{
SciaRegs.SCICCR.all = 0b00000111; //0x0007; // 1 stop bit, No loopback
// No parity, 8 char bits,
// async mode, idle-line protocol
SciaRegs.SCICTL1.all = 0x0003; // enable TX, RX, internal SCICLK,
// Disable RX ERR, SLEEP, TXWAKE
SciaRegs.SCICTL2.all = 0x0003;
SciaRegs.SCICTL2.bit.TXINTENA = 0;
SciaRegs.SCICTL2.bit.RXBKINTENA = 1;
SciaRegs.SCIHBAUD = 0x0000; // 9600 baud @LSPCLK = 15MHz(60 MHz SYSCLK)
SciaRegs.SCILBAUD = 0x00C2;
SciaRegs.SCICTL1.all = 0x0023; // Relinquish SCI from Reset
EALLOW;
PieVectTable.SCIRXINTA = &Interrupt_SCIa_parameterizationPORT_Isr;
EDIS;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    Markus、您好!

    由于发送器的波特率较低、您可能会从数据线被拉低太长时间获得中断检测。 当一个中断检测发生时、您必须通过清零 SWRESET 位来复位 SCI 模块。 SCI 控制1寄存器中描述了此功能。 您应该能够在 RX 中断期间检查中断检测位是否被置位并相应地复位 SCI 模块。 如果您对如何执行此操作有任何疑问、请告诉我。

    谢谢、

    Luke

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

    您好、luke、
    感谢您的帮助、我解决了这个问题

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

    Markus、您好!

    很高兴知道这解决了您的问题、我将关闭此主题。

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