STM8L SPI使用过程记录
工作需要,需要使用SPI方式和DSP进行通信,关于SPI通信,作为一名新手,还停留在大学时候学的MOSI/MISO阶段,没有实际的应用经验,所以遇到了不少有趣的事情,记录一下,防止以后再犯同样的错误。

SPI从机:STM8L
SPI主机:DSP

问题一:主机接收异常

现象:从机向主机发送 “1234”,主机收到“11223334”
过程及分析: 从机向主机数据的时候,主机轮训去读,但是一直读到数据如上,一直不正常,主机SPI频率为4M,从机主机频率为8M,通过示波器测量也是只要主机发送clk去读,从机就返回异常的数据,一直找不到原因,后来询问别人猜测是主机SPI频率太快导致的此问题
解决方法:降低SPI主机的频率,数据接收正常

问题二:从机接收异常

现象:主机发送“12345”,从机只能接收到“12”
过程及分析:有点尴尬了,刚刚主机接收正常。马上从机接收异常。。。。当时在从机中采用的是接收到一个字符,就立马通过printf重定向的方式打印出来,后来采取接收几个字符再一起打印出来。猜测原因是STM8L中的printf重定向占用太多时间,导致接收数据异常
解决方法:去掉printf重定向

问题三:从机接收到大量0xFF无用数据

现象:从机发送完数据后,立马读取数据,会读到0XFF等无用数据
过程及分析:从机在向主机发送数据后,立马会读到0xff无用数据,通过询问电子得知,当主机在读数据的时候,MOSI引脚被拉高,此时从机去读数据,则会读到0xFF,因此需要做些判断,如果是0Xff,则丢弃无用数据
解决方法:从机读数据时做判断

问题四:从机配置成接收中断方式,当发送数据过程中,系统卡死

现象:从机配置成接收中断方式,当发送数据过程中,系统卡死,没有反应
过程及分析:以上现象比较奇怪,后来通过添加打印信息进行分析,其实原因和上面一样,当从机发送数据之后,主机读数据会导致MOSI拉高,而从机又被配置成接收中断,此时就会触发中断,然后从机就会一直接收,导致吸引卡死,因此我们现在的方法是在从机发送数据之前先关闭接收中断,当确认数据发送完毕之后,再打开接收中断
解决方法:发送时候关闭接收中断,发送完毕打开接收中断

问题五:从机接收或者发送阻塞

现象:从机接收或者发送数据时候可能会阻塞
过程及分析:特别是在接收中断中,可能触发中断后,从机就会接收阻塞,导致整个系统没有反应,现在采用的方法是增加超时机制,超过一定时间数据没有接收到或者没有发送出去,就直接退出,不用阻塞
解决方法:增加超时机制

不定时更新中。。。。。

STM8L SPI使用过程记录相关推荐

  1. BootLoader(U-Boot)启动过程记录

    BootLoader(U-Boot)启动过程记录 定义 Bootloader终极目的是引导内核,加载内核到内存然后跳转到内核的地方执行,在加载之前也会做一些硬件的初始化等等操作.启动模式分为两种:启动 ...

  2. 16.04linux 安装微信,Ubuntu 16.04安装微信的过程记录

    微信没有出Linux的版本,但是可以通过以下方式解决: 1.使用网页版,除了没有公众号之后,一切都没问题,包括传文件等. 2.使用第三方版本,只不过这个是桌面应用,原理是通过网页API集成的,稳定性还 ...

  3. 【Linux】无法添加用户,报“useradd: cannot open /etc/passwd”问题解决过程记录

    [Linux]无法添加用户,报"useradd: cannot open /etc/passwd"问题解决过程记录 参考文章: (1)[Linux]无法添加用户,报"us ...

  4. VS调试dll详细过程记录

    VS调试dll详细过程记录 还可以参考博客: https://blog.csdn.net/u014738665/article/details/79779632 在我们写的程序中有时候调用dll,并且 ...

  5. 我在Suse 11 Sp3上使用anaconda安装TensorFlow的过程记录

    我在Suse 11 Sp3上使用anaconda安装TensorFlow的过程记录准备安装包: gcc48 glibc-2.18.tar.gz SLES-11-SP4-DVD-x86_64-GM-DV ...

  6. CV之detectron2:detectron2安装过程记录

    CV之detectron2:detectron2安装过程记录 detectron2安装记录 python setup.py build develop Microsoft Windows [版本 10 ...

  7. AI:基于计算机视觉和语音识别案例项目打包过程记录20181226-19

    AI:基于计算机视觉和语音识别案例项目打包过程记录20181226-19 基于计算机视觉和语音识别案例项目打包过程 521 INFO: PyInstaller: 3.3.1 521 INFO: Pyt ...

  8. TF之TFSlim:利用经典VGG16模型(InceptionV3)在ImageNet数据集基础上训练自己的五个图像类别数据集的训练过程记录

    TF之TFSlim:利用经典VGG16模型(InceptionV3)在ImageNet数据集基础上训练自己的五个图像类别数据集的训练过程记录 目录 训练控制台显示 输出结果文件 训练控制台显示 输出结 ...

  9. mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式)

    mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式) 首先将要导入的数据文件top5000W.txt放入到数据库数据目录/var/local/mysql/data/${d ...

  10. linux chrome 安装过程记录

    最近,由于公司需要做爬虫抓取一些新闻,在开发过程中,发现有些网站有一定的反爬措施,通过浏览器访问一切正常,通过其他方式,包括:curl,urlconnection 等,就算加入了cookie,agen ...

最新文章

  1. 【原】YUI压缩与CSS media queries下的bug
  2. 商汤IPO首日市值涨百亿,徐立感慨时代之幸:有机会改变世界!
  3. 【电商福利】双十二优惠福利专场
  4. 运维工程师必备技能:网络排错
  5. 论文推荐 | 2019中国卫星导航年会论文集
  6. 昨天,腾讯百万节点规模管控系统(TSC)诞生了!
  7. 实训第二天的收获beep~~~
  8. mysql order by random,sql-MySQL:ORDER BY RAND()的替代方法
  9. 深入浅出Zookeeper(一) Zookeeper架构及FastLeaderElection机制
  10. 不再“挤牙膏”!英特尔公布技术路线图,豪迈放言:“将在 2025 年夺回芯片性能桂冠!”...
  11. Jenkins多环境持续集成架构实践
  12. JavaCV入门教程
  13. Dedecms去掉所有版权
  14. 多维度对抗 Windows AppLocker
  15. 在网页上使用苹方字体
  16. 阿里云应用防火墙WAF部署和使用
  17. 关于sp和unity近似的PBR的一篇国外文章
  18. 使用vs2008制作dll文件,生成动态链接库
  19. K8S集群应用市场安装部署:第一篇
  20. 2019计算机小高考成绩,小高考没过怎么办 2021小高考难度如何

热门文章

  1. html验证码 按住向右滑动,js实现滑动滑块验证登录
  2. 移动端日期插件rolldate
  3. web前端面试题(十一)之如何解决跨域问题?
  4. Python 数据挖掘(四) pandas模块 简单使用
  5. 低代码平台-竞品分析ABP框架
  6. JavaCV 第一个JavaCV程序
  7. 再见实体店!推荐一个Python神器,能在线帮助小姐姐试衣服!
  8. Verilog 级联IIR滤波器设计
  9. 希捷 服务器文件丢失 原因,移动硬盘数据丢失的原因有哪些?如何进行专业的数据恢复?...
  10. R语言绘图:直方图——hist