OpenEdv-开源电子网

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

急求!!! 关于SPI->DR寄存器读取错误的问题

[复制链接]

16

主题

426

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2765
金钱
2765
注册时间
2018-11-8
在线时间
438 小时
发表于 2022-5-19 18:46:20 | 显示全部楼层 |阅读模式
5金钱
情况如图 主函数while循环里只有一条测试函数和500ms的延时函数测试函数里通过SPI 发送48 FF FF FF读取芯片的状态寄存器
返回值是xx 90 00 00 或者xx 10 00 00代表状态正常
之后然后发送43 FF FF FF读取芯片结果寄存器

被测量是个湿度传感器 现在的情况是正常运行时一切正常
我为了测试传感器输出 对传感器哈一口气 然后偶然间发现状态寄存器会返回xx FF FF FF
按照手册这是绝对不可能的(部分位未使用 正常应该回复0)

用示波器观察波形 在异常状态下MISO线上也给出了正确的波形 但是DEBUG中看到SPI->DR寄存器在异常状态下数据全是FF

另外我跟同样用这个芯片的好友要了一份他好用的程序 用CUBEMX加HAL库写的 一切正常(哈气不影响数据,硬件是同一个电路板,备用电路板现象相同,个人认为可以排除硬件原因)
我直接用寄存器写的程序 但是我把我的SPI收发函数和测试函数移植到他的程序上 依然一切正常(个人认为排除了初始化及各种配置的影响 测试函数里仅包含SPI收发函数、数据处理、printf部分)

而且该BUG会持续一段时间后自动恢复,目前测试结果 几秒至几十秒即可恢复

求大佬分析下可能的原因及解决措施

示波器黄色线为SCLK 粉色线为MOSI 绿色线为MISO

正常情况下状态寄存器波形

正常情况下状态寄存器波形

正常情况下结果寄存器波形

正常情况下结果寄存器波形

异常情况下状态寄存器波形

异常情况下状态寄存器波形

异常状态下状态寄存器返回值

异常状态下状态寄存器返回值

正常情况下结果寄存器返回值

正常情况下结果寄存器返回值

正常情况下状态寄存器返回值

正常情况下状态寄存器返回值
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

457

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4428
金钱
4428
注册时间
2018-5-14
在线时间
953 小时
发表于 2022-5-20 08:43:58 | 显示全部楼层
不要用调试器去读取DR寄存器,否则DR寄存器会被清除。
回复

使用道具 举报

16

主题

426

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2765
金钱
2765
注册时间
2018-11-8
在线时间
438 小时
 楼主| 发表于 2022-5-20 10:52:50 | 显示全部楼层
姚先起 发表于 2022-5-20 08:43
不要用调试器去读取DR寄存器,否则DR寄存器会被清除。

不是这个原因 为了防止你说的那种情况 我是在接收完毕时加的断点 看的是SPI_ReadBuff的值 而且调试器会给出DR寄存器最后一个值 在正常运行时这里是没问题的

在测试时也是用串口打印出来的 可以排除这种情况
回复

使用道具 举报

2

主题

457

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4428
金钱
4428
注册时间
2018-5-14
在线时间
953 小时
发表于 2022-5-20 12:59:44 | 显示全部楼层
babyrabbit 发表于 2022-5-20 10:52
不是这个原因 为了防止你说的那种情况 我是在接收完毕时加的断点 看的是SPI_ReadBuff的值 而且调试器会给 ...

你只要打开SPI的寄存器了,调试器就会周期性的读取SPI所有寄存器的值的。
回复

使用道具 举报

16

主题

426

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2765
金钱
2765
注册时间
2018-11-8
在线时间
438 小时
 楼主| 发表于 2022-5-20 13:16:55 | 显示全部楼层
姚先起 发表于 2022-5-20 12:59
你只要打开SPI的寄存器了,调试器就会周期性的读取SPI所有寄存器的值的。

不是调试器的原因
摘掉STLINK 直接用串口输出的话 依然有这种问题

而且这个现象过一段时间可以自己恢复 在这期间我一直开着DEBUG运行最后也能恢复正常采集的状态
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-27 15:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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