我无法从 ARM LPC2378 微控制器读取串行数据。我必须使用 UART 还是可以使用任何 GPIO 端口?有人有c代码吗?
问问题
1784 次
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 回答