电路图如下;
部分程序如下:
初始化:
RCC->APB2ENR|=1<<0; //开启辅助时钟
JTAG_Set(SWD_ENABLE); //开启SWD
RCC->APB2ENR|=1<<2; //PORTA时钟使能
GPIOA->CRL&=0XF00FFFFF;
GPIOA->CRL|=0X08300000;//PA5.6.7复用
GPIOA->ODR|=0X1<<5; //PA5.6.7推挽输出 pa6设置成输入模式,设置成低电平输出
GPIOA->ODR&=0X0<<6;
RCC->APB2ENR|=1<<3; //PORTB时钟使能
GPIOB->CRL&=0X0000FF00;
GPIOB->CRL|=0X33330083; //PB1上拉输入
GPIOB->ODR|=0XFF; //PB5.6.7上拉
SYNC=1;
delay_us(1);
SYNC=0;
delay_us(1);
SYNC=1;
delay_us(1);
PWDN1=1;
delay_us(1);
PWDN1=0;
delay_us(1);
PWDN1=1;
delay_us(1);
PWDN2=1;
delay_us(1);
PWDN2=0;
delay_us(1);
PWDN2=1;
delay_us(1);
PWDN3=1;
delay_us(1);
PWDN3=0;
delay_us(1);
PWDN3=1;
delay_us(1);
PWDN4=1;
delay_us(1);
PWDN4=0;
delay_us(1);
PWDN4=1;
delay_us(1);
读取程序:
Void AD_Read(void)
{
for(i=0;i<4;i++)
{
TempA=0;
AD_SCLK= 0;
delay_us(1);
for(k=0; k<24; k++)
{
TempA<<=1;
AD_SCLK= 1;
delay_us(1);
if(AD_OUT)
TempA|=0x00000001;
else
TempA&=0x00fffffe;
AD_SCLK=0;
delay_us(1);
}
Buffer
=TempA;
}
}
-
一周热门 更多>