資源簡介
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參考程序
評論
共有 條評論