开源一个 ADS8365 高精度 ADC 检测方案,转载请联系博主,翻版必究。

1、硬件原理图(最多 6 路输入)



2、数据手册

数据手册在这里下载

https://www.alldatasheetcn.com/

3、软件

整体实现思路:
1、开机初始化时钟。
2、初始化 timer4 做 clock 给 ADS8365 使用(PWM)。
3、初始化 ADS8365 用到的 GPIO。
4、初始化 timer3,以 50hz 频率产生定时器中断,在中断处理函数中复位 ADS8365。
5、初始化 ADS8365 的中断,在 GPIO 中断处理函数中,读取 ADS8365 数据。
6、校准。
7、读取数据。

ADS8365.c

#include "ads8365.h"static void ADS8365_NVIC_Configuration(void)
{NVIC_InitTypeDef NVIC_InitStructure;/* Configure one bit for preemption priority */NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);/* ÅäÖÃP[A|B|C|D|E]0ΪÖжÏÔ´ */NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure);
}static void ADS8365_GPIO_Config(void)
{GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOE|RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);/* config the NVIC(PA9) */ADS8365_NVIC_Configuration();/* EXTI line gpio config(PA9) */  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //EOC      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);/* EXTI line(PA9) mode config */GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource9); EXTI_InitStructure.EXTI_Line = EXTI_Line9;EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;EXTI_InitStructure.EXTI_LineCmd = ENABLE;EXTI_Init(&EXTI_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_10| GPIO_Pin_11;       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | \GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7 | \GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | \GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOE, &GPIO_InitStructure);EXTI->IMR &= ~(1<<9);
}void ADS8365_Init(void)
{ADS8365_GPIO_Config();GPIO_SetBits(GPIOB, GPIO_Pin_15);//CSGPIO_ResetBits(GPIOB, GPIO_Pin_15);//CS
}

ADS8365.h

#ifndef __ADS8365_H__
#define __ADS8365_H__
#include "comm.h"
#include <stm32f10x.h>#define Set_ADS8365_HOLD     PAout(10)=1
#define Reset_ADS8365_HOLD   PAout(10)=0#define Set_ADS8365_nRST     PAout(11)=1
#define Reset_ADS8365_nRST   PAout(11)=0#define Set_ADS8365_nOE      PAout(8)=1
#define Reset_ADS8365_nOE    PAout(8)=0#define Set_ADS8365_CS       PBout(15)=1
#define Reset_ADS8365_CS     PBout(15)=0void ADS8365_Init(void);#endif

main.c

ADS8365_Init();Set_ADS8365_nOE;
Reset_ADS8365_nOE;
testtmp = GPIOE->IDR;
Set_ADS8365_nOE;

如需源码请联系博主

STM32 ADS8365 高精度 ADC 采集方案相关推荐

  1. AD7190之STM32程序——STM32测试高精度ADC篇(三)

    1.  AD7190概述 AD7190是一款适合高精密测量应用的低噪声完整模拟前端.它集成一个低噪声.24位Σ-Δ型模数转换(ADC).片内低噪声增益级意味着可直接输入小信号. 这款器件可配置为两路差 ...

  2. STM32物联网项目-ADC采集实验板板温度(NTC热敏电阻)

    STM32 ADC采集板载温度 STM32 ADC简介 ​ STM32 拥有 1~3 个 ADC(STM32F101/102 系列只有 1 个 ADC),这些 ADC 可以独立使用, 也可以使用双重模 ...

  3. A7799之STM32程序——STM32测试高精度ADC篇(二)

    1.  AD7799概述 AD7799是ADI公司早期推出一款高精度低速率的ADC,性能参数如下 •均方根(RMS)噪声:  27 nV(4.17 Hz.AD7799)  65 nV(16.7 Hz. ...

  4. STM32 F446RET6多通道ADC采集

    本次配置是根据STM32CUBEIDE去开发的 DMA搬运数据规则 使用DMA搬运数据的时候我们会先建立一个数据缓冲区,将DMA采集的数据存放到数据缓冲区内.采集到的ADC的值根据通道的顺序一个一个的 ...

  5. STM32实现双通道ADC采集电压电流值

    本次的实验是通过配置DMA来获取ADC采集到的数据的. 软件实现如下: adc.c文件 #include "adc.h"#define ADC1_DR_Address ((u32) ...

  6. 11讲 | STM32单片机实现ADC采集功能

    前言 专栏内容 持续更新,后续随着订阅人数增加价格可能会上涨. 目录 前言 一.简介 1.模拟信号 2.数字信号 3.采样频率 二.ADC

  7. 高精度ADC采集电量显示(MCP3421)

    文章目录 Linux 一.简介 二.前序 三.MCP3421 1.官方资料下载 2.芯片讲解 四.电压转电量思路 五.程序 1.C程序 2.测试结果 六.总结 Linux 一.简介 最近在做一个嵌入式 ...

  8. 热电偶温度采集pid加热控制,高精度adc数据采集继电器输出

    热电偶温度采集pid加热控制,高精度adc数据采集继电器输出 整套系统包括: 2路adc数据采集系统,采用24位高精度adc(美国adi公司产品ad7732),分辨率达到0.0002mv,可做高精度数 ...

  9. STM32 - ADC采集电压 中断处理

    一.参考电压 VDD接入电压为3.3V ADC供电要求:2.4V到3.6V 注意:STM32的100脚以上(含100脚)有参考电压引脚.在没有参考电压引脚的单片机上,可以把基准电压芯片接入VDDA,但 ...

最新文章

  1. linux手动释放内存的方法
  2. 计算机视觉应用的简称,计算机视觉应用之图像检索任务简单介绍
  3. mysql注入漏洞语句,web安全之sql注入漏洞
  4. Postman: Test
  5. 【转】3.1(译)构建Async同步基元,Part 1 AsyncManualResetEvent
  6. 倒果汁c语言,水果榨汁补维生素C?这些补维生素的错误别再犯了
  7. CPU VS GPU笔记
  8. 95-40-120-java.util.concurrent-线程-AbstractEventExecutor
  9. 递归法:从n个小球中取m个小球(不放回),共有多少种取法?
  10. ubuntu系统无法连接识别到adb设备和fastboot设备解决方法
  11. android studio 中禁用一个插件功能
  12. hadoop安装配置实验报告
  13. 大学计算机ppt学校题材实验报告,PPT实验报告模板2篇
  14. github 设置语言为中文
  15. 阿里云 python_阿里云python sdk
  16. mysql查询自然周_Hive和MySQL中自然周保持一致的方法
  17. 两台win10电脑网线直连,使用Synergy实现鼠标键盘共享设置
  18. linux nano编译器_Nano 编辑器可以做些什么?
  19. Failed to convert value of type 'java.lang.String' to required type 'java.util.Date
  20. 蓝牙(Bluetooth)设备通讯,并连接WIFI

热门文章

  1. python气象数据可视化学习记录1——基于ERA5数据画风场和海平面气压填色叠加图
  2. pcie gen3 bios设置_如何设置才能实现LED显示屏的定时播放及开关机
  3. 保安日记:前端学习第八篇之HTML5
  4. K线形态识别_下跌三连阴
  5. 计算机模拟合理用药,药学实训与虚拟仿真实验中心
  6. 如何将程序员写出来的程序打包成安装包(最简单的)
  7. 如何让Windows 10每天夜间自动开启深色模式
  8. python列表与元组、字典与集合的应用上机报告
  9. 素问·上古天真论原文
  10. Mac 原神电脑版下载安装使用教程,MacBook 上也可以玩原神了