繁体   English   中英

从微控制器发送命令以通过SPI显示并接收结果

[英]Sending commands from microcontroller to display via SPI and receiving results

好的,这个问题可能有点广泛,因为我真的不知道从哪里开始。 我会努力弄清楚。

我有一个带有已知显示驱动器的手机显示器,因为我有数据表。 该显示器将通过SPI与微控制器(msp430g型)通信。

发送到显示器的某些命令不会产生响应,但有些响应会产生几个“字节”(9位数据)。

我首先以为我应该有一个fifo缓冲区,微控制器向该缓冲区中馈送命令,以便微控制器在移出命令时可以做其他事情。 但是我感到在有响应的情况下,命令会与可能的响应“断开连接”。 而且我不知道该如何处理。

我的第二个想法是将所有命令作为执行所涉及命令所需的(write-> [read * x])的函数。 但这感觉就像我将让微控制器站在等待SPI接口的方式很多。

在这种情况下,做什么是“正常的”? 我猜有很多答案,但是我确定已经写了很多代码,使用某些接口与某些设备进行通信,而在接口“正常工作”时执行其他操作。

如果对我想做的事情含糊不清,请让我知道,我会尽力澄清。

SPI是主从设备,因此从从设备到Rx(我假设显示器将是从设备),您需要传输一个虚拟字节的数据(因此,主设备会摆动时钟线),您应该获取Rx数据在您的Rx(In / Rx / MISO)引脚上计时。

如果有一个硬件SPI接口可以自动处理该问题,那么您可以将其全部留在后台运行,并在完成时得到一个中断。

我不能代表MSP,但是在Coldfire上,SPI硬件可以向Tx / Rx加载一些东西,并且可以执行此操作,在您的示例中,您将在Tx数据的末尾附加一个虚拟字节,并​​且然后,当“就绪”中断发生时,应答字节将位于RX缓冲区的最后一个插槽中。

为了以高效的方式安排读写,我建议使用中断。 MSP430在发送字节和接收字节时都有中断。 当中断触发时,加载要发送的下一个字节(对于tx),或存储接收到的字节(对于rx)。 发送命令后,如果需要,可以设置一个标志来获取响应。 收到答复后,可以为主循环设置一个标志以处理响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM