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

SPI从机的问题

[复制链接]
uwyciw100 提问时间:2017-8-11 16:31 /
在使用stm32f405做SPI从机,使用cube产生的代码。
当使用HAL_SPI_TransmitReceive_IT时,发现芯片只在复位后的第一次传输时能够接收到数据,以后的传输既没有中断产生,也没有数据更新。
有没有遇到过这种情况的朋友,麻烦给点建议。谢谢。
收藏 评论12 发布时间:2017-8-11 16:31

举报

12个回答
uwyciw100 回答时间:2017-8-18 09:36:42
找到问题原因了,在此记录一下。
当系统存在多个从机时,stm32做从机,在自身不参与通信时,要把SPI外设关掉,当自身参与通信时,再打开。如此操作,便能正常通信了。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 结贴奖励

查看全部评分

奏奏奏 回答时间:2017-8-11 18:51:40
本帖最后由 奏奏奏 于 2017-8-11 18:59 编辑

我这里做过类似的测试,压缩包里面有主机与从机的源代码
坚果云分享下载地址:
http://www.jianguoyun.com/p/Dfyj1LkQyYiWBhjomjI
你需要注意的是设置SPI通讯的波特率,主机与从机都要设置成一样的,如果要排查的话可以先适当调低,测试成功了再调高。
uwyciw100 回答时间:2017-8-14 08:44:57
奏奏奏 发表于 2017-8-11 18:51
我这里做过类似的测试,压缩包里面有主机与从机的源代码
坚果云分享下载地址:
http://www.jianguoyun.com ...

cube的软件里没有设置从机波特率的地方,你是在生成代码后,修改了代码中的配置吗?
张亚飞 回答时间:2017-8-14 09:40:12
uwyciw100 发表于 2017-8-14 08:44
cube的软件里没有设置从机波特率的地方,你是在生成代码后,修改了代码中的配置吗? ...

他说的波特率应该是分频值。
uwyciw100 回答时间:2017-8-14 09:50:44
张亚飞 发表于 2017-8-14 09:40
他说的波特率应该是分频值。

即便是分频值,在cube软件上和生成的代码中,关于从机都没有相应的设置。
衔胆栖冰 回答时间:2017-8-14 09:53:17
SPIx global interrupt 使能了没
张亚飞 回答时间:2017-8-14 10:00:27
uwyciw100 发表于 2017-8-14 09:50
即便是分频值,在cube软件上和生成的代码中,关于从机都没有相应的设置。 ...

没有用过从机模式,设置时钟应该是没有,从机的时钟是主机给的。
张亚飞 回答时间:2017-8-14 10:03:38
uwyciw100 发表于 2017-8-14 09:50
即便是分频值,在cube软件上和生成的代码中,关于从机都没有相应的设置。 ...

建议先不要用中断式接收,我之前调试主机模式时直接用的中断函数,收发也有异常。为了节省时间改成HAL_SPI_TransmitReceive()接收再调试就好了。
uwyciw100 回答时间:2017-8-14 10:11:49
衔胆栖冰 发表于 2017-8-14 09:53
SPIx global interrupt 使能了没

使能了
uwyciw100 回答时间:2017-8-14 10:14:06
张亚飞 发表于 2017-8-14 10:03
建议先不要用中断式接收,我之前调试主机模式时直接用的中断函数,收发也有异常。为了节省时间改成HAL_SP ...

我尝试了HAL_SPI_TransmitReceive,依然有问题。理想状态是用HAL_SPI_TransmitReceive_IT,不过当前总是有各种问题。不使用中断,和使用DMA都尝试。不知道SPI从机会不会像I2C从机一样,芯片存在BUG。
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版