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.

[参考译文] CC254x 上的 UART 接收数据将丢失

Guru**** 2557070 points
Other Parts Discussed in Thread: CC2541

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/572530/uart-receive-datas-will-be-lost-on-cc254x

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

我仅通过中断接收来自 UART 的数据。

a.初始化 UART

void SCC_init (void)
{
PERCFG &=~(1 << 0);
P0SEL |=(1 << 2)|(1 << 3);
U0CSR |=(1 << 7);
U0GCR |= 11;
U0BAUD |= 216;

UTX0IF = 0;
URX0IF = 0;
U0CSR |=(1 << 6);
URX0IE = 1;
EA = 1;

此_rxbuf_wi = 0;
} 

b.接收数据

HAL_ISR_Function (this_urx0_ISR、URX0_vector)
{
HAL_enter_ISR ();

URX0IF = 0;
this_rxbuf[this_rxbuf_wi]= U0DBUF;

if (++this_rxbuf_wi >= this_RXBUF_size){this_rxbuf_ISR
= 0DBUF


};if
}(+ this_rxbuf_rxbu_r_r_rwi_0_xbuf)= 0) 

例如、测试时始终丢失数据  

a.我从 PC 发送[aa bb 0A 03 12 48 10 f3 7b 98 0d 0A]

b.但仅在 CC254X 的本_rxbuf 上收到[AA BB 03 48 F3 0D 0D 0A]

有什么问题吗? 谢谢!

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

    尝试参考 CC2541_43_44_45_Peripheral_Software_Examples 中的 UART ISR 示例

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


    我只提到 CC2541_43_44_45_Peripheral_Software_Examples 和_hal_UART_ISR.c、您能仔细检查一下吗? 谢谢!

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

    我将 [aa bb 0A 03 12 48 10 f3 7b 98 0d 0A]从 PC 发送到 CC2541_43_44_45_Peripheral_Software_examples 中的 UART_ISR_cc254x 示例、我看到 UART_ISR_cc254x 示例可以接收完整的消息。

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


    使用 OSAL、我添加了 HAL_ENTER_ISR ()/HAL_EXIT_ISR ()并定义了 HAL_UART=false。
    我是否需要删除所有 HAL UART 源代码? 谢谢!

    好的
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于您已经定义了 HAL_UART=false、因此无需删除所有 HAL UART 源代码。