关于 STM32 SPI 从机模式的问题
2016-07-06 17:34
387 查看
你再寻找 关于SPI 作为从机时 而且还没有NSS 信号 而出现数据接收错误的烦恼吧
最近给客户做一个项目 使用到了SPI 从机 在网上找答案 但是没有找到自己满意的 现在来说 都没有 将SPI 通信接收错误的根本原因说明白
网上有很多关于STM32 作为从机来使用 的 问题 主要还是 从机接收数据错误
1 关于主从机的 时钟悬空配置 可以肯定的说 主机与从机的时钟悬空一定要配成一样的
这点STM 的官方手册说的很明白
2 从机的波特率 只与 主机提供的 CLK 信号有关
3 通信失败 或者 数据接收错误 问题就出在从机对SPI 的起始信号的判断上面
当使用TI 模式 NSS 信号由硬件 从机对数据的捕获 就很容易
若没有NSS 信号呢 因为STM32 SPI普通模式 根本就没有对数据的捕获 做什么工作 真的有点糊弄我们
它 只是 当我们把SPI 打开 他就开始进行捕获 而不管SCK 此时是闲置的还是忙的 这就造成了 我们读取的SPI 数据错误
解决这个问题也很简单 只要在软件中 对 SPI 信号进行处理 得到SPI 线路是 忙的 还是空闲的
根本就是对 SPI 信号的 捕获时机
当我们要进行捕获前先对总线SPI 进行判断 若总线SPI 是空闲的 那么就开启SPI 进行数据捕获
若总线SPI 是忙的 就等待 总线空闲了 在进行捕获 经过验证这个方法通信成功率 几乎是没有问题的
QQ475503748
最近给客户做一个项目 使用到了SPI 从机 在网上找答案 但是没有找到自己满意的 现在来说 都没有 将SPI 通信接收错误的根本原因说明白
网上有很多关于STM32 作为从机来使用 的 问题 主要还是 从机接收数据错误
1 关于主从机的 时钟悬空配置 可以肯定的说 主机与从机的时钟悬空一定要配成一样的
这点STM 的官方手册说的很明白
2 从机的波特率 只与 主机提供的 CLK 信号有关
3 通信失败 或者 数据接收错误 问题就出在从机对SPI 的起始信号的判断上面
当使用TI 模式 NSS 信号由硬件 从机对数据的捕获 就很容易
若没有NSS 信号呢 因为STM32 SPI普通模式 根本就没有对数据的捕获 做什么工作 真的有点糊弄我们
它 只是 当我们把SPI 打开 他就开始进行捕获 而不管SCK 此时是闲置的还是忙的 这就造成了 我们读取的SPI 数据错误
解决这个问题也很简单 只要在软件中 对 SPI 信号进行处理 得到SPI 线路是 忙的 还是空闲的
根本就是对 SPI 信号的 捕获时机
当我们要进行捕获前先对总线SPI 进行判断 若总线SPI 是空闲的 那么就开启SPI 进行数据捕获
若总线SPI 是忙的 就等待 总线空闲了 在进行捕获 经过验证这个方法通信成功率 几乎是没有问题的
QQ475503748
相关文章推荐
- Android Studio使用心得
- 在线工具
- 跟我一起复习C++(1)——对象和类
- 如何定位Google Play Store无法连接问题
- PHP 输出控制
- 暴风魔镜VR(第一人称和第三人称)
- 安装使用phpStudy在本机配置php运行环境
- mysql 初级操作-查询数据库时间
- CentOs中mysql的安装与配置
- NDK/Jni Develop Guild(5)c/c++ access Java Method and static method
- ORA-02287:Oracle序列的使用限制
- 如何在手机shell中通过命令行来启动我们的应用
- [高斯消元 线性基 贪心 拟阵] BZOJ 2460 [BeiJing2011]元素
- Tomcat配置远程调试端口及dubug操作
- 用数组创建二叉树的一种方法
- 1643 线段覆盖 3
- C# 判断远程文件是否存在
- Python基础 - Ubuntu+Nginx+uwsgi+supervisor部署Flask应用
- HTML5学习笔记01——文本标签
- Android Design Support Library兼容库的使用(八个新控件)