0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

两块STM32之间SPI通讯进行的注意事项

汽车玩家 来源:嵌入式大杂烩 作者:嵌入式大杂烩 2020-04-04 17:24 次阅读

之前分享过的SPI通讯实例:STM32硬件SPI主从通信实例,是基于一块STM32的两个SPI通讯。如果要进行两块STM32之间的SPI通讯,需要注意一些什么呢?

两块STM32之间的SPI通讯平时用的比较少,之前我也没有用过,网上也查了很多资料,没有找到现成的,能直接用的例子(做软件的不就是copy吗=v=)。

所以只能自己来实现了,本以为与在同一片STM32上做SPI主、从机通信一样,以为挺简单的,但是实际做起来还是遇到了不少问题,比如出现数据移位、多出了一些数据等问题。下面简单分享一下实现过程:

一、整体框图及说明

这里使用STM32F429IGT6作为主机,STM32F103ZET6作为从机,都配置为全双工。本例要实现的功能就是主、从机之间的数据互传。

主机往从机发送的数据为:

两块STM32之间SPI通讯进行的注意事项

从机往主机发送的数据为:

两块STM32之间SPI通讯进行的注意事项

二、关键代码

主机关键代码:

两块STM32之间SPI通讯进行的注意事项

从机关键代码:

两块STM32之间SPI通讯进行的注意事项

可见,主机与从机的代码大多都一样。只是从机多了一步启动传输的操作,这一步很关键,少了这一步传输就不正常。这是为了制造主机发送的同时也要接收到数据的条件。这一点参考手册里也有相关说明:

两块STM32之间SPI通讯进行的注意事项

两块STM32之间SPI通讯进行的注意事项

此处,要营造这样的条件,必须先启动从机,然后再启动主机。只有保证主机发送的同时有接收到数据,才能保证其时序的正常,否则可能会产生数据错位,或者会产生多余数据等情况。

三、调试

我们平时在做实际的开发时,一般很难做到把所有代码写完,跑一遍就能成功,都是需要进行各个子模块的调试,一步一步来,确保各个子模块都没有问题之后,整体跑起来自然就比较稳定。

一些经验丰富的软件工程师常会教导一些年轻的软件工程师:在接到一个开发任务之前,先不要急着码代码,首先需要明确你这项任务的需求是什么,把任务分解成各个模块,然后在电脑上或纸上画出整体框图,确保框图的正确性之后,再根据框图来编写代码、调试。

此处,我们要调试SPI主从通信,自然也是这样分模块进行调试的:

确认主机是否能正确发送数据

确认从机是否能正确发送数据(返回数据给从机)

确认从机是否接收到主机发过来的数据

确认主机是否接收到从机发过来的数据

若这几个点明确了,都没问题之后。就可以明确我们的SPI主、从机的基本通讯没有问题了,之后就可以进行我们的协议方面处理了(本例中没有这一部分)。下面分别看一些这几个点:

1、确认主机是否能正确发送数据

方法:使用逻辑分析仪捕捉主机的MOSI、SCK这两条信号线,查看其波形。实际测得地结果如下:

两块STM32之间SPI通讯进行的注意事项

其中,白色为SCK信号线波形,橙色为MOSI信号线波形。显然,从MOSI波形可以看出其与我们主机发送的数据一致,自然就可以确认主机发送数据没问题了。

此处,细心的朋友可能会发现时钟线波形的两个数据交互处的高电平总是宽一些,这里我们的SPI传输数据的位数设置为8bit,则每一个数据对应的第8位对应的时钟信号的高电平总会长一些;若我们的SPI传输数据的位数配置为16位,则第16位对应的时钟信号的高电平总会长一些。

出现这个现象其实与我们的代码是有一定关系的。实际测试中发现是因为我们用while循环来做逻辑处理的问题,想办法把while等待替换为if判断,就可以改善这个问题。但是考虑到这并不会影响我们的数据,并且另一方面还有助于我们分析波形,所以使用while。

2、确认从机是否能正确发送数据(返回数据给从机)

使用逻辑分析仪来捕捉MISO的波形,其波形如下(此处只捕捉了数据波形):

两块STM32之间SPI通讯进行的注意事项

显然,我们的从机发送数据也是没问题的。

3、确认从机是否接收到主机发过来的数据

这里使用在线调试的方法检测从机的接收buf,结果如下:

两块STM32之间SPI通讯进行的注意事项

