首页 > 其他分享 >STM32驱动AD7920

STM32驱动AD7920

时间:2023-02-26 22:11:12浏览次数:45  
标签:Pin STM32 100MHz InitStructure Mode GPIO 驱动 AD7920

 

 

 

#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;
		
} 

  

标签:Pin,STM32,100MHz,InitStructure,Mode,GPIO,驱动,AD7920
From: https://www.cnblogs.com/54programer/p/17157950.html

相关文章