当使用SPI协议时,输出数据速率是否等同于波特率?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (42)

试图了解SPI协议是如何工作的,而且我正在使用STM32F407G-Discovery板开发基本项目。

该电路板有一个内置的加速度计(LIS3DSH),它使用SPI协议。在用户手册中,它指出了以下内容:

LIS3DSH具有±2g /±4g /±6g /±8g /±16g可动态选择的满量程,并且能够以3.125 Hz至1.6 kHz的输出数据速率测量加速度。

该加速度计使用连接到APB2的SPI1。我使用STM32CubeMX生成初始化代码(包括时钟配置),看起来APB2外设时钟的默认值为84 Mhz。

这是否意味着我需要配置APB2外设时钟以使其落在3.125 Hz和1.6 kHz范围之间?我无法想象这是真实的,因为我无法在STM32CubeMX中获得足够低的值,因为如果我太低,它会引发错误。

我也计算了波特率控制SPI寄存器,它可以让你的系统低至f-PCLK/256

换句话说,我有点卡住使用哪个时钟频率和使用哪种波特率控制。

提问于
用户回答回答于

这两个不相关。最大SPI时钟速率为10Mhz(第14页)。3.125Hz至1.6Khz的输出速度是芯片进行加速转换的速度。在3.125Hz时,每320毫秒就会有一个新的转换结果,在1.6千赫的时候,每625毫秒都有一个转换结果。在转换率,功耗和准确度之间进行权衡。

所属标签

可能回答问题的人

  • 天使的炫翼

    17 粉丝531 提问36 回答
  • 富有想象力的人

    3 粉丝0 提问30 回答
  • 学生

    3 粉丝476 提问28 回答
  • o o

    4 粉丝494 提问27 回答

扫码关注云+社区

领取腾讯云代金券