搜索
楼主: any012

[已解决] HAL库如何设置SPI2一直使能接收中断?

[复制链接]

该用户从未签到

0

主题

3

帖子

0

蝴蝶豆

新手上路

最后登录
2017-7-25
发表于 2017-7-25 09:45:12 | 显示全部楼层
首先非常感谢楼主的精心回复,没想到一年前的帖子楼主也能及时回复,真是什么感谢。我现在不开启接收中断模式,直接HAL_SPI_Receive()读,不过也同样遇到接收数据错位问题。就是在重启主机或从机后,接收数据偶尔会发生右移移位的问题。我怀疑是我的从机Cs信号没起作用,一直是低电平信号。可能是我没有很好理解透彻NSS的作用吧。
回复

使用道具 举报

该用户从未签到

0

主题

3

帖子

0

蝴蝶豆

新手上路

最后登录
2017-7-25
发表于 2017-7-25 20:31:29 | 显示全部楼层
今天测试了一下,个人认为 1:从机在接收主机发来数据之前,从机应先与主机开机,从机开机后一段时间,主机在开机,可避免接收数据错位问题。2:接收数据过程中,若有一方关机了,再次再次开机后,会偶尔存在接收数据存在错位现象。这种情况下,应将两方都关机,重复情况1操作,这样就可以避免接收数据错位现象。   具体怎么从根本上解决接收数据错位问题,我还在苦恼中,哎呀。。。。。。。。。。。。
回复

使用道具 举报

该用户从未签到

76

主题

759

帖子

17

蝴蝶豆

论坛元老

最后登录
2022-5-20
 楼主| 发表于 2017-7-26 09:31:57 | 显示全部楼层
韩教授 发表于 2017-7-25 20:31
今天测试了一下,个人认为 1:从机在接收主机发来数据之前,从机应先与主机开机,从机开机后一段时间,主机 ...

谢谢你的总结。
也做过这样的实验,接收数据错误后,在spi错误处理回调函数里,软件复位单片机。但总觉得复位单片机不是太好的办法。能在合适的时候只复位SPI就好了,不过我重新初始化SPI,感觉仍是会出现错位的现象。
回复

使用道具 举报

该用户从未签到

2

主题

11

帖子

0

蝴蝶豆

初级会员

最后登录
2018-1-25
发表于 2017-11-21 21:36:34 | 显示全部楼层
any012 发表于 2017-7-26 09:31
谢谢你的总结。
也做过这样的实验,接收数据错误后,在spi错误处理回调函数里,软件复位单片机。但总觉得 ...

在搜问题的时候 看到了好多楼主发的帖子 感觉跟我遇到的问题类似。。请问你现在解决了么
我在while(1)前调用了HAL_SPI_Receive_IT while(1)里为空。。然后在回调函数了再次调用了中断接收。。我用示波器测过片选 SCK 是对的。。但是接收到的信号时钟是0。。请问你知道这是怎么回事么
回复

使用道具 举报

该用户从未签到

0

主题

4

帖子

0

蝴蝶豆

初级会员

最后登录
2020-9-2
发表于 2018-3-19 12:47:53 | 显示全部楼层
mark
回复

使用道具 举报

该用户从未签到

3

主题

13

帖子

0

蝴蝶豆

初级会员

最后登录
2020-8-27
发表于 2020-3-15 13:07:57 | 显示全部楼层
any012 发表于 2016-11-24 10:36
放到SPI2_IRQHandler(void)函数里,就可以正常再次调用了。
void SPI2_IRQHandler(void)
{

楼主我按照你的方法把回调放入中断服务函数,主机不停地发数据,按道理从机应该不停地进入中断。目前只有开机进入一次中断,且接收到数据也不对。。。
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-29 21:30 , Processed in 0.164686 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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