一、版本信息

1.本文使用SMT32F407为例,使用HAL库,SPI通信。
2.CS5531、CS5532、CS5533、CS55534理论上相通,本文以CS5532为例。

二、参考程序

STM32与CS5532通信程序1
51与CS5532通信程序2

三、CS5532理解注意事项

3.1 波特率


如上图所示,波特率最大为2MHz。

3.2 SPI模式


如上图所示,CS片选有效后,SDI、SDO在SCLK的第一个时钟延采集高低电平,第二个时钟转换数据。
对应STM32程序设置如下:

void MX_SPI3_Init(void)
{hspi3.Instance = SPI3;hspi3.Init.Mode = SPI_MODE_MASTER;hspi3.Init.Direction = SPI_DIRECTION_2LINES;hspi3.Init.DataSize = SPI_DATASIZE_8BIT;hspi3.Init.CLKPolarity = SPI_POLARITY_LOW;hspi3.Init.CLKPhase = SPI_PHASE_1EDGE;hspi3.Init.NSS = SPI_NSS_SOFT;hspi3.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_32;hspi3.Init.FirstBit = SPI_FIRSTBIT_MSB;hspi3.Init.TIMode = SPI_TIMODE_DISABLE;hspi3.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;hspi3.Init.CRCPolynomial = 10;if (HAL_SPI_Init(&hspi3) != HAL_OK){Error_Handler();}}

3.3 SPI对应GPIO口上下拉设置

void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
{GPIO_InitTypeDef GPIO_InitStruct = {0};if(spiHandle->Instance==SPI3){/* USER CODE BEGIN SPI3_MspInit 0 *//* USER CODE END SPI3_MspInit 0 *//* SPI3 clock enable */__HAL_RCC_SPI3_CLK_ENABLE();__HAL_RCC_GPIOC_CLK_ENABLE();/**SPI3 GPIO Configuration    PC10     ------> SPI3_SCKPC11     ------> SPI3_MISOPC12     ------> SPI3_MOSI */GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;GPIO_InitStruct.Pull = GPIO_PULLUP;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);GPIO_InitStruct.Pin = GPIO_PIN_12;GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;GPIO_InitStruct.Pull = GPIO_PULLDOWN;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);/* USER CODE BEGIN SPI3_MspInit 1 *//* USER CODE END SPI3_MspInit 1 */}

3.4 中文手册有误

中文翻译手册中,单双极性处有误,正确的请参考英文手册。

英文的才正确。

四、调试过程遇到的问题和bug

4.1读取转换全部为0xFF

分析:

由上图可知,由于时序图中的td时间不确定,未等到SDO拉低,然后读取转换结果将出现全部为0xFF或者0x00的情况。

4.2 SPI的波形存在异常

紫色:NSS片选信号
黄色:SCLK时钟信号
蓝色:MOSI信号
绿色:MISO信号

由上图可知,MOSI信号发生了缓慢下降,这是由于没有下拉设置的原因。

4.3 AD转换时间过长

以下为7.5SPS下的单词转换时间

五、程序和手册下载

附件为STM32与CS5532的通信程序。测试无bug。
点击下载资料

