gpt4 book ai didi

arm - STM32F1 - 在裸机上使用主 SPI

转载 作者:行者123 更新时间:2023-12-02 09:21:38 25 4
gpt4 key购买 nike

我一直在尝试将一些 AVR 代码移植到 ARM 来驱动简单的 SPI LCD,作为学习练习(总的来说,我对 ARM 非常陌生)。为此,我只需要在主模式下使用 SPI。

我查看了 datasheet对于我的设备(STM32F103C8),发现我需要的 SPI1 引脚、SCK 和 MOSI 分别与其他外设一起映射为 PA5 和 PA7 的替代功能(第 29 页)。我的理解是,为了在这些引脚上使用 SPI 功能,我需要确保禁用映射到同一引脚的其他任何内容。然而,当查看外设时钟控制寄存器的默认值时,其他功能似乎已被禁用。

我查看了 reference manual 中的 SPI 部分,包括25.3.3 - 在主模式下配置 SPI 部分。首先,我在 APB2ENR 中启用了 SPI1 主时钟,并按照本节中的步骤根据我的需要配置 SPI1。我还更改了 PA5/7 的设置,将其模式设置为“交替功能输出推挽”(9.1.4)。最后,我通过设置 CR1_SPE 启用了 SPI1。

根据我的阅读,我认为在按上述方式配置 SPI 后,将一个值加载到 SPI1 数据寄存器中,数据就会被移出。然而,在写入数据后,SPI状态寄存器中的TXE标志从未被置位,这表明我写入的数据只是在那里。

此时,我假设还有其他一些内容我未能正确配置。例如,我不能 100% 确定如何处理 PA5/7 引脚。我试图从数据表中了解什么,但我一无所获。在它发挥作用之前还需要做什么吗?

最佳答案

我几乎可以肯定你没有设置SSMSSI SPIx->CR1 中的位登记。这些芯片中的 SPI 非常简单,对于轮询传输,您需要设置 SSM , SSI , SPE , MSTRLSBFIRST 中的正确格式( CPOLCPHABR )和正确的波特率( SPIx->CR1 )就可以开始了。

关于arm - STM32F1 - 在裸机上使用主 SPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42167712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com