gpt4 book ai didi

microcontroller - 与图16F913通讯

转载 作者:行者123 更新时间:2023-12-01 14:16:15 26 4
gpt4 key购买 nike

这是我的问题,似乎 PIC 16F913 的所有通信线路都驻留在同一组引脚上,这很方便,因为我不必牺牲 GPIO 引脚来进行通信,但是我的问题是现在的问题是如果我使用芯片上的SPI,我怎样才能向RS232发送信息?

出现这个问题的原因是我刚买了一个通过SPI通信的CAN总线芯片,我真的很想看到RS232上的数据,这样我就可以看到消息。 (我真的对 CAN 还不太了解,所以谁知道这是否有意义)。

以下是我看到的选项,也许其他人有更好的想法,而我只是缺少。

  1. 以某种方式设置一个时间方案,每次获取数据时都会在 SPI 和 RS232 之间切换,

-- 这看起来并不难,应该可行,但假设我不想错过一条消息,如果在我写入 RS232 时写入了一条消息,我有可能会错过它吗?

2..我总是可以使用SPI,但是然后通过8条GPIO线路构建自己的通信总线,连接到另一个PIC 16F913,仅使用GPIO线路,然后由于第二个PIC上的RS232线路是空闲的,我可以只需读取数据并将其吐出即可。

-- 这是可行的,但现在我们浪费了 2 个芯片,以及所有 GPIO 线,

必须有更好的方法。或者有吗?

非常感谢任何帮助。

更新:我想澄清一下,显然一个解决方案是使用完全不同的芯片(如果我可以对 18F 进行编程,这实际上可能就是我最终要做的事情),但是,我对最坏的情况感兴趣场景,我的资源有限,只有一些913,上面描述的方法是用这个芯片做到这一点的唯一方法,还是有更好的方法?

最佳答案

您可以对 SPI 总线进行软件实现 - 它比 UART 更容易实现,因为时序并不重要并且您可以控制它。

大多数 CAN 芯片都有一些接收缓冲区,因此如果您正忙于使用 UART 执行某些操作,那么消息将在 CAN 芯片内部进行缓冲。但是……您需要确保能够足够快/足够频繁地从 CAN 芯片中获取消息,这样您就不会丢失一些消息。

您可能必须对 UART Tx 过程使用中断 - 这样您才能在 UART 上发送数据时接收 CAN 消息。

如果您只对某些消息感兴趣,大多数 CAN 芯片都有过滤器 - 这使得您可以轻松地只接收您感兴趣的消息,通常会大幅降低每秒的数据包数量。

关于microcontroller - 与图16F913通讯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3276297/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com