• 大小: 8.62KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-04-21
  • 语言: C/C++
  • 标签: STM32  STM3  ADC  AD  

资源简介

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脚设置为高电平 */
}


/*
********************************************************************

评论

共有 条评论