显然,从机收到的数据与主机发送的数据一致,说明从机接收也是没有问题的。由于手头里只有一个仿真器,所以也就没有同时监测主机的接收buf,监视主机的接收buf与监视从机的方法是一样的。

四、调试过程需要注意的问题

1、两块板子一定要共地。

2、两块板子的MOSI与MISO不需要交叉连接。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2270

    文章

    10895

    浏览量

    355743
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1706

    浏览量

    91506
收藏 人收藏

    评论

    相关推荐

    多层板埋孔设计注意事项

    多层板埋孔设计注意事项
    的头像 发表于 12-20 16:06 84次阅读

    绕线电感定制的注意事项

    电子发烧友网站提供《绕线电感定制的注意事项.docx》资料免费下载
    发表于 09-20 11:24 0次下载

    对电源模块进行焊接的注意事项

    电子发烧友网站提供《对电源模块进行焊接的注意事项.pdf》资料免费下载
    发表于 09-20 11:07 0次下载
    对电源模块<b class='flag-5'>进行</b>焊接的<b class='flag-5'>注意事项</b>

    如何检测INA118的好坏?INA118在使用中还有哪些注意事项

    我是个刚刚接触模拟电路的小白,最近在尝试做一个微安级恒流源出来。方案使用了INA118作为差分放大器,但是从中发买的三芯片,有两块输出的电压始终小于输入电压;而第三虽然能够随着Rg的变动而变动
    发表于 09-18 06:41

    使用环形接线片热敏电阻进行散热器监测的设计注意事项

    电子发烧友网站提供《使用环形接线片热敏电阻进行散热器监测的设计注意事项.pdf》资料免费下载
    发表于 09-05 10:54 0次下载
    使用环形接线片热敏电阻<b class='flag-5'>进行</b>散热器监测的设计<b class='flag-5'>注意事项</b>

    共模电感定制的注意事项

    电子发烧友网站提供《共模电感定制的注意事项.docx》资料免费下载
    发表于 09-04 11:47 0次下载

    LiFePO4设计注意事项

    电子发烧友网站提供《LiFePO4设计注意事项.pdf》资料免费下载
    发表于 09-03 09:24 0次下载
    LiFePO4设计<b class='flag-5'>注意事项</b>

    钳形电流表的使用方法和注意事项

    钳形电流表,作为电气测量和测试的重要工具,其使用方法和注意事项对于保障测量结果的准确性和操作人员的安全至关重要。本文将从钳形电流表的使用方法和注意事项个方面进行详细阐述,以期为读者提
    的头像 发表于 05-14 16:14 3378次阅读

    FMD LINK 使用注意事项

    电子发烧友网站提供《FMD LINK 使用注意事项.pdf》资料免费下载
    发表于 05-06 10:11 0次下载

    请问STM32对过滤器编号时有哪些注意事项

    STM32对过滤器编号时有哪些注意事项
    发表于 04-12 08:23

    项目开发时能不能同时用两块芯片,比如一stm32WB一stm32F4?

    请问项目开发时能不能同时用两块芯片,比如一stm32WB,一stm32F4?
    发表于 03-20 08:22

    使用ST-LINK对STM32G030K8T6TR进行烧录,有什么特别注意事项吗?

    烧录时有什么特别注意事项吗? 3)另外STM32G030K8T6TR的GPIO口内部是否有带上拉到VDD的保护二极管?GPIO口可承受的最大电压是多少?
    发表于 03-12 06:32

    浪涌抑制器的应用及注意事项

    浪涌抑制器的应用及注意事项?|深圳比创达电子
    的头像 发表于 01-19 09:55 728次阅读
    浪涌抑制器的应用及<b class='flag-5'>注意事项</b>?

    STM32ADC中断的使用注意事项和优化建议

    使用中断是提高系统性能和精确度的关键。本文将详细介绍STM32ADC中断的使用注意事项和优化建议。 注意事项: 1. 合理选择中断触发方式:STM32ADC可以通过软件触发(软件启动转
    的头像 发表于 01-12 15:17 3377次阅读

    测速电机: 常见6大注意事项

    测速电机: 常见6大注意事项!测速电机是一种用于测量物体运动速度的设备,广泛应用于工业生产和科学研究中。测速电机常见的6大注意事项以确保安全和准确性。
    的头像 发表于 01-11 10:53 480次阅读
    测速电机: 常见6大<b class='flag-5'>注意事项</b>