资源简介
ad7606思路:stm32cubemx配置好相应的IO口 SPI2与ad7606通信读取AD值,
convstA和convstB通过跳帽连接到一起,可以同时测量8个通道,
默认采样电压范围±10V
定时器7每10ms采一次8通道电压值,总共10次,求平均值在屏幕显示
间隔1s重新采集10次显示
代码片段和文件信息
#include “ad7606.h“
AD7606_InitTypeDef AD7606_InitStruct={0};
float ad7606_sample_vol[8];
//ad7606测试状态标志
uint8_t flag_ad7606_test_start=0;
uint8_t flag_ad7606_gui_first=0;
//ad7606测试轮询变量
uint8_t flag_ad7606_1s=0;
uint16_t ad7606_time=0;
/*
ad7606思路:stm32cubemx配置好相应的IO口 SPI2与ad7606通信读取AD值,
convstA和convstB通过跳帽连接到一起,可以同时测量8个通道,
默认采样电压范围±10V
定时器7每10ms采一次8通道电压值,总共10次,求平均值在屏幕显示
间隔1s重新采集10次显示
*/
/*
*********************************************************************************************************
* 函 数 名: ad7606_Reset
* 功能说明: 硬件复位AD7606
* 形 参:无
* 返 回 值: 无
*********************************************************************************************************
*/
static void ad7606_Reset(void)
{
/* AD7606是高电平复位,要求最小脉宽50ns */
AD_RESET_LOW();
AD_RESET_HIGH();
AD_RESET_HIGH();
AD_RESET_HIGH();
AD_RESET_HIGH();
AD_RESET_LOW();
}
/*
*********************************************************************************************************
* 函 数 名: ad7606_SetOS
* 功能说明: 设置过采样模式(数字滤波,硬件求平均值)
* 形 参:_ucMode : 0-6 0表示无过采样,1表示2倍,2表示4倍,3表示8倍,4表示16倍
* 5表示32倍,6表示64倍
* 返 回 值: 无
*********************************************************************************************************
*/
static void ad7606_SetOS(uint8_t _ucMode)
{
if (_ucMode == 1)
{
AD_OS2_0();
AD_OS1_0();
AD_OS0_1();
}
else if (_ucMode == 2)
{
AD_OS2_0();
AD_OS1_1();
AD_OS0_0();
}
else if (_ucMode == 3)
{
AD_OS2_0();
AD_OS1_1();
AD_OS0_1();
}
else if (_ucMode == 4)
{
AD_OS2_1();
AD_OS1_0();
AD_OS0_0();
}
else if (_ucMode == 5)
{
AD_OS2_1();
AD_OS1_0();
AD_OS0_1();
}
else if (_ucMode == 6)
{
AD_OS2_1();
AD_OS1_1();
AD_OS0_0();
}
else /* 按0处理 */
{
AD_OS2_0();
AD_OS1_0();
AD_OS0_0();
}
}
/*
*********************************************************************************************************
* 函 数 名: ad7606_StartConv
* 功能说明: 启动AD7606的ADC转换
* 形 参:无
* 返 回 值: 无
*********************************************************************************************************
*/
void ad7606_StartConv(void)
{
/* 上升沿开始转换,低电平持续时间至少25ns */
AD_CONVSTA_LOW();
AD_CONVSTA_LOW();
AD_CONVSTA_LOW();
AD_CONVSTA_LOW();
AD_CONVSTA_LOW();
AD_CONVSTA_LOW();
AD_CONVSTA_LOW();
AD_CONVSTA_LOW();
AD_CONVSTA_LOW();
AD_CONVSTA_LOW();
AD_CONVSTA_LOW();
AD_CONVSTA_HIGH();
}
/*
*********************************************************************************************************
* 函 数 名: ad7606_Init
* 功能说明: ad7606d的IO初始化
* 返 回 值: 无
*********************************************************************************************************
*/
void ad7606_Init(void)
{
ad7606_SetOS(0);
ad7606_Reset(); /* 硬件复位复AD7606 */
AD_CONVSTA_HIGH(); /* CONVST脚设置为高电平 */
}
/*
********************************************************************
- 上一篇:stc-isp-15xx-v6.86G
- 下一篇:ADS1256-STM32参考程序
相关资源
- ADS1256-STM32参考程序
- STM32F10实现照相功能照相机
- 基于STM32的嵌入式flash读写控制
- stm32f103c8t6开发板原理图+pcb
- STM32内部FLASH模拟eerom
- stm32的半导体除湿机程序
- stm32实现高精度频率测定
- stm32库函数代码自动生成器V1.2
- stm32 DMA例程
- stm32蓝牙小车
- 显示屏操作(stm32f103c8t6(SAN))
- 基于STM32f103 PWM波呼吸灯
- STM32红外检测有人开始录音,并播放录
- Proteus 8.6仿真STM32F103C6
- stm32 +w5500 裸机 远程升级 自动dns pi
- stm32双机spi通信
- STM32 PCB封装库 全系列 全网不好找
- 基于STM32F407的W5500 tcpserver(官网例程
- 串口调试助手(测试STM32串口)
- 基于STM32F407ZG的监控摄像头及FATFS文件
- tm1650+stm32f103源码(board_tm1650.c)
- stm32定时器中断
- 基于STM32的音频信号采样与FFT分析
- STM32肺活量测试仪
- 基于STM32F103C8T6主控板使用BH1750检测光
- cubeMX设计实现stm32f407上的CAN及485的通
- stm32 BootLoader程序(main.c)
- STM32修炼的最好书
- STM32 BLDC 无刷电机
- stm32 实现Fatfs对U盘文件操作(main.c)
评论
共有 条评论