我现在手里有一块三线SPI 1.8寸液晶,我用模拟SPI驱动刷屏太慢,LCD驱动芯片是ST7735,打算改用STM32硬件SPI可是LCD 的SPI只有三根线,CS (片选)AO(命令)和SDA(数据),液晶的读写数据都通过SDA线进行的,我在STM32的参考手册上看到他的SPI有: 单线双向接收 和 单线双向发送的功能,我对这两种功能不了解,我大部分时间都是通STM32给
LCD发送数据,只有用到读点函数的时候才会接收LCD的数据,请教原子哥,我应该设置成哪种模式,单线双向接收,是指的一根线既能发送也能接收吗?,
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
LCD驱动只有这三根线?
表示怀疑。
这一点必须搞清楚。
---------------------------------
楼主,SPI的LCD是无法读取数据的,网上那些可以用SPI驱动的屏都是2线SPI(片选CS没算在内),也就是一个时钟SCK、一个数据SDA。楼主的这个屏也是这样的,VCC和GND不用说,REST复位引脚,AO我猜应该是命令、数据选择引脚,SDA数据,SCK时钟,LED背光。
两线半双工SPI与三线全双工SPI在库函数配置时都是一样的,只是配置为两线SPI时MISO不配置为复用功能,为IO功能就行,这样SPI就工作在两线只发送模式。如果想加快刷屏速度和减小CPU负担,可以采用DMA方式。
SPI其它工作模式具体说明请参考中文数据SPI章节。
驱动SPI OLED 工程代码请参考: http://openedv.com/posts/list/0/63761.htm?privmsg=25465&&sysid=4#363554
第21楼
---------------------------------
我的这个SPI LCD确实可以读取数据的,读取数据只用 CLK 和SDA ,CS ,读取数据的时候是先设定好地址然发送八位读命令,设定SDA为输入模式后,就可以接收数据了,目前这个读的功能我已经采用模拟SPI的方式实现了,现在我是想通过硬件SPI实现发送和读取的功能,现在我用原子的SPI例程 修改里这一句
把SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex改成SPI_InitStructure.SPI_Direction = SPI_Direction_1Line_Tx 这种模式,我觉得这种应该是单线单向发送模式,接受的时候改成SPI_Direction_1Line_Rx T不知道我这种理解对不对哦,改完后我在板子上跑了一下,发现刷屏速度超级慢,不知道是不是还有别的地方需要设置,
希望楼上的几位大侠帮我看看,还有一点就是我通过emWin 显示一个40x40的图片要十几秒钟,而不用emWin刷屏却很快
不知道什么什么原因我是直接用原子SPI例程SPI1几乎没有改动,但是就是只能写数据不能读,
谢谢
楼主解决了吗?能分享下怎么解决的吗?
一周热门 更多>