Cube MX 开发高精度电流源跳坑过程/SPI连接ADS1255/1256系列问题总结/STM32 硬件SPI开发过程

文章目录

    • 概要
    • 整体架构流程
    • 技术名词解释
    • 技术细节
    • 小结

概要

1.使用STM32F系列开发一款高精度恒流电源,用到了24位高精度采样芯片ADS1255/ADS1256系列。

2.使用时发现很多的坑,详细介绍了每个坑的具体情况和实际的解决办法。

坑1:波特率设置要正确,错误的波特率读到的数据会是错误的,不稳定的

设置为18M,太高了,会导致采样不稳定。

设置为256K,效果很稳定,但采样速率会下降,大概40K的采样频率;

波特率设置非常重要

坑2:极性设置为边沿设置

2.1 设置极性为1时,采样数据不稳定:

2.2设置极性为2时,采样数据正常:

坑3:大小端设置

3.1 跟局芯片进行设置,ADS1255/ADS1256为大端模式

4.引脚配置

初始化代码过程如下:

  MX_GPIO_Init();
  MX_SPI2_Init();
  MX_TIM2_Init();
  /* USER CODE BEGIN 2 */

	HAL_Delay(100);
	/* µÈ´ýÉϵçÎȶ¨£¬µÈ»ù×¼µçѹµç·Îȶ¨, BSP_ADS1255_Init() ÄÚ²¿»á½øÐÐ×ÔУ׼ */	
  BSP_ADS1255_Init();	
	ADC_ID = BSP_ADS1255_ReadID();
	BSP_ADS1255_Config(ADS1255_GAIN_2, ADS1255_10SPS);	/* ÅäÖÃADC²ÎÊý£º ÔöÒæ1:1, Êý¾ÝÊä³öËÙÂÊ 100Hz */	

	HAL_TIM_Base_Start_IT(&htim2);

小结

SPI通信过程中,需要注意每一个配置的细节,马马虎虎去设置参数,最终会导致你在调试过程中花费大量的时间去找各种的Bug,很难快速跟上项目开发的节奏。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用Java AOP实现面向切面编程

简介 面向切面编程(AOP)是一种编程思想,它将程序中的关注点分离,使得开发人员可以专注于核心业务逻辑而不必过多关注横切关注点。Java中的AOP可以通过使用AspectJ等框架来实现,本文将介绍如何使用Java AOP实现切面编程…

【MongoDB】索引 - 复合索引