STM32F407与CS5531、CS5532、CS5533、CS5534通信程序解析相关推荐

  1. C++基于TCP/IP简单的客户端、服务器通信程序实例

    本篇文章实现了一个基于TCP 的一个非常简单的客户/服务器通信程序实例.该程序中通讯协议使用的是面向连接的TCP协议SOCK_STREAM, 服务器的ip地址为本地地址即: 127.0.0.1,端口号 ...

  2. pyqt tcp通信_实验十 基于PyQt界面的TCP通信程序(一).doc_学小易找答案

    [简答题]请同学们找一个目前已学的知识点,出一个题目上传,不能是上课讲的程序和上机的题目 [简答题]请拍照模块五完成情况 [简答题]请拍照模块六完成情况 [计算题]书本80页,3-7;3-8;3-9; ...

  3. Java21-day12【网络编程(网络编程入门(ip地址、端口、协议、InetAddress)、UDP通信程序、TCP通信程序)】

    视频+资料[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] Java基础--学习笔记(零起点打开java世界的大门)--博 ...

  4. qt linux 串口eventdriven,详解 Qt 串口通信程序全程图文 (1)

    Qt 串口通信程序全程图文 是本文介绍的内容,在Qt中并没有特定的串口控制类,现在大部分人使用的是第三方写的qextserialport类,我们这里也是使用的该类.我们可以去 http://sourc ...

  5. C语言 linux环境基于socket的简易即时通信程序

    转载请注明出处:http://www.cnblogs.com/kevince/p/3891033.html      --By Kevince 最近在看linux网络编程相关,现学现卖,就写了一个简易 ...

  6. 双机通信c语言程序,上传一个自己编写的I2C双机通信程序

    本帖最后由 micro_听海 于 2012-11-24 19:58 编辑 这几天一直在搞AVR的twi(twi就是i2c)双机通信程序,使用的是两块arduino开发板.因为最总要这个通信程序最总是要 ...

  7. 详解 Qt 串口通信程序全程图文 (5)

    Qt 串口通信程序全程图文是本文介绍的内容,本节也是最后一节,本节主要讲述的是解决一下重要问题的说明: (下面所说的第一个程序是指第一节中写的那个程序,第二个程序是指第三节更改完后的程序,第三个程序是 ...

  8. 详解 Qt 串口通信程序全程图文 (4)

    Qt 串口通信程序全程图文是本文介绍的内容,本文一开始先讲解对程序的改进,在文章最后将要讲解一些重要问题. 1.在窗口中加入一些组合框Combo Box,它们的名称及条目如下: 串口:portName ...

  9. 详解 Qt 串口通信程序全程图文 (3)

    Qt 串口通信程序全程图文是本文要介绍的内容,下面的程序在第一部分中所写的程序上进行了一些改进.加入打开和关闭串口,发送数据等功能. 1.加入了"打开串口","关闭串口& ...

  10. 详解 Qt 串口通信程序全程图文 (2)

    Qt 串口通信程序全程图文是本文介绍的内容,上一部分中已经介绍了实现最简单的串口接收程序的编写,下面将对程序内容进行分析. 1.首先应说明操作串口的流程 步骤一:设置串口参数,如:波特率,数据位,奇偶 ...

最新文章

  1. Oracle数据库的语句级读一致性
  2. 用SHELL访问特定的URL
  3. java使用POI获取sheet、行数、列数
  4. get_metrology_object_measures获取测量区域和计量模型的计量对象的边缘位置结果
  5. python删除数据库的数据完整代码_利用python操作小程序云数据库实现简单的增删改查...
  6. mysql2008怎么重装_SQL Server2005、2008如何彻底删除卸载并重新安装?
  7. wchar_t与char转换(转载)
  8. IOS应用之一--异常处理(UncaughtExceptionHandler)
  9. 样本大小的确定_显着功效样本大小效应大小之间的关系
  10. 中南大学电磁场理论matlab,中南大学电磁场理论实验2.doc
  11. Mysql区分大小写问题
  12. 在Windows 7中使用AppLocker限制对程序的访问
  13. C#:Winform 打字测速程序 Typer
  14. URL欺骗的惯用招式(经典网络知识)
  15. Java程序设计基础【10】
  16. 国际群发短信平台适用于哪些行业?
  17. Excel公式大全 excel自动求减 15个常用excel函数公式
  18. windows配置OpenGL(VS C++版)
  19. 删除单据是提示反写出错,采购系统严格控制执行数量,不允许超过关联的收料通知单数量,并且收料通知单数量不能为负数...
  20. torch.squeeze 函数运用

热门文章

  1. 视频教程-HTML5基础知识实战演练教程-HTML5/CSS
  2. python是一门胶水语言_python为何被称之为胶水语言
  3. stream流转toMap的使用以及Key重复的解决
  4. 手机浏览器看视频加载太慢怎么办,这5招用了提速快
  5. matlab生成tiff,MATLAB中自定义栅格数据地理坐标并写出数据到tiff文件
  6. 运维基本功(六):Linux用户管理与远程管理
  7. 银河麒麟v10sp1桌面安装远程控制工具todesk
  8. Unity3D射击小游戏Demo开发
  9. S3存储服务间数据同步工具Rclone迁移教程
  10. VMware windows xp虚拟机设置静态ip