This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28022的SPI不能配置成8位传输方式,但是可以配置成16位

Other Parts Discussed in Thread: CONTROLSUITE

最近在用SPI带一个1602的LCD屏,发现如果使用16位传数据ok,但是改为8位传数据时,SIMO线没有信号,CLK线有信号(8位)。

除了该SPICCR.***=7外,还需要修改哪里吗?此时只有时钟信号,在simo上没有信号

***.***=15时,正常工作。SIMO上有信号。

  • 数据是高位先出,发满8位就停止,低8位不会发出。看看你发的数据是不是都小于255。如果是,把数据都移到高位对齐就可以了。

  • 发送的问题是解决了,谢谢!是需要移到高8位才可以发送出去的。

    还有一个问题是在发送时,我是把值赋给SPIDAT寄存器来发送还是SPITXBUF寄存器发送好,发现两个都可以发送数据。但是好像连续发送一串数据就不行了。目前没有用FIFO。

  • 连续发送一串肯定要FIFO,发送的速度肯定没程序执行速度快。那两个寄存器我也不知什么差别,TI的例子用SPITXBUF,所以我一直用这个。

  • 能不能发个FIFO的初始化例程和发送例程过来,不会配置啊。谢谢!

  • 装个controlSuite,所有外设时钟什么的都有例子,有了这些例子,配合蹩脚的英文阅读能力看注释和手册,都不难搞的,这个例子在路径下

    ti\controlSUITE\device_support\f2803x\v127\DSP2803x_examples_ccsv5\spi_loopback_interrupts

    有两个,这个是中断模式的,还有一个不中断的,回上一个目录就什么都有了。

    等等,这个例子好像有点问题,注释说是配置成4级,但实际是两级,发送的时候就是连续发两个。查手册吧,就那句注释说4级那里,按手册改