![]()
#ifndef __AD7920_H
#define __AD7920_H
#include "sys.h"
//使用4线串行接口时使用
#define AD7920_SCLK PAout(6)
#define AD7920_SDIN PCin(3)
#define AD7920_CS PAout(4)
//OLED控制用函数
u16 AD7920_RD_Halfword(void);
void AD7920_Init(void);
#endif
void AD7920_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;//上拉
GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化
AD7920_CS = 1;
AD7920_SCLK = 1;
}
u16 AD7920_RD_Halfword()
{
u16 dat = 0 ;
u16 i;
AD7920_CS = 1;
AD7920_SCLK = 1;
delay_us(10);
AD7920_CS = 0;
delay_us(10);
for(i=0;i<15;i++)
{
dat = dat <<1;
AD7920_SCLK = 0;
delay_us(20);
AD7920_SCLK = 1;
dat = dat + AD7920_SDIN;
delay_us(20);
}
AD7920_CS = 1;
return dat;
}