0

我无法从 ARM LPC2378 微控制器读取串行数据。我必须使用 UART 还是可以使用任何 GPIO 端口?有人有c代码吗?

4

1 回答 1

2

使用 GPIO 端口在技术上是可行的,但是您的软件负责位时序、帧、错误检查等。它通常被称为“bit-banging”,因为您的代码必须执行每一位,因此它是 CPU 密集型的。对于较低的数据速率,您可以从定时器中断运行它。

使用 UART 要容易得多——UART 完成了位定时、成帧、错误检查等繁重的工作。

根据LPC2378 数据表,微控制器有 4 个 UART。所以使用UART是可行的方法。您的串行数据输入的是哪个引脚?串行数据必须连接到可以连接到 4 个 UART 之一的引脚。您必须在微控制器上设置一些寄存器才能将其设置为 UART 使用:

  • 启用 UART 及其设置(那里有很多设置)
  • 设置哪个引脚是 UART 的输入(也许)
  • 其他一些引脚设置

首先,您可以尝试轮询 UART — 读取其“RX 字节可用”标志,直到它显示“有可用字节”,然后从接收字节寄存器中读取该字节。还要读取 RX 错误标志寄存器以查看是否有任何错误。

完成后,您可以让 RX 中断正常工作,因此会生成接收中断来处理传入数据。

这种事情需要一些阅读用户手册数据表的时间。享受!

于 2009-11-30T00:52:09.453 回答