一、准备工作 这里准备一些学生数据 db.students.insertMany([{ _id: 1, name: "张三", age: 20, class: { id: 1, name: "1班" }},{ _id: 2, name: "李四", age: 22, class: { id: 2, name: "2班" }},{ _id: 3, name: "王五…

[MRCTF2020]你传你呢1

提示 只对php以及phtml文件之类的做了防护content-type.htaccess文件 这里就不整那么麻烦直接抓包测试 首先对后缀测试看过滤了哪些 (php php3 pht php5 phtml phps) 全部被ban了 到这里的后续思路通过上传一些配置文件把上传的图片都以php文件执行 尝试上传图片码, 直接上传成…

机器人制作开源方案 | 管内检测维护机器人

一、作品简介 作者:李泽彬,李晋晟,杜张坤,禹馨雅 单位:运城学院 指导老师:薛晓峰 随着我国的社会主义市场经济的飞速发展和科学技术的革新,各行各业的发展越来越离不开信息化和网络化的…

虚拟机备份中的CBT技术

虚拟机备份的CBT( Changed Block Tracking)模式是一种备份模式,它能够识别和跟踪自上次备份后虚拟机中被修改过的块,这些修改会被存放到日志文件中。在启用CBT模式之后,备份软件会利用这个功能进行增量备份。 启用CBT…

高效解决香港服务器负载过高的方法

​  当我们在使用香港服务器时,有时会遇到服务器负载过高的问题。这会导致网站加载速度变慢甚至无法正常使用。为了解决这个问题,我们需要采取一些高效的方法来提升服务器的负载能力。 1.考虑对服务器进行升级维护。通过增加硬件资源,如CPU…

单点登录与OAuth2.0 的区别

前言:SSO是Single Sign On(单点登录)的缩写,OAuth是Open Authority(开放授权),这两者都是使用令牌的方式来代替用户密码访问应用。流程上来说他们非常相似,但概念上又十分不同。很多人会将其混为一谈&#…

Oracle安全基线检查

一、账户安全 1、禁止SYSDBA用户远程连接 用户具备数据库超级管理员(SYSDBA)权限的用户远程管理登录SYSDBA用户只能本地登录,不能远程。REMOTE_LOGIN_PASSWORDFILE函数的Value值为NONE。这意味着禁止共享口令文件,只能通过操作系统认证登录Oracle数据库。 1)检查REMOTE…

noip模拟赛多校第八场 T3 遥控机器人 (最短路 + 技巧拆点)

题面 简要题意: 给你一个 n n n 个点 m m m 条边的图。边 i i i 有颜色 c i c_i ci​。你可以选择一些边改变它们的颜色成为区间 [ 1 , m ] [1, m] [1,m] 中的任意颜色,改变一条边 i i i 一次的代价是 w i w_i wi​。询问你能否在一些改变…

深度学习框架TensorFlow.NET之数据类型及张量2(C#)

环境搭建参考: 深度学习框架TensorFlow.NET环境搭建1(C#)-CSDN博客 由于本文作者水平有限,如有写得不对的地方,往指出 声明变量:tf.Variable 声明常量:tf.constant 下面通过代码的方式进行学…

RIP路由配置

RIP路由配置步骤与命令: 1.启用RIP路由:router rip 2.通告直连网络:network 直连网络 3.启用RIPv2版本:version 2 4.禁用自动汇总:no auto-summary 注意:静态路由通告远程网络,动态路由通告…

【flink】Task 故障恢复详解以及各重启策略适用场景说明

文章目录 一. 重启策略种类(Restart Strategies)1. Fixed Delay Restart Strategy2. Failure Rate Restart Strategy3. Fallback Restart Strategy4. No Restart Strategy 二. 故障恢复策略(Failover Strategies)1. (全…

音频文件元数据修改:批量操作的技巧和方法

在音乐产业不断发展和数字技术日益成熟的今天,音频文件已经成为我们日常生活中的重要组成部分。在这些文件中,元数据起着至关重要的作用,它不仅提供了关于音频文件的基本信息,如艺术家、歌曲名称、专辑名称等,还为我们…

“网站不安全”该如何解决

当我们的网站被客户访问的时候,经常会出现提示不安全的情况,导致客户的不信任,从而出现客户流失的现象,这种情况我们应该如何解决呢? 首先,我们要确定网站会出现不安全的原因,一般来说&#xff…

智能安全配电装置在银行配电系统中的应用

【摘要】银行是国家重点安全保护部分,关系到社会资金的稳定,也是消防重点单位,消防安全保障工作是银行工作的重要方面。智能安全配电装置应用在银行配电系统中,可以提升银行智能化管控水平和有效防范电气火灾的发生。 【关键词】…

从首届中国测绘地理信息大会,解读2023年度国产GIS创新关键词

创新是什么?这是各行各业持续思考的问题。 第一届中国测绘地理信息大会已进入倒计时!这是中国测绘学会、中国地理信息产业协会和中国卫星导航定位协会共同主办的全国性高端盛会。据悉,本次大会将有1个主论坛、38场分论坛,近2万平…

MySQL开启远程访问权限

默认情况下,MySQL只允许本地登录,即只能在安装MySQL环境所在的主机下访问。但是在日常开发和使用中,我们经常需要访问远端服务器的数据库,此时就需要开启服务器端MySQL的远程连接权限。1、生成环境,连接MySQL 2、查看MySQL当前访问远程访问权限use mysql;select User,auth…

黑马程序员项目-黑马点评

黑马点评1 短信登录 基于Session实现登录流程 发送验证码: 用户在提交手机号后,会校验手机号是否合法,如果不合法,则要求用户重新输入手机号 如果手机号合法,后台此时生成对应的验证码,同时将验证码进行…

论文阅读—— UniDetector(cvpr2023)

arxiv:https://arxiv.org/abs/2303.11749 github:https://github.com/zhenyuw16/UniDetector 一、介绍 通用目标检测旨在检测场景那种的一切目标。现有的检测器依赖于大量数据集 通用的目标检测器应该有两个能力:1、可以利用多种来…

C# 发送邮件

1.安装 NuGet 包 2.代码如下 SendMailUtil using MimeKit; using Srm.CMER.Application.Contracts.CmerInfo; namespace Srm.Mail { public class SendMailUtil { public async static Task<string> SendEmail(SendEmialDto sendEmialDto,List<strin…