OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 251|回复: 0

stm32F103和030的SPI仅读模式的讨论

[复制链接]

10

主题

60

帖子

0

精华

高级会员

Rank: 4

积分
676
金钱
676
注册时间
2018-8-9
在线时间
158 小时
发表于 2025-5-13 11:15:36 | 显示全部楼层 |阅读模式
本帖最后由 maidilong 于 2025-5-21 13:42 编辑

以前在使用SPI的时候都是使用全双工模式,今天想试一下SPI的双线仅读模式SPI_Direction_2Lines_RxOnly,但是很奇怪,得到的数据总是有点出错,不完全对。

我的理解是 双线全双工 (SPI_Direction_2Lines_FullDuplex),双线只接收 (SPI_Direction_2Lines_RxOnly),单线只接收 (SPI_Direction_1Line_Rx)、单线只发送模式(SPI_Direction_1Line_Tx)


但是从字面理解,感觉双线只接收 (SPI_Direction_2Lines_RxOnly)和单线只接收 (SPI_Direction_1Line_Rx)好像没有什么区别啊~~都是没有发送,只有接收,


我的情况是这样,双线全双工的时候,SPI用2分频(36M)和4分频(18M),读W25Q128的图片数据是正常的,显示到LCD也正常,但是用单线只接收 (SPI_Direction_1Line_Rx)模式就出问题了,显示到LCD不正常,用逻辑分析仪看了一下,从W25Q128引脚出来的数据是完全正确的,应该是SPI接收数据进入MCU后出的问题,把SPI频率设置到64分频(1M左右)数据就正确了。1M的频率这么慢才正常,这不应该啊。


难道是双线只接收 (SPI_Direction_2Lines_RxOnly)的频率非常快?只要使能SPI就会自动产生,SPI从W25Q128读到的数据我没有及时从DR数据寄存器取出造成覆盖了?从我的程序来看也不应该啊~

我个人目前的感觉是,双线只接收 (SPI_Direction_2Lines_RxOnly)模式的时钟只要使能SPI就会自动产生,感觉时钟信号非常不稳,要用很低的频率来使用?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-26 00:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表