ADS7886的源程序,可直接用
单片机源程序如下:
- #include "ads7886.h"
- #include "delay.h"
- /*
- 函数功能:ADS7886驱动程序
- 制作人:王博文
- 版本 1.0
- ADS7886芯片介绍:
- 1、采用模拟SPI时序实现通信
- 2、信号前4位为0,无实际意义
- 3、芯片供电电压为2.35-5.25V
- 4、各引脚定义
- (1)VDD:电源引脚
- (2)GND:模拟地
- (3)VIN:信号输入端
- (4)SCLK:时钟输入端
- (5)SDO:串口信号输出端
- (6)CS:片选信号,下降沿触发
- */
- //端口初始化
- void ADS7886_Init(void)
- {
- RCC->APB2ENR|=1<<6; //使能GPIOE时钟
- GPIOE->CRL&=0XFFF000FF; //清空PE2,PE3,PE4端口之前的设置
- GPIOE->CRL|=0X00082200; //设置PE2,PE3端口为推挽输出
- //GPIOE->CRL|=0X00000000; //设置PE4端口为模拟输入
- GPIOE->ODR=8<<4; //设置模式为下拉
-
- }
- //ADS7886读电压程序
- u16 Adc_Read_Init()
- {
- u16 data;
- u8 i;
- CS=1; //片选信号拉高,准备发送信号
- SCLK=1; //时钟信号拉高
- // delay_us(1); //延时
- CS=0; //片选拉低,准备读数据
- for(i=0;i<16;i++) //时序最好对照datasheet来看
- {
-
- SCLK=1; //时钟拉高
- data<<=1; //移位
- delay_us(1);
- if(SDO==0) //判断数据线数据
- data&=0xfffe;
- if(SDO==1)
- data|=0x0001;
- SCLK=0; //时钟拉低
- delay_us(1); //延时
- }
-
- // for(i=0;i<15;i++) //时序最好对照datasheet来看
- // {
- // SCLK=0;
- // delay_us(1);
- // SCLK=1;
- // data<<=1; //移位
- // if(SDO==0) //判断数据线数据
- // data&=0xfffe;
- // if(SDO==1)
- // data|=0x0001;
- // delay_us(1); //延时
- // }
- SCLK=1; //结束,时钟拉高
- delay_us(5);
- CS=1; //片选拉高
- delay_us(1); //延时
- data&=0x0fff; //保证高四位为0
- return data;
- }
-
-
-
复制代码
所有资料51hei提供下载:
ADS7886.zip
(833.88 KB, 下载次数: 25)
|