ST意法半导体
直播中

张桂英

7年用户 1417经验值
私信 关注
[问答]

使用STM32F091在SPI1上获取CLK和MOSI时屏幕不会回应怎么解决?

你好呀,
之前已经问过这个问题的变体,但到目前为止我还没有运气。
我正在尝试一个非常简单的设置,我正在使用 SPI 写入显示器,屏幕不会回应。我在 STM32F091 上使用 SPI1,无法在 CLK 和 MOSI 线上获得任何信号。我将其他 GPIO 用于 CS、RST 和 DC。我只是想使用 SPI 驱动程序来控制 CLK 和 MOSI,其余的我手动完成。
我使用 CubeMX 生成代码,但仍然没有得到任何东西。我确信这是某个地方需要翻转的愚蠢控制位,但我不知所措。
以下是生成的 Init 函数:


这是我的主要。我只是一遍又一遍地发送一个字节来寻找线路上的信号。

这是我通过 SPI 传输之前我的 SPI1 寄存器的状态。

NSS 和 NSST 似乎给人们带来了很多问题,但我禁用了 NSS 脉冲。我承认我对 NSS 和 NSST 在做什么没有最深入的了解。

回帖(1)

钱丘宝

2023-2-3 15:41:38
我的 CR 位的组合是否使我实际上接收位而不是传输位?
当您通过 SPI 发送一个字节时,您也会收到一个字节。这并不意外。这就是 SPI 在双向模式下的工作方式。
> 我根本没有看到 DR 寄存器从 0 开始变化。
DR 寄存器不是存储单元。它是一个发送数据和接收数据的寄存器。如果您向 DR 写入一些内容,您不应该期望能够读回它。在您的设置中,您编写 MOSI 并读取 MISO。
> 在我跨过那条线后,RXE 从 0 变为 1。好像倒退了?
通过在调试器中读取 SPI->DR,您正在重置 RXNE 位。可能不是你想要的。
我认为这一切都可以用硬件错误来解释。如果将引脚设置为 GPIO,可以切换它们吗?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分