团购做的好的网站有哪些/广告联盟点击赚钱平台
AD7606是一款8通道最高16位200ksps的AD采样芯片。5V单模拟电源供电,真双极性模拟输入可以选择±10 V,±5 V两种量程。支持串口与并口两种读取方式。
硬件连接方式:
配置引脚 | 引脚功能 | 详细说明 |
OS2 OS1 OS2 | 过采样率配置 | 000 1倍过采样率 200K 011 2^3 8倍过采样率 200K/8=25K |
RANGE | 模拟信号量程配置 | 0表示正负5V, 1表示正负10V |
STBY | 待机省电 | 0有效可开启省电或关断,需配合RANGE脚, RANGE=1 待机 RANGE=0 关断 |
RESET | 复位信号 | 典型值高脉冲50ns,上电后需给出,给出后转换中断,输出寄存器清零 |
CONVSTA | 前半通道转换开始信号 | 控制前一半通道V1-V4,过采样末开启时启作用 |
CONVSTB | 后半通道转换开始信号 | 控制后一半通道V5-V8。CONVSTA,CONVSTB可以并联使用 |
PAR/SER/BYTE SEL | 并行/串行/字节选择 | 0 并行 。1串行(DB15=0)或字节 (DB15=1) 串行时RD/CLK 作为时钟输入 DB7,DB8作串行输出 字节模式下DB14=1 先高8位后低8位,0时相反 串行或字节模式下不用数字接口需要接地 |
RD/SCLK | 读取/时钟 | 并行模式:RD输入,RD=0 CS=0时开启输出总线 串行模式:CLK时钟输入 |
CS | 片选位 | 低电平有效 |
REF SELECT | 外部/内部基准选择 | 0:外部基准 REF需要输入2.5V 1:内部基准 REF端可提供2.5V基准。 |
BUSY | 忙信号 | 转换开始变高,转换完成变低。一般用下降沿来读数 |
FRSTDATA | 首数据输出 | 首数据时为高,首数据结束时为低,初始为高阻态 |
并口读取STM32F407硬件连接
程序代码:
#ifdef AD7606_C
#define AD7606_PRE
#else
#define AD7606_PRE extern
#endif
#include "sys.h"#define AD7606_Data_CLK RCC_AHB1Periph_GPIOE
#define AD7606_Data_PORT GPIOE
#define AD7606_Data_PIN GPIO_Pin_All#define AD7606_OS0_CLK RCC_AHB1Periph_GPIOC
#define AD7606_OS0_PORT GPIOC
#define AD7606_OS0_PIN GPIO_Pin_13#define AD7606_OS1_CLK RCC_AHB1Periph_GPIOC
#define AD7606_OS1_PORT GPIOC
#define AD7606_OS1_PIN GPIO_Pin_14#define AD7606_OS2_CLK RCC_AHB1Periph_GPIOC
#define AD7606_OS2_PORT GPIOC
#define AD7606_OS2_PIN GPIO_Pin_15#define AD7606_RANGE_CLK RCC_AHB1Periph_GPIOC
#define AD7606_RANGE_PORT GPIOC
#define AD7606_RANGE_PIN GPIO_Pin_10#define AD7606_CONVSTA_CLK RCC_AHB1Periph_GPIOC
#define AD7606_CONVSTA_PORT GPIOC
#define AD7606_CONVSTA_PIN GPIO_Pin_9#define AD7606_CONVSTB_CLK RCC_AHB1Periph_GPIOC
#define AD7606_CONVSTB_PORT GPIOC
#define AD7606_CONVSTB_PIN GPIO_Pin_8#define AD7606_RESET_CLK RCC_AHB1Periph_GPIOC
#define AD7606_RESET_PORT GPIOC
#define AD7606_RESET_PIN GPIO_Pin_7#define AD7606_RD_CLK RCC_AHB1Periph_GPIOC
#define AD7606_RD_PORT GPIOC
#define AD7606_RD_PIN GPIO_Pin_6#define AD7606_CS_CLK RCC_AHB1Periph_GPIOC
#define AD7606_CS_PORT GPIOC
#define AD7606_CS_PIN GPIO_Pin_2#define AD7606_BUSY_CLK RCC_AHB1Periph_GPIOC
#define AD7606_BUSY_PORT GPIOC
#define AD7606_BUSY_PIN GPIO_Pin_11#define AD7606_FRSTDATA_CLK RCC_AHB1Periph_GPIOC
#define AD7606_FRSTDATA_PORT GPIOC
#define AD7606_FRSTDATA_PIN GPIO_Pin_12#define AD7606_RESET_H() GPIO_SetBits(AD7606_RESET_PORT, AD7606_RESET_PIN)
#define AD7606_RESET_L() GPIO_ResetBits(AD7606_RESET_PORT, AD7606_RESET_PIN)#define AD7606_CS_H() GPIO_SetBits(AD7606_CS_PORT, AD7606_CS_PIN)
#define AD7606_CS_L() GPIO_ResetBits(AD7606_CS_PORT, AD7606_CS_PIN)#define AD7606_RD_H() GPIO_SetBits(AD7606_RD_PORT, AD7606_RD_PIN)
#define AD7606_RD_L() GPIO_ResetBits(AD7606_RD_PORT, AD7606_RD_PIN)#define AD7606_RANGE_H() GPIO_SetBits(AD7606_RANGE_PORT, AD7606_RANGE_PIN)
#define AD7606_RANGE_L() GPIO_ResetBits(AD7606_RANGE_PORT, AD7606_RANGE_PIN)#define AD7606_OS2_H() GPIO_SetBits(AD7606_OS2_PORT, AD7606_OS2_PIN)
#define AD7606_OS2_L() GPIO_ResetBits(AD7606_OS2_PORT, AD7606_OS2_PIN)#define AD7606_OS1_H() GPIO_SetBits(AD7606_OS1_PORT, AD7606_OS1_PIN)
#define AD7606_OS1_L() GPIO_ResetBits(AD7606_OS1_PORT, AD7606_OS1_PIN)#define AD7606_OS0_H() GPIO_SetBits(AD7606_OS0_PORT, AD7606_OS0_PIN)
#define AD7606_OS0_L() GPIO_ResetBits(AD7606_OS0_PORT, AD7606_OS0_PIN)#define READ_AD7606_CS() GPIO_ReadInputDataBit(AD7606_CS_PORT, AD7606_CS_PIN)
#define READ_AD7606_FRSTDATA() GPIO_ReadInputDataBit(AD7606_FRSTDATA_PORT, AD7606_FRSTDATA_PIN)#define READ_AD7606_DATA() GPIO_ReadInputData(AD7606_Data_PORT)#define AD7606_OS0 PCout(13)
#define AD7606_OS1 PCout(14)
#define AD7606_OS2 PCout(15)
#define AD7606_RANGE PCout(10)
AD7606_PRE s16 ADCData[512][8];
AD7606_PRE u16 ADCCnt;
// AD7606_PRE struct ADCStrc AD7606_ADC;
AD7606_PRE void ReadAD7606(void);
AD7606_PRE void AD7606Init(void);
AD7606_PRE void ReadAD7606(void);
AD7606_PRE void InitAD7606_Port(void);
AD7606_PRE void AD7606ChipCfg(void);
AD7606_PRE void AD7606ChipReset(void);
#define AD7606_C
#include "main.h"// struct ADCStrc AD7606_ADC;//**************************************************
void AD7606Init(void)
{InitAD7606_Port();AD7606ChipCfg();AD7606ChipReset();ADCCnt = 0;
}//**********************************************************************************
void InitAD7606_Port(void)
{GPIO_InitTypeDef GPIO_InitStructure;EXTI_InitTypeDef EXTI_InitStructure;RCC_AHB1PeriphClockCmd(AD7606_OS0_CLK | AD7606_Data_CLK, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);GPIO_InitStructure.GPIO_Pin = AD7606_Data_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;GPIO_Init(AD7606_Data_PORT, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;GPIO_InitStructure.GPIO_Pin = AD7606_OS0_PIN | AD7606_OS1_PIN | AD7606_OS2_PIN | AD7606_RANGE_PIN | AD7606_CONVSTA_PIN | AD7606_CONVSTB_PIN;GPIO_Init(AD7606_OS0_PORT, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = AD7606_RESET_PIN | AD7606_RD_PIN | AD7606_CS_PIN;GPIO_Init(AD7606_RESET_PORT, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = AD7606_CONVSTA_PIN | AD7606_CONVSTB_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;GPIO_Init(AD7606_CONVSTB_PORT, &GPIO_InitStructure);GPIO_PinAFConfig(AD7606_CONVSTB_PORT, GPIO_PinSource8, GPIO_AF_TIM3);GPIO_PinAFConfig(AD7606_CONVSTA_PORT, GPIO_PinSource9, GPIO_AF_TIM3);GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;GPIO_InitStructure.GPIO_Pin = AD7606_BUSY_PIN | AD7606_FRSTDATA_PIN;GPIO_Init(AD7606_BUSY_PORT, &GPIO_InitStructure);SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC, EXTI_PinSource11);EXTI_InitStructure.EXTI_Line = EXTI_Line11;EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;EXTI_InitStructure.EXTI_LineCmd = ENABLE;EXTI_Init(&EXTI_InitStructure);
}//***************************************
// 配置7606
void AD7606ChipCfg(void)
{AD7606_OS2_L();AD7606_OS1_L();AD7606_OS0_H(); // 001 两倍过采样率 最大64倍过采样率AD7606_RANGE_L(); // L为5V,H为10VAD7606_CS_L(); // 片选有效AD7606_RD_H(); // 读取拉低 并行模式
}//***************************************
// 复位7606
void AD7606ChipReset(void)
{AD7606_RESET_H();__NOP();__NOP();AD7606_RESET_L();__NOP();__NOP();
}//***************************************
// 读数据0~7,0:CI,1:BI,2:CI,3:NC,4:CU,5:BU,6:AU,7:NC
void ReadAD7606(void)
{u8 i;AD7606_RD_H();__NOP();AD7606_CS_L();__NOP();for (i = 0; i < 8; i++){AD7606_RD_L();__NOP();if (READ_AD7606_FRSTDATA())i = 0; // 如果7606的第一个数据线为高ADCData[ADCCnt][i] = READ_AD7606_DATA();AD7606_RD_H();__NOP();}ADCCnt++;if (ADCCnt >= 512)ADCCnt = 0;AD7606_CS_H();
}void EXTI15_10_IRQHandler(void)
{if ((EXTI->PR & EXTI_Line11) != 0) //{EXTI->PR = EXTI_Line11;ReadAD7606();}
}
相关文章:

AD7606使用方法
AD7606是一款8通道最高16位200ksps的AD采样芯片。5V单模拟电源供电,真双极性模拟输入可以选择10 V,5 V两种量程。支持串口与并口两种读取方式。 硬件连接方式: 配置引脚 引脚功能 详细说明 OS2 OS1 OS2 过采样率配置 000 1倍过采样率 …...

嵌入式系统应用-LVGL的应用-平衡球游戏 part1
平衡球游戏 part1 1 平衡球游戏的界面设计2 界面设计2.1 背景设计2.2 球的设计2.3 移动球的坐标2.4 用鼠标移动这个球2.5 增加边框规则2.6 效果图2.7 游戏失败重启游戏 3 为小球增加增加动画效果3.1 增加移动效果代码3.2 具体效果图片 平衡球游戏 part2 第二部分文章在这里 1 …...

JVM(四) - JVM 内存结构
目录 一、程序计数器 1.1 作用 1.2 概述 二、虚拟机栈 2.1 概述 2.2 栈的存储单位 2.3 栈运行原理 2.4 栈帧的内部结构 2.4.1. 局部变量表 槽 Slot 2.4.2. 操作数栈 概述 栈顶缓存(Top-of-stack-Cashing) 2.4.3. 动态链接(指向…...

【AI系统】CANN 算子类型
CANN 算子类型 算子是编程和数学中的重要概念,它们是用于执行特定操作的符号或函数,以便处理输入值并生成输出值。本文将会介绍 CANN 算子类型及其在 AI 编程和神经网络中的应用,以及华为 CANN 算子在 AI CPU 的详细架构和开发要求。 算子基…...

VUE脚手架练习
脚手架安装的问题: 1.安装node.js,配置环境变量,cmd输入node -v和npm -v可以看到版本号(如果显示不是命令,确认环境变量是否配置成功,记得配置环境变量之后重新打开cmd,再去验证) 2.在安装cnmp时…...

动态艺术:用Python将文字融入GIF动画
文章内容: 在数字媒体的多样化发展中,GIF动画作为一种流行的表达形式,常被用于广告、社交媒体和娱乐。本文通过一个具体的Python编程示例,展示了如何将文字以动态形式融入到GIF动画中,创造出具有视觉冲击力的动态艺术…...

更多开源创新 挑战OpenAI-o1的模型出现和AI个体模拟突破
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

VR眼镜可视化编程:开启医疗信息系统新纪元
一、引言 随着科技的飞速发展,VR 可视化编程在医疗信息系统中的应用正逐渐成为医疗领域的新趋势。它不仅为医疗教育、手术培训、疼痛管理等方面带来了新的机遇,还在提升患者体验、推动医疗信息系统智能化等方面发挥着重要作用。 在当今医疗领域…...

Ubuntu访问简书403
日期 二〇二四年十二月三日 操作系统 Ubuntu 22.04 浏览器 firefox 问题 打开简书提示403. 原因 简书不认带ubuntu的UA 解决办法 - 浏览器地址栏输入 about:config。接受风险 - 搜索 general.useragent.override,无则新建 string类型。 - 查看浏览器 UA&…...

SQL高级应用——索引与视图
数据库优化离不开索引和视图的合理使用。索引用于加速查询性能,而视图则在逻辑层简化了查询逻辑,提高了可维护性。本文将从以下几个方面详细探讨索引与视图的概念、应用场景、优化技巧以及最新的技术发展: 1. 索引类型与应用场景 索引是数据…...

docker部署文件编写(还未尝试)
docker文件启动mysql 要使用Docker启动MySQL,您可以通过以下步骤编写Dockerfile: 选择一个基础镜像,通常是一个包含了MySQL的Linux发行版。 设置环境变量,如MySQL的root密码等。 在容器启动时运行MySQL服务。 以下是一个简单…...

缓存与数据库数据一致性 详解
缓存与数据库数据一致性详解 在分布式系统中,缓存(如 Redis、Memcached)与数据库(如 MySQL、PostgreSQL)一起使用是提高系统性能的常用方法。然而,缓存与数据库可能因更新时序、操作失误等原因出现数据不一…...

每日计划-1203
1. 完成 236. 二叉树的最近公共祖先 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/ class Solution {public:TreeNode* lowe…...

HTML5动漫主题网站——天空之城 10页 html+css+设计报告成品项目模版
📂文章目录 一、📔网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站演示 五、⚙️网站代码 🧱HTML结构代码 💒CSS样式代码 六、🔧完整源码下载 七、📣更多 一、&#…...

分布式会话 详解
分布式会话详解 在分布式系统中,用户的会话状态需要在多个服务器或节点之间共享或存储。分布式会话指的是在这种场景下如何管理和存储会话,以便在多个节点上都能正确识别用户状态,从而保证用户体验的一致性。 1. 为什么需要分布式会话 在单…...

探索仓颉编程语言:官网上线,在线体验与版本下载全面启航
文章目录 每日一句正能量前言什么是仓颉编程语言仓颉编程语言的来历如何使用仓颉编程语言在线版本版本下载后记 每日一句正能量 当你被孤独感驱使着去寻找远离孤独的方法时,会处于一种非常可怕的状态。因为无法和自己相处的人也很难和别人相处,无法和别人…...

Ubuntu无法连接Linux
检查网络连接 确保你的机器能够正常连接互联网。你可以尝试 ping 一下 GitHub 或其他网站,确认是否有网络问题: ping github.com如果无法 ping 通 GitHub,检查一下你的网络连接。 检查 GitHub 状态 有时候 GitHub 本身可能会出现服务故障。你…...

【Spring】注解开发
为了提高开发效率,从 Spring 2.0 开始引入了多种注解,而在 Spring 3.0 中则实现了纯注解的开发方式。 一、注解的使用 在 Spring 2.0 之后,使用注解进行开发主要分为两个步骤: 定义 Bean:使用 Component 注解来定义…...

数字图像稳定DIS介绍目录
之前用OpenCV做过防抖,OpenCV处理时,先处理一遍,再输出视频。二者相差还是挺大的。 前 言.......................................................................................................................................... …...

【人工智能-基础】SVM中的核函数到底是什么
文章目录 支持向量机(SVM)中的核函数详解1. 什么是核函数?核函数的作用:2. 核技巧:从低维到高维的映射3. 常见的核函数类型3.1 线性核函数3.2 多项式核函数3.3 高斯径向基函数(RBF核)4. 总结支持向量机(SVM)中的核函数详解 支持向量机(SVM,Support Vector Machine)…...

字节青训Marscode——8:找出整形数组中超过一半的数
问题描述 小R从班级中抽取了一些同学,每位同学都会给出一个数字。已知在这些数字中,某个数字的出现次数超过了数字总数的一半。现在需要你帮助小R找到这个数字。 测试样例 样例1: 输入:array [1, 3, 8, 2, 3, 1, 3, 3, 3] 输出…...

C++ 异步编程的利器std::future和std::promise
1、背景 在现代计算机系统中,许多任务可能需要花费较长时间才能完成,例如网络请求、文件读取、大规模数据计算等。如果在程序中同步地执行这些任务,会导致主线程被阻塞,整个程序在任务执行期间无法响应其他操作,用户体…...

CRM 系统中的 **知识库功能** 的设计与实现
CRM 系统中的 **知识库功能** 旨在为用户提供一个集中的平台,用于存储、组织和管理有关系统功能、常见问题、使用技巧、操作文档等信息。它能够帮助用户高效解决问题、快速获取所需信息,从而提升使用体验并减少客户支持负担。 ### 一、知识库功能的设计…...

重学设计模式-工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)
在平常的学习和工作中,我们创建对象一般会直接用new,但是很多时候直接new会存在一些问题,而且直接new会让我们的代码变得非常繁杂,这时候就会巧妙的用到设计模式,平常我们通过力扣学习的算法可能并不会在我们工作中用到…...

【C语言】结构体(四)
本篇重点是typedef关键字 一,是什么? typedef用来定义新的数据类型,通常typedef与结构体的定义配合使用。 简单来说就是取别名 ▶ struct 是用来定义新的数据类型——结构体 ▶ typedef是给数据类型取别名。 二,为什么…...

swift类方法为什么使用表派发?
直接上答案:因为表派发允许子类重写父类的方法,并在运行时根据对象的实际类型调用正确的方法实现。 什么是表派发? 首先我们先知道的是,swift当中函数的派发机制主要分为静态派发和动态派发。动态派发又分为表派发和消息派发。 …...

php实现AES/CBC/PKCS5Padding加密
接口文档 文档给过来的案例是java程序的,参照其思路,造一个php版本 构造aes对称加密 public static function encry($data){$data "要加密的数据";$key 你的256位密钥; // 密钥应该是16字节(128位),24字节…...

Anaconda3安装及使用
Anaconda3安装及使用 Linux中安装Anaconda31.安装 Anaconda32.配置环境变量3.验证是否成功 Conda环境和包管理1.Conda 环境初始化2.Conda Env 管理3.Conda 软件包管理 Linux中安装Anaconda3 下面是在Linux中安装Anaconda3-2021.05的教程,其他版本Anaconda更换名字即…...

Argon2-cffi与argon2-cffi-bindings:深入理解及其应用
Argon2-cffi与argon2-cffi-bindings的关系 在Python密码学领域,argon2-cffi和argon2-cffi-bindings是两个经常被提及的库。尽管它们的名字相似,但它们在实现和用途上有所不同。argon2-cffi是一个提供Argon2哈希算法的Python库,而argon2-cffi-…...

spring boot+jpa接入达梦数据库
文章目录 前言依赖配置对应的domain类和repository 前言 最近有一个新项目,由于信息安全等要求只能使用达梦数据库(dm8),之前从来没用过,特此开一个笔记记录一下spring bootjpa如何使用达梦数据库完成开发。 依赖 p…...