spi_i2s_data_transmit spi 发送问题
在调试 ST7789 驱动 LCD,遇到了点问题就是不知道为啥片选信号 CS 不正常,正常情况应该一个数据发送完成后 CS 拉高的,但是逻辑分析仪上显示的是一个数据没有发送完成 CS 就拉高了,大家帮我看看是怎么回事。这是代码:
逻辑分析仪:
执行spi_i2s_data_transmit函数之后还要在做一次标志位的判断, 在调试 ST7789 驱动 LCD 时,如果片选信号 CS 不正常,即在一个数据发送完成之前 CS 就被拉高,这通常意味着驱动程序或硬件配置存在问题 确保 SPI 传输函数在发送完所有数据后正确地拉高 CS 信号 如果系统中有中断或其他任务切换,可能会干扰 CS 信号的控制。确保在发送数据期间没有其他任务或中断干扰 SPI 通信 要确保 CS 信号线连接正确,没有短路或断路 检查电源和地线,确保电源和地线连接稳定,没有电压波动或接地不良 需要确保 SPI 时序符合 ST7789 的要求。如果时序不正确,可能会导致 CS 信号提前拉高 尝试降低 SPI 速率,看看是否能解决问题。有时候过高的速率可能导致信号不稳定 用的硬件SPI还是软件SPI片选信号 检查 CS 信号控制代码,确保在发送数据之前 CS 被拉低,在发送完数据之后 CS 被拉高 在代码中添加调试打印或使用调试工具(如调试器)来跟踪 CS 信号的控制逻辑 很明显的一个问题,Sspi_i2s_data_transmit()函数在将最后一个字节数据赋值到SPI发送寄存器之后便会结束,此时SPI硬件接口并不能及时的将数据送出去,就会导致CS提前拉高,所以要在发送完成之后再进行一次标志位判断。 查阅 ST7789 数据手册:仔细阅读 ST7789 的数据手册,确保所有操作都符合其要求
页:
[1]