您好,
我一直在尝试从 ADS7924读取这些值,但每次从任何通道的数据寄存器读取数据时,我都会得到数字数据11111111。
下面是实施的代码片段。
您能不能帮助我解决这个问题。我是否遗漏了任何东西?
---------------------------------------------------- 代码-------------------------------------------------------
extern void I2CSend_adc (uint16 slave_addr_adc、uint16 num_for_args_adc、...);
extern uint8 I2CReceive_ADC (uint16 slave_addr_ADC、uint16 reg_ADC);
#define ADC_ADD 0x48
#define ADC_MODE 0x00
#define ADC_INT_CNTRL 0x01
#define ADC_DATA0_U 0x02
#define ADC_DATA0_L 0x03
#define ADC_Data1_U 0x04
#define ADC_Data1_L 0x05
#define ADC_DATA2_U 0x06
#define ADC_DATA2_L 0x07
#define ADC_DATA3_U 0x08
#define ADC_DATA3_L 0x09
#define ADC_ULR0 0x0A
#define ADC_LLR0 0x0B
#define ADC_ULR1 0x0C
#define ADC_LLR1 0x0D
#define ADC_ULR2 0x0E
#define ADC_LLR2 0x0F
#define ADC_ULR3 0x10
#define ADC_LLR3 0x11
#define ADC_INT_CONFIG 0x12
#define ADC_RESET 0x16
uint8 data_upper、data_lower、data1_upper、data1_lower、data_interupt、power_config、data2_lower、data2_upper、dev_id;
uint32 data_pd_VMON、data_aux_VMON、VeQ_53V_aux、data_53V_aux_VMON;
uint32 VeQ_PD、VeQ_aux;
uint32 volte_pd、volte_aux;
void k_adc ()
{
I2CSEND_ADC (ADC_ADD、1、ADC_MODE、0x80);
I2CSEND_ADC (ADC_ADD、1、ADC_MODE、0XCC);
DATA_UPPER = I2CReceive_ADC (ADC_ADD、ADC_DATA0_U);
KK_printf ("\n PD VMON 的高字节数据为%d \n"data_upper);
DATA_LOWER = I2CReceive_ADC (ADC_ADD、ADC_DATA0_L);
KK_printf ("\n PD VMON 的低字节数据为%d \n"、DATA_LOWER);
DATA_PD_VMON =(((DATA_UPON<<8|DATA_LOW)>>4);
KK_printf ("\n PD VMON 的数字数据为%d \n "、DATA_PD_VMON);
VeQ_PD =(DATA_PD_VMON*3300)/4096UL;
KK_printf ("\n PD 的电压=%d.%d \n"、VeQ_PD/1000、(VeQ_PD-(VeQ_PD/1000)*1000);
}
---------------------------------------------------------------------- 结束------------------------------------