【发布时间】:2010-12-21 04:19:19
【问题描述】:
我无法从 ARM LPC2378 微控制器读取串行数据。我必须使用 UART 还是可以使用任何 GPIO 端口? 有人有c代码吗?
【问题讨论】:
-
您是在谈论从 PC 与您的微控制器通信吗?
标签: c embedded arm microcontroller
我无法从 ARM LPC2378 微控制器读取串行数据。我必须使用 UART 还是可以使用任何 GPIO 端口? 有人有c代码吗?
【问题讨论】:
标签: c embedded arm microcontroller
从技术上讲,使用 GPIO 端口是可行的,但是您的软件负责位时序、帧、错误检查等。它通常被称为"bit-banging",因为您的代码必须执行每个位,因此它是 CPU 密集型的。对于较低的数据速率,您可以从定时器中断运行它。
使用 UART 要容易得多 - UART 负责位时序、帧、错误检查等繁重的工作。
根据the LPC2378 data sheet,微控制器有4个UART。所以使用UART是可行的方法。您的串行数据输入的是哪个引脚?串行数据必须连接到可以连接到 4 个 UART 之一的引脚。您必须在微控制器上设置一些寄存器来设置它以供 UART 使用:
首先,您可以尝试轮询 UART — 读取其“RX 字节可用”标志,直到它显示“有可用字节”,然后从接收字节寄存器中读取该字节。还要读取 RX 错误标志寄存器,看看是否有任何错误。
完成后,您可以让 RX 中断正常工作,因此会生成接收中断来处理传入数据。
这类事情需要一些阅读user manual 和datasheet 的时间。享受吧!
【讨论】: