STM32 ADS8365 高精度 ADC 采集方案
开源一个 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 采集方案相关推荐
- AD7190之STM32程序——STM32测试高精度ADC篇(三)
1. AD7190概述 AD7190是一款适合高精密测量应用的低噪声完整模拟前端.它集成一个低噪声.24位Σ-Δ型模数转换(ADC).片内低噪声增益级意味着可直接输入小信号. 这款器件可配置为两路差 ...
- STM32物联网项目-ADC采集实验板板温度(NTC热敏电阻)
STM32 ADC采集板载温度 STM32 ADC简介 STM32 拥有 1~3 个 ADC(STM32F101/102 系列只有 1 个 ADC),这些 ADC 可以独立使用, 也可以使用双重模 ...
- A7799之STM32程序——STM32测试高精度ADC篇(二)
1. AD7799概述 AD7799是ADI公司早期推出一款高精度低速率的ADC,性能参数如下 •均方根(RMS)噪声: 27 nV(4.17 Hz.AD7799) 65 nV(16.7 Hz. ...
- STM32 F446RET6多通道ADC采集
本次配置是根据STM32CUBEIDE去开发的 DMA搬运数据规则 使用DMA搬运数据的时候我们会先建立一个数据缓冲区,将DMA采集的数据存放到数据缓冲区内.采集到的ADC的值根据通道的顺序一个一个的 ...
- STM32实现双通道ADC采集电压电流值
本次的实验是通过配置DMA来获取ADC采集到的数据的. 软件实现如下: adc.c文件 #include "adc.h"#define ADC1_DR_Address ((u32) ...
- 11讲 | STM32单片机实现ADC采集功能
前言 专栏内容 持续更新,后续随着订阅人数增加价格可能会上涨. 目录 前言 一.简介 1.模拟信号 2.数字信号 3.采样频率 二.ADC
- 高精度ADC采集电量显示(MCP3421)
文章目录 Linux 一.简介 二.前序 三.MCP3421 1.官方资料下载 2.芯片讲解 四.电压转电量思路 五.程序 1.C程序 2.测试结果 六.总结 Linux 一.简介 最近在做一个嵌入式 ...
- 热电偶温度采集pid加热控制,高精度adc数据采集继电器输出
热电偶温度采集pid加热控制,高精度adc数据采集继电器输出 整套系统包括: 2路adc数据采集系统,采用24位高精度adc(美国adi公司产品ad7732),分辨率达到0.0002mv,可做高精度数 ...
- STM32 - ADC采集电压 中断处理
一.参考电压 VDD接入电压为3.3V ADC供电要求:2.4V到3.6V 注意:STM32的100脚以上(含100脚)有参考电压引脚.在没有参考电压引脚的单片机上,可以把基准电压芯片接入VDDA,但 ...
最新文章
- linux手动释放内存的方法
- 计算机视觉应用的简称,计算机视觉应用之图像检索任务简单介绍
- mysql注入漏洞语句,web安全之sql注入漏洞
- Postman: Test
- 【转】3.1(译)构建Async同步基元,Part 1 AsyncManualResetEvent
- 倒果汁c语言,水果榨汁补维生素C?这些补维生素的错误别再犯了
- CPU VS GPU笔记
- 95-40-120-java.util.concurrent-线程-AbstractEventExecutor
- 递归法:从n个小球中取m个小球(不放回),共有多少种取法?
- ubuntu系统无法连接识别到adb设备和fastboot设备解决方法
- android studio 中禁用一个插件功能
- hadoop安装配置实验报告
- 大学计算机ppt学校题材实验报告,PPT实验报告模板2篇
- github 设置语言为中文
- 阿里云 python_阿里云python sdk
- mysql查询自然周_Hive和MySQL中自然周保持一致的方法
- 两台win10电脑网线直连,使用Synergy实现鼠标键盘共享设置
- linux nano编译器_Nano 编辑器可以做些什么?
- Failed to convert value of type 'java.lang.String' to required type 'java.util.Date
- 蓝牙(Bluetooth)设备通讯,并连接WIFI
热门文章
- python气象数据可视化学习记录1——基于ERA5数据画风场和海平面气压填色叠加图
- pcie gen3 bios设置_如何设置才能实现LED显示屏的定时播放及开关机
- 保安日记:前端学习第八篇之HTML5
- K线形态识别_下跌三连阴
- 计算机模拟合理用药,药学实训与虚拟仿真实验中心
- 如何将程序员写出来的程序打包成安装包(最简单的)
- 如何让Windows 10每天夜间自动开启深色模式
- python列表与元组、字典与集合的应用上机报告
- 素问·上古天真论原文
- Mac 原神电脑版下载安装使用教程,MacBook 上也可以玩原神了