公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,

我正在尝试创建一个项目,该项目将在按键时将 UART 数据发送到另一台设备并获得响应。
但我无法收到另一台设备的回复。

我们有一个微控制器,它可以通过 UART 向 modbus 查询响应数据。
我们可以从我们的 CY8C4248LQI-BL583 设备发送 UART 查询,该查询也会在其他微控制器端接收。 微控制器也会做出响应,但我无法获得所有数据。

查询数据-> readQuery [] ={0x01, 0x03, 0x10, 0x10, 0x00,0x01, 0xAA, 0xAA};

预期的数据响应{ 0x01, 0x03, 0x02, 0x0E, 0x1c, 0xBD, 0xED, 0xAA}

但是我没有得到满的缓冲区,有人能帮我在 UART 上获取完整的数据流吗。

我将该项目作为附件分享,以供您参考。

谢谢

0 点赞
1 解答
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

@Janarthanan

我看到在 UART 组件配置中,你已将 Rx FIFO 大小设置为 8。使用的 UART 组件的内部硬件 FIFO 大小为 4 字节。 当 RX 缓冲区大小大于 4 字节时,将自动启用内部 RX 中断 ISR,并选择并禁用 RX — On Byte Received 中断源,因为这会导致处理程序功能不正确。

我想这就是你无法接收更多字节的原因。

我附上一个 uart_Full_Duplex 代码示例,你可以在其中将 FIFO 大小设置为 8。 可以通过使用内部 UART 组件中断、大型内部软件缓冲区(在您的情况下大小为 8)以及主回路中的轮询环绕方法来扩展此设计。 要启用此功能,请设置公用中的 INTERRUPT_CODE_ENABLED 定义。 移至 DISABLED 并在 UART 组件配置对话框的高级选项卡中增加 RX 和 TX 缓冲区的大小。

你能否试试上面的方法,告诉我们这些更改能否解决你的问题?

最好的问候
Ekta

在原帖中查看解决方案

0 点赞
1 回复
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

@Janarthanan

我看到在 UART 组件配置中,你已将 Rx FIFO 大小设置为 8。使用的 UART 组件的内部硬件 FIFO 大小为 4 字节。 当 RX 缓冲区大小大于 4 字节时,将自动启用内部 RX 中断 ISR,并选择并禁用 RX — On Byte Received 中断源,因为这会导致处理程序功能不正确。

我想这就是你无法接收更多字节的原因。

我附上一个 uart_Full_Duplex 代码示例,你可以在其中将 FIFO 大小设置为 8。 可以通过使用内部 UART 组件中断、大型内部软件缓冲区(在您的情况下大小为 8)以及主回路中的轮询环绕方法来扩展此设计。 要启用此功能,请设置公用中的 INTERRUPT_CODE_ENABLED 定义。 移至 DISABLED 并在 UART 组件配置对话框的高级选项卡中增加 RX 和 TX 缓冲区的大小。

你能否试试上面的方法,告诉我们这些更改能否解决你的问题?

最好的问候
Ekta

0 点赞