你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

spi中断接收模式,被干扰后数据会一直错位。

[复制链接]
any012 提问时间:2017-5-18 16:39 /
阅读主题, 点击返回1楼
收藏 2 评论22 发布时间:2017-5-18 16:39
22个回答
any012 回答时间:2017-5-23 09:29:26
本帖最后由 any012 于 2017-5-23 10:13 编辑
oujisang 发表于 2017-5-22 17:33
不管三七二十一 直接多读几次就可以了 变量= hspi2.Instance->DR;

QQ图片20170523092547.png
SPI接收时,应该是按sclk来8个或16个信号后,将移位寄存器的数据放到接收缓冲区,如果接收中断使能的话,会置位RXNE。
读DR,应该是读接收缓冲区吧?
疑惑,读DR,会产生哪些影响?

---------------------------------------------------------------------------

QQ图片20170523093732.png

我的理解是有个计数器,计SCLK信号为8或16时,移位寄存器数据放到接收缓冲区,置位RXNE。
读DR,RXNE复位。但这个计数器是否也会跟着复位?

------------------------------------------------------------------------------

试了下,在PC6下降沿中断里,多加了几句读SPI的DR寄存器,没有效果。


oujisang 回答时间:2017-5-24 11:46:33
看样子数据在移位寄存器里面了,可以尝试一下关闭SPI使移位寄存器,使位计数清零,控制SPI关闭的寄存器SPI_CR1的bit6位SPE!
andrewchen 回答时间:2018-6-30 22:44:36
奇怪的是总是错8位,或16位,为啥不会错 5位,7位呢?

123

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版