STM8L SPI使用过程记录
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使用过程记录相关推荐
- BootLoader(U-Boot)启动过程记录
BootLoader(U-Boot)启动过程记录 定义 Bootloader终极目的是引导内核,加载内核到内存然后跳转到内核的地方执行,在加载之前也会做一些硬件的初始化等等操作.启动模式分为两种:启动 ...
- 16.04linux 安装微信,Ubuntu 16.04安装微信的过程记录
微信没有出Linux的版本,但是可以通过以下方式解决: 1.使用网页版,除了没有公众号之后,一切都没问题,包括传文件等. 2.使用第三方版本,只不过这个是桌面应用,原理是通过网页API集成的,稳定性还 ...
- 【Linux】无法添加用户,报“useradd: cannot open /etc/passwd”问题解决过程记录
[Linux]无法添加用户,报"useradd: cannot open /etc/passwd"问题解决过程记录 参考文章: (1)[Linux]无法添加用户,报"us ...
- VS调试dll详细过程记录
VS调试dll详细过程记录 还可以参考博客: https://blog.csdn.net/u014738665/article/details/79779632 在我们写的程序中有时候调用dll,并且 ...
- 我在Suse 11 Sp3上使用anaconda安装TensorFlow的过程记录
我在Suse 11 Sp3上使用anaconda安装TensorFlow的过程记录准备安装包: gcc48 glibc-2.18.tar.gz SLES-11-SP4-DVD-x86_64-GM-DV ...
- CV之detectron2:detectron2安装过程记录
CV之detectron2:detectron2安装过程记录 detectron2安装记录 python setup.py build develop Microsoft Windows [版本 10 ...
- AI:基于计算机视觉和语音识别案例项目打包过程记录20181226-19
AI:基于计算机视觉和语音识别案例项目打包过程记录20181226-19 基于计算机视觉和语音识别案例项目打包过程 521 INFO: PyInstaller: 3.3.1 521 INFO: Pyt ...
- TF之TFSlim:利用经典VGG16模型(InceptionV3)在ImageNet数据集基础上训练自己的五个图像类别数据集的训练过程记录
TF之TFSlim:利用经典VGG16模型(InceptionV3)在ImageNet数据集基础上训练自己的五个图像类别数据集的训练过程记录 目录 训练控制台显示 输出结果文件 训练控制台显示 输出结 ...
- mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式)
mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式) 首先将要导入的数据文件top5000W.txt放入到数据库数据目录/var/local/mysql/data/${d ...
- linux chrome 安装过程记录
最近,由于公司需要做爬虫抓取一些新闻,在开发过程中,发现有些网站有一定的反爬措施,通过浏览器访问一切正常,通过其他方式,包括:curl,urlconnection 等,就算加入了cookie,agen ...
最新文章
- 【原】YUI压缩与CSS media queries下的bug
- 商汤IPO首日市值涨百亿,徐立感慨时代之幸:有机会改变世界!
- 【电商福利】双十二优惠福利专场
- 运维工程师必备技能:网络排错
- 论文推荐 | 2019中国卫星导航年会论文集
- 昨天,腾讯百万节点规模管控系统(TSC)诞生了!
- 实训第二天的收获beep~~~
- mysql order by random,sql-MySQL:ORDER BY RAND()的替代方法
- 深入浅出Zookeeper(一) Zookeeper架构及FastLeaderElection机制
- 不再“挤牙膏”!英特尔公布技术路线图,豪迈放言:“将在 2025 年夺回芯片性能桂冠!”...
- Jenkins多环境持续集成架构实践
- JavaCV入门教程
- Dedecms去掉所有版权
- 多维度对抗 Windows AppLocker
- 在网页上使用苹方字体
- 阿里云应用防火墙WAF部署和使用
- 关于sp和unity近似的PBR的一篇国外文章
- 使用vs2008制作dll文件,生成动态链接库
- K8S集群应用市场安装部署:第一篇
- 2019计算机小高考成绩,小高考没过怎么办 2021小高考难度如何