问题:
原本是MCU用STM32F103VCT6跟DSP通过SPI进行双向通信传输数据,用GD32F103VCT6直接替换,代码没有修改,还是STM32的标准库,出现与DSP通讯失败。

解决问题过程:
上网搜索相关问题 发现一篇比较有用的文章。
GD32中SPI部分需要特别注意的部分 以及STM32移植到GD32SPI需要修改的部分
我按照这位博主说的去改,发现原来配置的SPI部分 MOSI和MISO确实没有明确设置引脚的输入输出模式,但是我重新配置了之后还是不行,通讯不了。

用逻辑分析仪去分别检测STM32F103VCT6和GD32F103VCT6的SPI波形和数据。
发现1:逻辑分析仪能抓到GD的spi波形,证明是能工作的
发现2:两者的数据对比起来也是一样的。
发现3:STM32发送的每个字节之间都有延时的,而GD32的是没有的,两个字节之间的间隔时间跟时钟翻转持续时间是一样的。

根据发现3,我去修改了代码里面的
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_128;
一个一个去测试,发现单单修改这个波特率分频系数也不能达到STM32的两个字节之间的间隔时间。

然后我修改了工作的主频,从72MHz修改为48MHz,(因为用到了USB,所以顺便把USB的时钟分频系数从1.5分频改为1分频,否则USB工作也不正常。)

回到正题,这时候当我改成48MHz,spi的波特率分频系数改为64之后,发送的两个字节之间的延时时间会达到跟STM32的差不多,比它慢2us左右,这时候通讯也正常了,MCU跟DSP能够正常收发数据。

正当我以为所有都弄好之后,我把逻辑分析仪的线跟测试板拔开,发现后面工作偶尔又不正常了,这时候我想起来之前单板测试的时候,如果MCU端接了排线,但是没有接其他设备,在逻辑分析仪上看到MISO端竟然有几个毛刺出现,难道是因为排线导致出现了干扰吗?

后面找到了GD32的技术支持,他说排线不能太长,5cm左右就好,我之前测试的时候排线都24cm的,因为在STM32的板子上是正常的。

后面找了一条6CM的排线去测试,果然正常了。

这次出现的问题总结:
1.上网找资料,看看别人踩的坑,不管行不行填了再说。
2.善用工具帮助自己分析问题,要敢于假设并且付诸于实践证明。
3.有技术支持一定要找技术支持,别人解决问题经验丰富。

用GD32F103VCT6替代STM32F103VCT6出现的SPI问题以及解决方法相关推荐

  1. JQ无法修改input的type属性的替代解决方法

    JQ无法修改input的type属性的替代解决方法 参考文章: (1)JQ无法修改input的type属性的替代解决方法 (2)https://www.cnblogs.com/wsun/p/56300 ...

  2. php函数substr_replace中文乱码的替代解决方法

    php函数substr_replace中文乱码的替代解决方法 参考文章: (1)php函数substr_replace中文乱码的替代解决方法 (2)https://www.cnblogs.com/ty ...

  3. arduino Pro Mini和nano​替代芯片LGT8F328P,上传报错Cannot run program解决方法

    公众号关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 最近在群里听说了LGT8F328P,搞了这么久的DIY,居然才知道这个国产的神奇芯片 ...

  4. 使用MCU SPI访问具有非标准SPI接口ADC的方法

    关注.星标公众号,不错过精彩内容 整理:黄工 来源:亚德诺半导体 提问:能否用MCU访问非标准SPI接口? 答案:可以,但可能需要做一些额外的努力. 当前许多精密模数转换器(ADC)具有串行外设接口( ...

  5. 国产汽车级可编程线性霍尔传感器CHA611,可以替代Allegro的A1363系列产品,解决汽车级芯片缺货难题

    A1363是Allegro的一款SIP封装0至>1000A传感器IC产品,A1363是带先进的温度补偿和高带宽(120kHz)模拟输出的低噪音.高精度.可编程线性霍尔效应传感器IC,但由于目前国 ...

  6. android编程权威指南 的PhotoGallery项目Flickr 不能访问的替代解决方法

    android编程权威指南 的PhotoGallery项目Flickr 不能访问的替代解决方法 参考: <<android编程权威指南(第2版)>>的PhotoGallery项 ...

  7. 非标准语法;请使用 _一文读懂使用MCU SPI访问具有非标准SPI接口ADC的方法

    好文章当然要分享啦~如果您喜欢这篇文章,请联系后台添加白名单,欢迎转载哟~ 问题 能否用MCU访问非标准SPI接口? 答案 可以,但可能需要做一些额外的努力. 当前许多精密模数转换器(ADC)具有串行 ...

  8. MATLAB国产替代软件出现,这些学校已解决被禁用问题

    从2019年开始,美国为维护其所谓的国家安全利益,列出了制裁"实体清单",限制我国企业.高校或个人与美国之间的贸易.截止目前,我国已有18所高校被列入"实体清单" ...

  9. 《iBoard 电子学堂》SPI Flash烧写方法

    <iBoard 电子学堂>通过外部串行FLASH 存储完整的汉字字库和开机画面:本文介绍通过软件 iBoard ToolBox 利用USB (标准 HID 驱动)接口,烧写汉字字库以及开机 ...

最新文章

  1. Combox控件下拉选择不同值触发的动作响应
  2. 用户自定义的标识符的一些注意事项
  3. tensorflow学习(4.loss函数以及正则化的使用 )
  4. 我们工作的意义到底在哪?
  5. wince6下usb摄像头(UVC)使用指南
  6. java 使用三元运算符和if-else获取两个和三个数中的最大值
  7. c语言调用android surface,Android GUI SurfaceFlinger
  8. c语言删掉注释,c语言删除注释
  9. sql python 教程_Python SQLAlchemy ORM教程(3)
  10. python离线_python 离线一个网站
  11. 如何在EXCEL中只复制可见单元格(忽略隐藏行/列)
  12. 安卓 控件靠右对齐_LinearLayout中组件右对齐
  13. 西餐餐饮文化、简单鸡尾酒调制~~DIY的力量无穷
  14. python求上α分位点_什么是标准正态分布的上α分位点以及怎样求?
  15. 如何将docx文本转换成使用微信小程序rich-text能编译的格式
  16. 百趣代谢组学文献分享:大麦盐胁迫响应机制的组学分析
  17. oracle权限培训,【必看】Oracle用户、权限、角色管理
  18. XiaoHu日志 6/29~7/30
  19. mysql显示服务器地址,怎样查看mysql服务器所在地址
  20. 图像解析力算法—SFR(Spatial Frequency Response)概念理解

热门文章

  1. 古月居ROS入门21讲——9.创建工作空间与功能包
  2. 古月居ROS入门21讲-基础概述
  3. 制作uefi的kali安装盘_制作支持UEFI启动的原装系统安装盘
  4. 动态脑功能网络的滑动窗口分析相关问题
  5. python立体图形_Python/OpenCV:从立体图像计算深度图
  6. 4.7 Randomization and Restart Strategies
  7. Linux音频设备驱动-1
  8. python四瓣花图形_python绘制樱花,彩虹旋等
  9. GIS领域竞赛整理(不完全统计)
  10. 调节阀故障一般都是什么原因呢?