zsf90 发表于 2024-7-7 17:38

spi_i2s_data_transmit spi 发送问题

在调试 ST7789 驱动 LCD,遇到了点问题就是不知道为啥片选信号 CS 不正常,正常情况应该一个数据发送完成后 CS 拉高的,但是逻辑分析仪上显示的是一个数据没有发送完成 CS 就拉高了,大家帮我看看是怎么回事。
这是代码:





逻辑分析仪:


我喜欢打游戏 发表于 2024-7-15 14:57

执行spi_i2s_data_transmit函数之后还要在做一次标志位的判断,

liu96jp 发表于 2024-8-6 14:55

在调试 ST7789 驱动 LCD 时,如果片选信号 CS 不正常,即在一个数据发送完成之前 CS 就被拉高,这通常意味着驱动程序或硬件配置存在问题

kaif2n9j 发表于 2024-8-6 16:02

确保 SPI 传输函数在发送完所有数据后正确地拉高 CS 信号

d1ng2x 发表于 2024-8-6 17:07

如果系统中有中断或其他任务切换,可能会干扰 CS 信号的控制。确保在发送数据期间没有其他任务或中断干扰 SPI 通信

w2nme1ai7 发表于 2024-8-6 18:12

要确保 CS 信号线连接正确,没有短路或断路

q1d0mnx 发表于 2024-8-6 19:20

检查电源和地线,确保电源和地线连接稳定,没有电压波动或接地不良

p0gon9y 发表于 2024-8-6 20:30

需要确保 SPI 时序符合 ST7789 的要求。如果时序不正确,可能会导致 CS 信号提前拉高

y1n9an 发表于 2024-8-6 22:00

尝试降低 SPI 速率,看看是否能解决问题。有时候过高的速率可能导致信号不稳定

chenqianqian 发表于 2024-8-7 08:27

用的硬件SPI还是软件SPI片选信号

ex7s4 发表于 2024-8-7 08:46

检查 CS 信号控制代码,确保在发送数据之前 CS 被拉低,在发送完数据之后 CS 被拉高

t1ngus4 发表于 2024-8-7 10:00

在代码中添加调试打印或使用调试工具(如调试器)来跟踪 CS 信号的控制逻辑

呐咯密密 发表于 2024-8-7 11:02

很明显的一个问题,Sspi_i2s_data_transmit()函数在将最后一个字节数据赋值到SPI发送寄存器之后便会结束,此时SPI硬件接口并不能及时的将数据送出去,就会导致CS提前拉高,所以要在发送完成之后再进行一次标志位判断。

g0d5xs 发表于 2024-8-7 15:00

查阅 ST7789 数据手册:仔细阅读 ST7789 的数据手册,确保所有操作都符合其要求
页: [1]
查看完整版本: spi_i2s_data_transmit spi 发送问题