我无法从ARM LPC2378微控制器读取串行数据。我是否必须使用UART或任何GPIO端口都可以使用? 是ayone有c代码吗?
答案 0 :(得分:2)
技术上可以使用GPIO端口,但是你的软件负责位定时,成帧,错误检查等。它通常被称为"bit-banging",因为你的代码必须做每一点,所以它是CPU密集。对于较低的数据速率,您可以从定时器中断运行它。
使用UART要容易得多 - UART可以完成位定时,成帧,错误检查等工作。
根据the LPC2378 data sheet,微控制器有4个UART。所以使用UART是可行的方法。您的串行数据是什么引脚?串行数据必须连接到一个引脚,该引脚可以连接到4个UART中的一个。您必须在微控制器上设置一些寄存器,以便将其设置为UART使用:
首先,您可以尝试轮询UART - 读取其“可用RX字节”标志,直到它显示“有可用字节”,然后从接收字节寄存器中读取字节。还要读取RX错误标志寄存器以查看是否有任何错误。
在此工作之后,您可以使RX中断工作,因此会生成接收中断来处理传入数据。
这类事需要user manual和datasheet的一些阅读时间。享受!