公告

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

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
100 likes received

你好。 我正在开发 PSOC 4200 CY8C4245AXI。 我正在尝试让 RS-485 通信正常运行,但到目前为止一直没有成功。 由于布局和资源限制,我必须使用 SCB UART 资源,而不是具有 tx_en 输出的 UART 组件,这意味着我必须在每次 UART 传输后手动禁用 Tx,因为这是半双工。

我的问题以两种不同的方式表现出来,具体取决于它的实现方式。

1。为 " UART Done 添加一个 Tx 中断,"然后在 ISR 中禁用 Tx。

 

这将是我首选的实现方式。 随附的示例 " isr_projec " t 是这样的。 该项目应回显发送的数据。 发生的事情是我向它发送了一个字节(例如,"a"),然后它成功地回显回来。 但是那样它就不会再回传任何数据了。 我确实清除了中断源。

 

2。等待中断发生的繁忙循环。

 

从理论上讲,这应该与上述解决方案同构。 启用传输,循环直到 UART 完成,禁用传输。 这几乎实现了我所期望的效果。

我所期望的:

1。通过 RS-485 将数据发送到 PSOC UART

2。字节被插入到 Rx FIFO

3。在主循环中,"Uart_uartGetChar () 被调"用,其值为非零表示FIFO中有东西并且已出队。

4。启用传输

5。发送已出队的角色

6。等到 " UART Done " Tx 中断被触发 while 循环。

7。禁用传输

8。清除中断

9。根据最初发送的字节数,转到 1 或 3。

 

如果我发送一个字节,它通常会回显。 但是每零一次? 相反,它会回荡一些无关的东西。 不是位移或其他任何东西,但是如果你发送相同的数据,它似乎总是相同的。 例如,发送字符 " " a " 通常"会回复,但也会随机插入 0xD8。

如果我一次发送多个字节,我希望它们会被插入到FIFO中并进行处理,直到FIFO为空,每个字节之间都会出现繁忙循环。 实际发生的事情非常奇怪,因为如果我发送两个字符,比如 " ab",(我测试过的任何两个字符都会发生)。 它根本不会回响任何东西。 但是,如果你发送三个字符,比如 " abc",它只会回显 " c "。 但是它像以前一样用虚假的故障回荡,"通常会回显 " c,但有时会回显其他一些数据。 它只会回显收到的最后一个字节,而其他字节将被忽略。 "收到"的其他数据与您只发送最后一个字节的数据相同,因此,如果您只发送 " c,"它将返回 c,并返回 0x " EC " 的虚假故障。

 

如果有人 CAN 提供一些指导,那就太好了。 附上两个项目,一个采用 ISR 方法,另一个采用繁忙循环方法。 需要注意的是,在我的硬件中,高输出会禁用 RS-485 Tx。 这些简短的示例基于 PSOC 4200 SCB UART 示例,该示例与 PSOC Creator 一起使用,并针对我的硬件进行了修改。

第一张图片正在"反复"发送。 第二个是"反复发送 " abc。 回复是一个字节,显示的是该字节的十六进制值。 因此,将每个空格解释为发送 ascii 数据之间的分隔。 我没有附上第一个示例的输出,因为它只会接收一个字节而不接收其他任何内容。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-4/Simple-UART-Example-Stops-or-doesn-t-work/td-p/489232

0 点赞
1 解答
Translation_Bot
Community Manager
Community Manager
Community Manager
100 likes received

嗨,@RossSmyth

我相信这个问题已经在这个主题中讨论过了。 我们将在原主题中继续讨论,我将继续锁定本主题。

谢谢,问候,
Gautami J

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-4/Simple-UART-Example-Stops-or-doesn-t-work/m-p/489460

在原帖中查看解决方案

0 点赞
1 回复
Translation_Bot
Community Manager
Community Manager
Community Manager
100 likes received

嗨,@RossSmyth

我相信这个问题已经在这个主题中讨论过了。 我们将在原主题中继续讨论,我将继续锁定本主题。

谢谢,问候,
Gautami J

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-4/Simple-UART-Example-Stops-or-doesn-t-work/m-p/489460

0 点赞