91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-11
  • 語言: 其他
  • 標簽:

資源簡介

這是本人參考網上的資源和老師給的代碼自己寫的,經檢測,可以使用。分享給大家,希望對大家有用。具體的詳解可以參見本人的博客。

資源截圖

代碼片段和文件信息

#include?“spi.h“


//寫命令
static?void?ADS1248_WriteCmd(uint8_t?Cmd)??
{???

???AD_nCS_LOW; //拉低片選線,使能SPI通信

HAL_SPI_Transmit(&hspi1?&Cmd?1HAL_MAX_DELAY);
????
AD_nCS_HIGH; //通信結束,拉高片選
????
}?



////讀寄存器
void?ADS1248_ReadReg(uint8_t?RegAddruint8_t?*Bufferuint8_t?Length)??
{??
????uint8_t?Cmd[2];??

????AD_nCS_LOW;

AD_START_HIGH; //在寫寄存器時嗎,需要將START拉高(不讓其進入睡眠模式)

?
????Cmd[0]=ADC_CMD_RREG|RegAddr;??
????Cmd[1]=Length-1;??

HAL_SPI_Transmit(&hspi1Cmd2HAL_MAX_DELAY); //發送命令


HAL_SPI_Receive(&hspi1?Buffer?Length?HAL_MAX_DELAY); //接收寄存器數據

Cmd[0]=ADC_CMD_NOP;??
????HAL_SPI_Transmit(&hspi1?Cmd1HAL_MAX_DELAY);? //最后在發送一個NOP,強制拉高DOUT


AD_nCS_HIGH;
??
}


//寫寄存器
static??void?ADS1248_WriteReg(uint8_t?RegAddruint8_t?*Bufferuint8_t?Length)??
{??
????uint8_t?Cmd[2];??

????AD_nCS_LOW;

AD_START_HIGH; //在寫寄存器時嗎,需要將START拉高(不讓其進入睡眠模式)
???
?????HAL_Delay(20); //硬件延遲

????Cmd[0]=ADC_CMD_WREG|RegAddr;??
????Cmd[1]=Length-1;?

??HAL_SPI_Transmit(&hspi1?Cmd?2HAL_MAX_DELAY);? //指定向指定寄存器寫入指定字節數據
??HAL_SPI_Transmit(&hspi1?Buffer?LengthHAL_MAX_DELAY);? //發送數據字節

?HAL_Delay(20); //硬件延遲

????AD_nCS_HIGH;?
AD_START_LOW;

}




//判斷忙狀態
?uint8_t?ADS1248_WaitBusy(uint32_t?Timeout)??
{??
????uint32_t?i?=?0;?
AD_nCS_LOW;
while(nAD_DRDY_STATE?>?0)
{
HAL_Delay(1);
i++;?
if(i>Timeout)
return?1;???

}
??
AD_nCS_HIGH;

return?0;

}?


//ADS1248系統校準??校準順序為:自偏移校準->偏移校準->增益校準?.
static?uint8_t?ADS1248_Calibrate(uint8_t?Gain)??
{??
uint8_t?R=0;
????uint8_t?Cmd;??
????ADS1248_WriteReg(ADC_REG_SYS0&Gain1);??????//?設置增益值、ADC輸出數據率

Cmd=0x20;?? //0010?0000?
ADS1248_WriteReg(ADC_REG_MUX1&Cmd1);???????//?設置系統監測為自偏移測量?
ADS1248_WriteCmd(ADC_CMD_SELFOCAL);??????????//?自偏移校準??
R?|=?ADS1248_WaitBusy(500);???? ?//?等待校準完成?


Cmd=0x21;??//0010?0001
ADS1248_WriteReg(ADC_REG_MUX1&Cmd1);???????//?設置系統監測為偏移測量??
ADS1248_WriteCmd(ADC_CMD_SYSOCAL);???????????//?系統偏移校準??
R?|=?ADS1248_WaitBusy(500);??? ??//?等待校準完成?


Cmd=0x22;??
ADS1248_WriteReg(ADC_REG_MUX1&Cmd1);???????//?設置系統監測為增益測量??
ADS1248_WriteCmd(ADC_CMD_SYSGCAL);???????????//?系統增益校準??
R?|=?ADS1248_WaitBusy(500);???? ?//?等待校準完成??

return?R;
}


//復位ADS1248
?void?ADS1248_Reset()
{
??
??AD_nCS_HIGH;
??AD_START_HIGH; //???為什么不是置低

nADRST_LOW; //置低nADRST,復位ADS1248
HAL_Delay(20);
nADRST_HIGH;
HAL_Delay(20);
??
}




//ADS1248初始化
void?ADS1248_Init(void)??
{??
uint8_t?Cmd;
uint8_t?Gain;

ADS1248_Reset();?? ?//系統復位

HAL_Delay(100);

Gain?=?ADC_GAIN_16|ADC_SPS_20;


//初始化MUX0多路復用控制寄存器
Cmd?=?0x17 ; //00?010?111Bit7-6:傳感器電流源檢測不使用,Bit5-3:正輸入為AIN2,Bit2-0:負輸入為AIN7
ADS1248_WriteReg(ADC_REG_MUX0&Cmd1);?

Cmd=0x20?;//0?01?00?000
ADS1248_WriteRe

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-06-10?19:59??ADS1248驅動源碼\
?????文件????????5044??2018-06-10?19:48??ADS1248驅動源碼\spi.c
?????文件????????3609??2018-06-08?09:14??ADS1248驅動源碼\spi.h

評論

共有 條評論

相關資源