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

有帮助吗?

解决方案

从技术上讲,使用 GPIO 端口是可行的,但随后您的软件负责位定时、成帧、错误检查等。它经常被称为 “位敲打” 因为您的代码必须完成所有工作,因此它是 CPU 密集型的。对于较低的数据速率,您可以从定时器中断运行它。

使用 UART 更容易——UART 完成位定时、成帧、错误检查等艰苦工作。

根据 LPC2378 数据表, ,微控制器有4个UART。因此,使用 UART 是最佳选择。您的串行数据来自哪个引脚?串行数据必须连接到可以连接到 4 个 UART 之一的引脚。您必须在微控制器上设置一些寄存器才能将其设置为 UART 使用:

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top