硬汉嵌入式论坛

 找回密码
 立即注册
查看: 844|回复: 5
收起左侧

[SPI/QSPI] 郁闷,H750 spi接收不到数据,请教下各位

[复制链接]

4

主题

7

回帖

19

积分

新手上路

积分
19
发表于 2022-10-18 18:51:35 | 显示全部楼层 |阅读模式
工程是跑rtt这个rtos的,最初发现问题是rtt提示spi通信失败,进入底层实际调用hal库的时候发现 传输函数返回的HAL_StatusTypeDef 状态位是 HAL_TIMEOUT。然后我用逻辑分析仪夹了一下spi的线,发现从机是有返回数据的,但是h750的dr寄存器确实没东西,接受的flag也没有置位。
f09479c4-0183-45bf-a35e-093b97b2a50f.jpg
cs线使用io模拟,就是简单传输过去
c15a9f1b-14e4-4950-a136-461c271f7f19.jpg
0x30是传感器id,逻辑分析仪采到的,我在另一块407的板子也是这样设计,能正常通讯。

代码的话我看了引脚配置,外设时钟配置和spi本身的外设配置,感觉都没问题(实际上能发出数据,起码说明时钟和外设配置没错,引脚配置这个就是写一下af,所以也没事)

还有一个疑问,spi是全双工的,即使mcu收不到输入的数据,dr不也应该是接受到0x00的吗?第一次用h750还请各位指教。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
发表于 2022-10-19 09:49:53 | 显示全部楼层
是那个函数返回的HAL_TIMEOUT。
回复

使用道具 举报

4

主题

7

回帖

19

积分

新手上路

积分
19
 楼主| 发表于 2022-10-20 18:35:01 | 显示全部楼层
eric2013 发表于 2022-10-19 09:49
是那个函数返回的HAL_TIMEOUT。

是的,就是SPI的传输函数返回超时,但是无法理解为啥会出现这种情况
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
发表于 2022-10-21 00:29:21 | 显示全部楼层
仅看你的截图还看不出什么问题来,超时时间设置为1s试试。

或者干脆CubeMX生成个SPI配置,然直接调用这个查询方式API即可,看看是否正常,测试很方便。不要使用你当前这个驱动代码了。
回复

使用道具 举报

4

主题

7

回帖

19

积分

新手上路

积分
19
 楼主| 发表于 2022-10-21 09:25:46 | 显示全部楼层
eric2013 发表于 2022-10-21 00:29
仅看你的截图还看不出什么问题来,超时时间设置为1s试试。

或者干脆CubeMX生成个SPI配置,然直接调用这 ...

主要还是怀疑外设驱动部分有问题是吗,引脚配置和时钟配置估计问题不大
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
发表于 2022-10-21 14:43:22 | 显示全部楼层
请输入用户名 发表于 2022-10-21 09:25
主要还是怀疑外设驱动部分有问题是吗,引脚配置和时钟配置估计问题不大

用CubeMX测试下,这个测试很方便。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-20 01:03 , Processed in 0.174178 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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