IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 基于stm32L0系列的AD7682驱动程序 -> 正文阅读

[嵌入式]基于stm32L0系列的AD7682驱动程序

基于stm32L0系列的AD7682驱动程序

//调用u16 AD7682(u8 adINx),即可切换通道,得到返回的ADC值。实测程序可用,ADC值为0-65535

//CFG_COM=[13:0]
#define CFG   1 //bit13 覆盖寄存器内容
#define INCC  6 //bit10-12
#define adIN0   0  //bit7-9
#define adIN1   1  //bit7-9
#define BW    1   //bit6
#define REF   1 //REF=4.096V bit3-5
#define SEQ   0  //禁用序列器 bit1-2
#define RB    1   //不回读当前配置内容 bit0

#define   ADC_CS_H    LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_15) 
#define   ADC_CS_L    LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_15) 
#define   ADC_SCK_H    LL_GPIO_SetOutputPin(GPIOB, LL_GPIO_PIN_3) 
#define   ADC_SCK_L    LL_GPIO_ResetOutputPin(GPIOB, LL_GPIO_PIN_3) 
#define   ADC_MOSI_H    LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_12) 
#define   ADC_MOSI_L    LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_12) 
#define   ADC_MISO_H    LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_11) 
#define   ADC_MISO_L    LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_11) 

void AD7682_GPIO_Init(void);
void AD7682_ADC16_Init2(void);
u16 AD7682(u8 adINx);


void AD7682_GPIO_Init(void)//STM32L0----SPI1
{
	LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
	
	LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA);//GPIOA的时钟使能
	LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOB);//GPIOB的时钟使能
	
	GPIO_InitStruct.Pin=LL_GPIO_PIN_11;	
	GPIO_InitStruct.Mode=LL_GPIO_MODE_INPUT;
	GPIO_InitStruct.Speed=LL_GPIO_SPEED_FREQ_VERY_HIGH;
	GPIO_InitStruct.Pull=LL_GPIO_PULL_UP;//设置PA11为上拉
	LL_GPIO_Init(GPIOA, &GPIO_InitStruct);//PA11初始化---MISO
	
	GPIO_InitStruct.Pin=LL_GPIO_PIN_12;	
	GPIO_InitStruct.Mode=LL_GPIO_MODE_OUTPUT;
	GPIO_InitStruct.Speed=LL_GPIO_SPEED_FREQ_VERY_HIGH;
	GPIO_InitStruct.OutputType=LL_GPIO_OUTPUT_PUSHPULL;
	GPIO_InitStruct.Pull=LL_GPIO_PULL_UP;//设置PA12为上拉
	LL_GPIO_Init(GPIOA, &GPIO_InitStruct);//PA12初始化---MOSI
	ADC_MOSI_L;//LL_GPIO_ResetOutputPin(GPIOA, PDADC_MOSI_Pin) 

	GPIO_InitStruct.Pin=LL_GPIO_PIN_15;	
	GPIO_InitStruct.Mode=LL_GPIO_MODE_OUTPUT;
	GPIO_InitStruct.Speed=LL_GPIO_SPEED_FREQ_HIGH;
	GPIO_InitStruct.OutputType=LL_GPIO_OUTPUT_PUSHPULL;
	GPIO_InitStruct.Pull=LL_GPIO_PULL_UP;//设置PA15为上拉
	LL_GPIO_Init(GPIOA, &GPIO_InitStruct);//PA15初始化---CNV---CS
	ADC_CS_L;	
	
	GPIO_InitStruct.Pin=LL_GPIO_PIN_3;	
	GPIO_InitStruct.Mode=LL_GPIO_MODE_OUTPUT;
	GPIO_InitStruct.Speed=LL_GPIO_SPEED_FREQ_VERY_HIGH;
	GPIO_InitStruct.OutputType=LL_GPIO_OUTPUT_PUSHPULL;
	GPIO_InitStruct.Pull=LL_GPIO_PULL_UP;//设置PB3为上拉
	LL_GPIO_Init(GPIOB, &GPIO_InitStruct);//PB3初始化---SCK
	ADC_SCK_L;//LL_GPIO_ResetOutputPin(GPIOB, PDADC_SCK_Pin)	
}

void AD7682_ADC16_Init2(void)
{
	AD7682_GPIO_Init();
	
	AD7682(adIN0);//EOC 测试通道:adIN0
	delay_ms(100);
	AD7682(adIN0);//EOC 测试通道:adIN0
}

u16 AD7682(u8 adINx)
{
  u16 CFG_COM=0;
  u16 data=0;
  CFG_COM = (CFG<<13)|(INCC<<10)|(adINx<<7)|(BW<<6)|(REF<<3)|(SEQ<<1)|RB;
  CFG_COM <<=2; 	
	ADC_SCK_L;
	ADC_CS_L;
	delay_us(6);
	ADC_CS_H;
	delay_us(6);
	ADC_CS_L;
	delay_us(1);
  for(u8 i=0; i<16; i++)
  {
    if(CFG_COM&0x8000)  ADC_MOSI_H;
    else           			           ADC_MOSI_L;	
				
		CFG_COM<<=1;
		ADC_SCK_H; 	
		data<<=1;
    if(LL_GPIO_IsInputPinSet(GPIOA, LL_GPIO_PIN_11)==1)  data|=1;//读取MISO脚的寄存器值		
		ADC_SCK_L;
  }
	delay_us(1);	
//	ADC_SCK_L;
  ADC_CS_H;
  delay_us(20);
  return data;
}
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-11-19 17:47:09  更:2021-11-19 17:48:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:43:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码