项目进展(十)-解决ADS1285在调试时出现的问题

news2024/11/28 16:43:43

一、解决大坑

  在项目进展(九)-完善ADS1285代码这边博客中,看似解决了问题,可以去读数据,但是其实是给自己挖大坑,这边博客就是来填坑的。
  首先呢,上篇博客说的是用0x12指令来读取数据,但是仔细再看数据手册会发现,使用指令读取数据是在特定条件下的:“RDATA命令用于在同一转换周期内重新读取数据或读取被读寄存器命令打断 的数据。”真的是被自己坑到了。
在这里插入图片描述
  接下来是第二个大坑,当时只是看到注意到了DRDY引脚了,却忘了SYNC,RESET,PWDN这仨哥们,忘记在cubeMX里面初始化他们的电平了,我直接哭死。这三个引脚初始化时都需要需要全部拉成高电平。

	HAL_GPIO_WritePin(GPIOB, ADS_X_PWDN_Pin|ADS_X_RESET_Pin|ADS_X_SYNC_Pin, GPIO_PIN_SET);
	GPIO_InitStruct.Pin = ADS_X_PWDN_Pin|ADS_X_RESET_Pin|ADS_X_SYNC_Pin;
  	GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  	GPIO_InitStruct.Pull = GPIO_NOPULL;
  	GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  	HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

  配置完上面三个引脚之后便可以使用直接读取,根据DRDY的变化来读取数据了。下面是DRDY的波形图:
在这里插入图片描述
  频率为1KHz,正好对应配置的寄存器中1000SPS(即1s采样1000次):

data[3] = (HIGHPOWER<<6)|(SPS1000<<3)|(LINEAR_PHS<<2)|FIR;

  DRDY正常工作,接下来便是按照数据手册的时序图来编写代码(DRDY拉低后,我们要将CS拉低,之后连续读取四个字节,即最后的32位ADC采集数据):
在这里插入图片描述

	while(DRDY);  // 等待DRDY拉低
	ADC_X_CS_LOW;  // 拉低CS引脚
	for(i=0;i<4;i++)
	{
		HAL_SPI_Receive(&hspi2,(uint8_t *)&Data[i],1,10);// 读取数据
	}
	readDataFinal = (Data[0]<<24)|(Data[1]<<16)|(Data[2]<<8)|(Data[3]);
	ADC_X_CS_HIGH;  // 拉高CS引脚

  下面是仿真的视频:
在这里插入图片描述
  数据是读取回来了,但是总是感觉跟实际数据对不上,后续还得继续看数据手册,今天先到这了。

二、往期回顾

项目进展(一)-晶振正常输出、焊接驱动芯片、查找芯片手册并学习
项目进展(二)-配置MCT8316ZR芯片,主要学习如何根据数据手册配置外设等
项目进展(三)-电机驱动起来了,发现了很多关键点,也遇到了一些低级错误
项目进展(四)-双电机均可驱动,配置模拟SPI,调平仪功能初步实现!
项目进展(五)-修复PCB电路板,学习32位ADC芯片ADS1285
项目进展(六)-继续学习32位ADC芯片ADS1285
项目进展(七)-焊接ADS1285及其外围电路,学习芯片的SPI部分
项目进展(八)-编写代码,驱动ADS1285
项目进展(九)-完善ADS1285代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1069850.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nebula图数据库

文章目录 摘要引言Nebula图数据库概述Nebula图数据库架构Nebula命令和语法详解连接到Nebula图数据库创建图空间使用图空间创建图插入节点数据插入边数据查询节点数据查询边数据 高级用法索引图计算数据导入和导出事务管理数据备份和恢复安全性管理 Nebula使用实例结论参考文献 …

SwiftUI Spacer() onTapGesture 无法触发

问题&#xff1a;点击这个黑色区域不会 print&#xff0c;黑色区域看上去刚好是 Spacer() 占据的区域 解决办法&#xff1a;不使用 onTapGesture&#xff0c;用 Button 包裹一下 Code: import SwiftUIstruct TestTap: View {var body: some View {NavigationStack {List {Sect…

【框架风格】解释器模式

1、描述 解释器框架风格&#xff08;Interpreter Framework Style&#xff09;是一种软件架构风格&#xff0c;其核心思想是构建一个解释器&#xff08;Interpreter&#xff09;来解释并执行特定领域或问题领域的语言或规则。以下是解释器框架风格的一些特点&#xff1a; 1. 领…

parameterType后面报红

第一种 &#xff1a;parameterType后面报红&#xff0c;点击file——settings 第二种&#xff1a;写全类名

三十、【进阶】B树的演变过程

1、索引结构 &#xff08;1&#xff09;二叉树 &#xff08;2&#xff09;B-Tree树 B-Tree树最大度数为5&#xff0c;代表每一个节点最多存储4个key(每个节点最多存储4个数据)&#xff0c;5个指针(可以指向5个子节点)。 2、演变过程&#xff08;最大度数为5&#xff09; &…

C++ 33.学习C++的意义-狄泰软件学院

一些历史 UNIX操作系统诞生之初是直接用汇编语言编写的随着UNIX系统的发展&#xff0c;汇编语言的开发效率成为瓶颈&#xff0c;所以需要一个新的语言替代汇编语言1971年通过对B语言改良&#xff0c;使其能直接产生机器代码&#xff0c;C语言诞生UNIX使用C语言重写&#xff0c…

音频格式怎么转换成mp3?

音频格式怎么转换成mp3&#xff1f;那是因为很多时候我们在使用手机录音或下载平台音频时&#xff0c;可能会遇到无法打开或播放的情况。这通常是因为我们所使用的音频格式不被通用的播放器所支持&#xff0c;导致了无法打开的问题。为了解决这个问题&#xff0c;我们需要将音频…

