143 lines
5.2 KiB
C
143 lines
5.2 KiB
C
![]() |
#include "main.h"
|
|||
|
#include "stdio.h"
|
|||
|
#include "string.h"
|
|||
|
#include "sys.h"
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0\1\2 3\4\5\6 7\8\9\10 11\12\13 14\15
|
|||
|
#define AD7606_DB0 GPIO_PIN_7 //PD7
|
|||
|
#define AD7606_DB1 GPIO_PIN_6 //PD6
|
|||
|
#define AD7606_DB2 GPIO_PIN_2 //PD2
|
|||
|
#define AD7606_DB3 GPIO_PIN_15 //PA15
|
|||
|
#define AD7606_DB4 GPIO_PIN_10 //PA10
|
|||
|
#define AD7606_DB5 GPIO_PIN_9 //PA9
|
|||
|
#define AD7606_DB6 GPIO_PIN_8 //PA8
|
|||
|
#define AD7606_DB7 GPIO_PIN_9 //PC9
|
|||
|
#define AD7606_DB8 GPIO_PIN_8 //PC8
|
|||
|
#define AD7606_DB9 GPIO_PIN_7 //PC7
|
|||
|
#define AD7606_DB10 GPIO_PIN_6 //PC6
|
|||
|
#define AD7606_DB11 GPIO_PIN_8 //PG8
|
|||
|
#define AD7606_DB12 GPIO_PIN_7 //PG7
|
|||
|
#define AD7606_DB13 GPIO_PIN_6 //PG6
|
|||
|
#define AD7606_DB14 GPIO_PIN_15 //PB15
|
|||
|
#define AD7606_DB15 GPIO_PIN_14 //PB14
|
|||
|
|
|||
|
|
|||
|
//GPIOB <20><><EFBFBD><EFBFBD>
|
|||
|
#define AD7606_GPIOX_CONVST_RANGE GPIOB
|
|||
|
|
|||
|
//CA CB<43><42><EFBFBD>ƽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define AD7606_CONVST GPIO_PIN_8 //PB8
|
|||
|
|
|||
|
//RANGE ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD>뷶Χѡ<CEA7><D1A1>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>뷶ΧΪ10V,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ5V) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define AD7606_RANGE GPIO_PIN_9 //PB9
|
|||
|
|
|||
|
|
|||
|
//OS0 1 2 <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD>ʿ<EFBFBD><CABF>ƽ<EFBFBD> 000 <20><EFBFBD><DEB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>200k <20><><EFBFBD>߹<EFBFBD><DFB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 110 64<36><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define AD7606_GPIOX_OS GPIOE
|
|||
|
#define AD7606_OS0 GPIO_PIN_6 //PE6
|
|||
|
#define AD7606_OS1 GPIO_PIN_5 //PE5
|
|||
|
#define AD7606_OS2 GPIO_PIN_4 //PE4
|
|||
|
|
|||
|
//GPIOE <20><><EFBFBD><EFBFBD>
|
|||
|
#define AD7606_GPIOX_BYTE_STBY GPIOE
|
|||
|
|
|||
|
//BYTE_SEL <20><><EFBFBD>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>нӿ<D0BD>ͨ<EFBFBD><CDA8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define AD7606_BYTE_SEL GPIO_PIN_3 //PE3
|
|||
|
|
|||
|
//STBY <20><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD>ƽ<EFBFBD>(<28><><EFBFBD><EFBFBD>RANGE<47><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define AD7606_STBY GPIO_PIN_2 //PE2
|
|||
|
|
|||
|
|
|||
|
//GPIOG <20><><EFBFBD><EFBFBD>
|
|||
|
#define AD7606_GPIOX_RST_RD_CS_BUSY_FRST GPIOG
|
|||
|
|
|||
|
//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define AD7606_RESET GPIO_PIN_14 //PG14
|
|||
|
|
|||
|
//RD\CS\BUSY <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define AD7606_RD GPIO_PIN_13 //PG13
|
|||
|
#define AD7606_CS GPIO_PIN_12 //PG12
|
|||
|
#define AD7606_BUSY GPIO_PIN_11 //PG11
|
|||
|
|
|||
|
//FRSTDATA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define AD7606_FRSTDATA GPIO_PIN_9 //PG9
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//CS <09>ߵ͵<DFB5>ƽ
|
|||
|
#define AD7606_CS_HIGH() HAL_GPIO_WritePin(AD7606_GPIOX_RST_RD_CS_BUSY_FRST, AD7606_CS,GPIO_PIN_SET)
|
|||
|
#define AD7606_CS_LOW() HAL_GPIO_WritePin(AD7606_GPIOX_RST_RD_CS_BUSY_FRST, AD7606_CS,GPIO_PIN_RESET);
|
|||
|
|
|||
|
//RESET <09>ߵ͵<DFB5>ƽ
|
|||
|
#define AD7606_RST_HIGH() HAL_GPIO_WritePin(AD7606_GPIOX_RST_RD_CS_BUSY_FRST, AD7606_RESET,GPIO_PIN_SET);
|
|||
|
#define AD7606_RST_LOW() HAL_GPIO_WritePin(AD7606_GPIOX_RST_RD_CS_BUSY_FRST, AD7606_RESET,GPIO_PIN_RESET);
|
|||
|
|
|||
|
//RD <09>ߵ͵<DFB5>ƽ
|
|||
|
#define AD7606_RD_HIGH() HAL_GPIO_WritePin(AD7606_GPIOX_RST_RD_CS_BUSY_FRST, AD7606_RD,GPIO_PIN_SET);
|
|||
|
#define AD7606_RD_LOW() HAL_GPIO_WritePin(AD7606_GPIOX_RST_RD_CS_BUSY_FRST, AD7606_RD,GPIO_PIN_RESET);
|
|||
|
|
|||
|
//RANGE ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD>뷶Χ<EBB7B6><CEA7><EFBFBD><EFBFBD>
|
|||
|
#define AD7606_RANGE_10V() HAL_GPIO_WritePin(AD7606_GPIOX_CONVST_RANGE, AD7606_RANGE,GPIO_PIN_SET);
|
|||
|
#define AD7606_RANGE_5V() HAL_GPIO_WritePin(AD7606_GPIOX_CONVST_RANGE, AD7606_RANGE,GPIO_PIN_RESET);
|
|||
|
|
|||
|
//BYTE_SEL ͨ<>ŷ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
|||
|
#define AD7606_SRL() HAL_GPIO_WritePin(AD7606_GPIOX_BYTE_STBY, AD7606_BYTE_SEL,GPIO_PIN_SET); //<2F><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
|
|||
|
#define AD7606_PRL() HAL_GPIO_WritePin(AD7606_GPIOX_BYTE_STBY, AD7606_BYTE_SEL,GPIO_PIN_RESET); //<2F><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
|
|||
|
|
|||
|
//STBY <09><><EFBFBD><EFBFBD>ģʽѡ<CABD><D1A1>
|
|||
|
#define AD7606_STBY_NORMAL() HAL_GPIO_WritePin(AD7606_GPIOX_BYTE_STBY, AD7606_STBY,GPIO_PIN_SET);
|
|||
|
#define AD7606_STBY_SLEEP() HAL_GPIO_WritePin(AD7606_GPIOX_BYTE_STBY, AD7606_STBY,GPIO_PIN_RESET);
|
|||
|
|
|||
|
//RANGE <09><><EFBFBD><EFBFBD>ģʽѡ<CABD><D1A1> <09><>STBY<42><59><EFBFBD><EFBFBD>sleepģʽʱ
|
|||
|
#define AD7606_RANGE_SB() HAL_GPIO_WritePin(AD7606_GPIOX_CONVST_RANGE, AD7606_RANGE,GPIO_PIN_SET); //<2F><><EFBFBD><EFBFBD> <09>ϵ<EFBFBD><CFB5><EFBFBD>100us<75><73><EFBFBD><EFBFBD>
|
|||
|
#define AD7606_RANGE_SD() HAL_GPIO_WritePin(AD7606_GPIOX_CONVST_RANGE, AD7606_RANGE,GPIO_PIN_RESET);//<2F>ض<EFBFBD> <09>ϵ<EFBFBD><CFB5><EFBFBD>13ms<6D><73><EFBFBD><EFBFBD>,<2C><><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>RESET
|
|||
|
|
|||
|
//CONVST
|
|||
|
#define AD7606_CONVST_HIGH() HAL_GPIO_WritePin(AD7606_GPIOX_CONVST_RANGE, AD7606_CONVST,GPIO_PIN_SET);
|
|||
|
#define AD7606_CONVST_LOW() HAL_GPIO_WritePin(AD7606_GPIOX_CONVST_RANGE, AD7606_CONVST,GPIO_PIN_RESET);
|
|||
|
|
|||
|
//OS <09><><EFBFBD><EFBFBD>
|
|||
|
#define AD7606_OS0_HIGH() HAL_GPIO_WritePin(AD7606_GPIOX_OS, AD7606_OS0,GPIO_PIN_SET);
|
|||
|
#define AD7606_OS0_LOW() HAL_GPIO_WritePin(AD7606_GPIOX_OS, AD7606_OS0,GPIO_PIN_RESET);
|
|||
|
|
|||
|
#define AD7606_OS1_HIGH() HAL_GPIO_WritePin(AD7606_GPIOX_OS, AD7606_OS1,GPIO_PIN_SET);
|
|||
|
#define AD7606_OS1_LOW() HAL_GPIO_WritePin(AD7606_GPIOX_OS, AD7606_OS1,GPIO_PIN_RESET);
|
|||
|
|
|||
|
#define AD7606_OS2_HIGH() HAL_GPIO_WritePin(AD7606_GPIOX_OS, AD7606_OS2,GPIO_PIN_SET);
|
|||
|
#define AD7606_OS2_LOW() HAL_GPIO_WritePin(AD7606_GPIOX_OS, AD7606_OS2,GPIO_PIN_RESET);
|
|||
|
|
|||
|
//<2F><>ȡ״̬
|
|||
|
#define AD7606_BUSY_STATE HAL_GPIO_ReadPin(AD7606_GPIOX_RST_RD_CS_BUSY_FRST,AD7606_BUSY)
|
|||
|
#define AD7606_FRST_STATE HAL_GPIO_ReadPin(AD7606_GPIOX_RST_RD_CS_BUSY_FRST,AD7606_FRSTDATA)
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
|
|||
|
#define AD7606_SEMPLE_200K 0
|
|||
|
#define AD7606_SEMPLE_100K 2
|
|||
|
#define AD7606_SEMPLE_50K 4
|
|||
|
#define AD7606_SEMPLE_25K 8
|
|||
|
#define AD7606_SEMPLE_12K5 16
|
|||
|
#define AD7606_SEMPLE_6K25 32
|
|||
|
#define AD7606_SEMPLE_3K125 64
|
|||
|
|
|||
|
extern uint8_t AD_Data_Arr[16448];
|
|||
|
extern uint8_t AD7606_Sampling_Flag;
|
|||
|
extern uint16_t AD_Arr_Num;
|
|||
|
extern uint16_t AD_Tim_Num;
|
|||
|
extern uint16_t AD7606_SFC;
|
|||
|
extern uint16_t AD7606_SONC;
|
|||
|
|
|||
|
void AD7606_Init(void);
|
|||
|
void AD7606_Config(void);
|
|||
|
void AD7606_Semples(u8 AD7606_Semp_Select);
|
|||
|
void AD7606_Data_Pro(uint8_t *Data);
|
|||
|
void AD7606_Reset(void);
|
|||
|
void AD7606_Start_Convst(void);
|
|||
|
void AD7606_End_Convst(void);
|
|||
|
|
|||
|
void AD7606_Read(uint8_t *Data);
|
|||
|
void Float_to_Byte(float data, uint8_t *arr);
|
|||
|
void Data_to_ADbuf(void);
|