u16 AD7923(u16 channel)
{
u8 i=0;
u16 return_ADC7923_vable=0;
GPIO_ResetBits(GPIOA,GPIO_Pin_4); // CS 设置为低电平
GPIO_SetBits(GPIOA,GPIO_Pin_5); // SCK 设置为高电平
delay_ms(2);
for(i=0;i<16;i++)
{
if(channel&0x8000)
{
GPIO_SetBits(GPIOA,GPIO_Pin_7); // 输给ADC的值
delay_us(2);
}
else
{
GPIO_ResetBits(GPIOA,GPIO_Pin_7);
delay_us(2);
}
channel=channel<<1;
GPIO_ResetBits(GPIOA,GPIO_Pin_5); // SCK 设置为低电平
delay_ms(2);
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6)) // 查询DOUT的值
{
return_ADC7923_vable|=0x0001;
}
return_ADC7923_vable<<=1;
GPIO_SetBits(GPIOA,GPIO_Pin_5); // SCK 设置为高电平
delay_ms(2);
}
GPIO_SetBits(GPIOA,GPIO_Pin_4); // CS 的电平拉高
return return_ADC7923_vable;
}
控制寄存器配置为 1100 0011 0011 电压范围是0~2.5V 通道是 0通道 输出为 2进制输出 电源管理为 正常PM1 PM0都为1 DONTC 为都这置位0
输出还算稳定 但是不是正确的 数据!!! |