“新”国货@2023:质疑、回归与转机

【潮汐商业评论/ 原创】 “我是真爱买国货&#xff0c;上到冰箱电视洗衣机&#xff0c;这样的家电大件儿&#xff0c;下到日化洗护用品&#xff0c;这样的日常小件儿&#xff0c;统统首选国货品牌&#xff0c;也只考虑国货品牌。”此时此刻&#xff0c;Grace正与大家分享着自己…

软件设计师_数据结构与算法基础_学习笔记

文章目录 6.1 数组与矩阵6.1.1 数组6.1.2 稀疏矩阵 6.2 线性表6.2.1 数据结构的定义6.2.2 顺序表与链表6.2.2.1 定义6.2.2.2 链表的操作 6.2.3 顺序存储和链式存储的对比6.2.4 队列、循环队列、栈6.2.4.2 循环队列队空与队满条件6.2.4.3 出入后不可能出现的序列练习 6.2.5 串6.…

Flink学习笔记(二):Flink内存模型

文章目录 1、配置总内存2、JobManager 内存模型3、TaskManager 内存模型4、图形化展示5、实际案例计算内存分配 1、配置总内存 Flink JVM 进程的进程总内存&#xff08;Total Process Memory&#xff09;包含了由 Flink 应用使用的内存&#xff08;Flink 总内存&#xff09;以…

如何把pdf转换成word?4个简单方法效果好

如何把pdf转换成word&#xff1f;大家对于pdf和word两种电脑文件都不陌生吧&#xff0c;毕竟我们平时几乎每天都会使用到它们。将PDF转换为Word文档的一个主要原因是为了方便编辑和修改文档&#xff0c;尽管PDF是一个非常流行的电子文档格式&#xff0c;但如果想要编辑或修改其…

Java数组:没错,不装了我就是书架。

&#x1f451;专栏内容&#xff1a;Java⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、数组的概念1、什么是数组&#xff1f;2、数组的创建3、数组的初始化Ⅰ、动态初始化Ⅱ、静态初始化 二、数组的使用1、数组中…

OLED透明拼接屏的完美融合,唐山的历史遗迹与现代科技

引言&#xff1a;作为河北省的一个重要城市&#xff0c;唐山以其丰富的历史文化和独特的自然风光吸引着众多游客。 近年来&#xff0c;随着科技的不断进步&#xff0c;OLED透明拼接屏的应用为唐山增添了一道新的城市风景线。 作为一名资深工程师&#xff0c;我将介绍唐山的历…

kafka的请求处理机制

目录 前言&#xff1a; kafak是如何处理请求的&#xff1f; 控制请求与数据类请求 参考资料 前言&#xff1a; 无论是 Kafka 客户端还是 Broker 端&#xff0c;它们之间的交互都是通过“请求 / 响应”的方式完成的。比如&#xff0c;客户端会通过网络发送消息生产请求给 B…

Linux 守护进程

一 何为守护进程 守护进程&#xff08; Daemon &#xff09;也称为精灵进程&#xff0c;是运行在后台的一种特殊进程&#xff0c;它独立于控制终端并且周期性 地执行某种任务或等待处理某些事情的发生&#xff0c;主要表现为以下两个特点&#xff1a; 长期运行。守护进程是一…

【DRAM存储器十二】SDRAM介绍-各类写操作详解

&#x1f449;个人主页&#xff1a;highman110 &#x1f449;作者简介&#xff1a;一名硬件工程师&#xff0c;持续学习&#xff0c;不断记录&#xff0c;保持思考&#xff0c;输出干货内容 参考资料&#xff1a;《镁光SDRAM数据手册》、《PC SDRAM specification》 目录 写操…

【ElasticSearch】基于Docker 部署 ElasticSearch 和 Kibana,使用 Kibana 操作索引库,以及实现对文档的增删改查

文章目录 前言一、使用 Docker 部署 ElasticSearch 和 Kibana1.1 部署 ElasticSearch1.2 部署 Kibana1.3 利用 Kibana 演示 Elasticsearch 分词效果 二、解决中文分词的问题2.1 默认分词器对中文分词的问题2.2 引入 IK 分词器2.3 IK 分词器的两种分词模式2.4 IK 分词器存在的问…

HTTP爬虫IP:流量or数量计费模式那个更适合爬虫?

在使用HTTP爬虫IP时&#xff0c;我们常常需要考虑计费方式&#xff1a;按流量计费还是按数量计费。这两种计费方式各有优势&#xff0c;但是哪种更加划算呢&#xff1f;本文将为您深入探讨HTTP爬虫IP的流量计费和数量计费的特点、适用场景以及选择适合自己的计费方式的实用技巧…

MySQL学习笔记(快速入门)

一、数据库相关概念 名称全称简称数据库存储数据的仓库&#xff0c;数据是有组织的进行存储DataBase&#xff08;DB&#xff09;数据库管理系统操纵和管理数据库的大型软件DataBase Management System (DBMS)SQL操作关系型数据库的编程语言&#xff0c;定义了一套操作关系型数…

[PyTorch][chapter 57][WGAN-GP 代码实现]

前言&#xff1a; 下图为WGAN 的效果图&#xff1a; 绿色为真实数据的分布&#xff1a; 8个高斯分布 红色&#xff1a; 为随机产生的数据分布&#xff0c;跟真实分布基本一致 WGAN-GP&#xff1a; 1 判别器D: 最后一层去掉sigmoid 2 生成器G 和判别器D: loss不取log 3 损失函数…