xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 3KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-04
  • 語言: 其他
  • 標簽: ADS8688??高速AD??stm32??

資源簡介

TI公司的高速AD芯片,ADS8688模擬到數據的解決方案。網上找不到驅動資料,我自己寫的驅動stm32驅動代碼,希望能給大家帶來幫助,謝謝!

資源截圖

代碼片段和文件信息

#include?“ADS8688.H“
#include?“spi.h“

//初始化ADS8688,并且檢驗讀入寄存器數據和寫入的是否一樣
//返回TURE則說明初始化正常,否則錯誤
bool?ADS8688_Init(void)
{
u8?i?=?0;
GPIO_InitTypeDef?GPIO_InitStructure;
??
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC?ENABLE?);

GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_4; //PA4->ADS8688CS
GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_AF_PP;??//復用推挽輸出
GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
GPIO_Init(GPIOA?&GPIO_InitStructure);
GPIO_SetBits(GPIOAGPIO_Pin_4);

GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_4; //PC4->ADS8688RST
GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_AF_PP;??//復用推挽輸出
GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
GPIO_Init(GPIOC?&GPIO_InitStructure);
GPIO_SetBits(GPIOCGPIO_Pin_4);

SPI1_Init(); //初始化SPI1
Enter_RESET_MODE();
ADS8688_Write_Program_Register(0X010XF0);
i?=?ADS8688_READ_Program_Register(0X01);
if?(i==0XF0)
return?TRUE;
else?return?FALSE;
}

void?ADS8688_Reset(void) //hardware?reset
{
u8?i=5;
ADS8688RST?=?0;
while?(i--);
ADS8688RST?=?1;
}

void?ADS8688_PWRDN(void) //hardware?power-down
{
u8?i=50;
ADS8688RST?=?0;
while?(i--);
}

void?ADS8688_PWRUP(void) //power-down
{
ADS8688RST?=?1;
}

void?ADS8688_WriteCommandReg(u16?command)//寫ADS8688命令寄存器
{
ADS8688CS?=?0;
SPI1_ReadWriteByte(command>>8?&?0XFF);
SPI1_ReadWriteByte(command?&?0XFF);
ADS8688CS?=?1;
}

void?Enter_RESET_MODE(void) //軟件復位模式,復位?program?registers
{
ADS8688_WriteCommandReg(RST);
}

//進入STDBY模式,且命令發送后CS立刻置高,不讀數據幀;
//退出此模式需執行AUTO_RST或者MAN_CH_n命令,且需要等待至少20us以保證正常數據的AD轉換
void?Enter_STANDBY_MODE?(void)
{
ADS8688_WriteCommandReg(STDBY);
}

//進入PWR_DN模式,且命令發送后CS立刻置高,不讀數據幀;
//退出此模式需執行AUTO_RST或者MAN_CH_n命令,且需要等待至少15ms以保證正常數據的AD轉換
void?Enter_POWERDOWN_MODE?(void) //此為軟件方式進入PWR_DN模式,與硬件方式區別是不改變?program?registers
{
ADS8688_WriteCommandReg(PWR_DN);
}

void?AUTO_RST_Mode(void) //進入自動掃描模式
{
ADS8688_WriteCommandReg(AUTO_RST);
}

//讀取掃描通道序列的AD轉換數據code到變量數組中
void?Get_AUTO_RST_Mode_Data(u16*?outputdata?u8?chnum)
{
u8?i=0datal=0datah=0;
u16?data=0;
for?(i=0;?i {
ADS8688CS?=?0;
SPI1_ReadWriteByte(0X00);
SPI1_ReadWriteByte(0X00);
datah?=?SPI1_ReadWriteByte(0XFF);
datal?=?SPI1_ReadWriteByte(0XFF);
ADS8688CS?=?1;

data?=?datah<<8?|?datal; //高位在前,低位在后
*(outputdata+i)?=?data;
}
}

void?MAN_Ch_n_Mode(u8?ch) //手動模式
{
ADS8688_WriteCommandReg(ch);
}

//讀取手動通道的AD轉換數據code
u16?Get_MAN_Ch_n_Mode_Data(void)
{
u8?datah=0datal=0;
ADS8688CS?=?0;
SPI1_ReadWriteByte(0X00);
SPI1_ReadWriteByte(0X00);
datah?=?SPI1_ReadWriteByte(0XFF);
datal?=?SPI1_ReadWriteByte(0XFF);
ADS8688CS?=?1;

return?(datah<<8?|?datal);
}

//Program?Register寫操作
void?ADS8688_Write_Program_Register(u8?Addru8?data)
{
ADS8688CS?=?0;
SPI1_ReadWriteByte(Addr<<1?|?WRITE);
SPI1_ReadWriteByte(data);
ADS8688CS?=?1;
}

//Program?Register讀操作
u8?ADS8688_READ_Program_Register(u8?Addr)
{
u8?data?=

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-02-02?15:59??ADS8688\
?????文件????????3757??2016-01-21?10:20??ADS8688\ADS8688.c
?????文件????????2529??2016-01-21?10:21??ADS8688\ADS8688.h

評論

共有 條評論