首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >STM32H7上SPI通信中的一位移位

STM32H7上SPI通信中的一位移位
EN

Stack Overflow用户
提问于 2019-06-18 13:06:12
回答 1查看 1.8K关注 0票数 1

我正在研究两个Nucleo-H743ZI板之间的SPI通信。我正在使用ST的HAL和SPI轮询API HAL_SPI_TransmitReceive。

它可以正常工作,直到带宽为12 above /s (SPI内核时钟在200 the,预分频器16,CPU总是在400 the),但在上面失败(较小的预分频器)。

我想要理解,因为24或48 Mbit/s看起来并不多,即使在一个质量很差的软件的民意测验中。

当预分频器设置为8时,我没有SPI错误,比如溢出或其他(我直接在寄存器中签入),但是数据是不正确的。仔细看数据,我注意到只有一点变化。

更确切地说,我应该接收到: 0x30 0x31 0x32 .我收到0x180x99.

二进制数:

  • 预计0011 0000 0001 0011 0010.
  • 收到0001 1000 0001 1000 1001 1001.

如果我将接收到的比特流向左移动,就会得到正确的结果。

它对你有什么影响吗?可能是因为配置不好吗?

显然,主从在相位和极性方面都有相同的配置(以及其他的配置,因为源代码大部分是相同的)。

EN

回答 1

Stack Overflow用户

发布于 2019-06-18 18:02:28

48 means意味着每秒6MB。即使你的uC是400兆赫,你只有50个时钟每字节。这远远不够。对于更高的速度,只有DMA是可能的,绝对不是轮询,特别是使用HAL库。

48兆赫的电缆也不容易。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56649880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档