标题:
STM32 ADS7886源程序
[打印本页]
作者:
wangbowen0
时间:
2018-6-23 11:12
标题:
STM32 ADS7886源程序
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)
2018-6-23 11:11 上传
点击文件名下载附件
STM32ADS7886
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1