ADS7886的源程序,可直接用
單片機源程序如下:
- #include "ads7886.h"
- #include "delay.h"
- /*
- 函數(shù)功能:ADS7886驅(qū)動程序
- 制作人:王博文
- 版本 1.0
- ADS7886芯片介紹:
- 1、采用模擬SPI時序?qū)崿F(xiàn)通信
- 2、信號前4位為0,無實際意義
- 3、芯片供電電壓為2.35-5.25V
- 4、各引腳定義
- (1)VDD:電源引腳
- (2)GND:模擬地
- (3)VIN:信號輸入端
- (4)SCLK:時鐘輸入端
- (5)SDO:串口信號輸出端
- (6)CS:片選信號,下降沿觸發(fā)
- */
- //端口初始化
- 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; //片選信號拉高,準備發(fā)送信號
- SCLK=1; //時鐘信號拉高
- // delay_us(1); //延時
- CS=0; //片選拉低,準備讀數(shù)據(jù)
- for(i=0;i<16;i++) //時序最好對照datasheet來看
- {
-
- SCLK=1; //時鐘拉高
- data<<=1; //移位
- delay_us(1);
- if(SDO==0) //判斷數(shù)據(jù)線數(shù)據(jù)
- 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) //判斷數(shù)據(jù)線數(shù)據(jù)
- // data&=0xfffe;
- // if(SDO==1)
- // data|=0x0001;
- // delay_us(1); //延時
- // }
- SCLK=1; //結(jié)束,時鐘拉高
- delay_us(5);
- CS=1; //片選拉高
- delay_us(1); //延時
- data&=0x0fff; //保證高四位為0
- return data;
- }
-
-
-
復制代碼
所有資料51hei提供下載:
ADS7886.zip
(833.88 KB, 下載次數(shù): 25)
2018-6-23 11:11 上傳
點擊文件名下載附件
STM32ADS7886
|