欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4757|回復: 7
收起左側

單片機+ADS8685驅動程序

  [復制鏈接]
ID:659046 發表于 2019-12-8 19:48 | 顯示全部樓層 |閱讀模式
ADS8685驅動,添加到工程即可使用,親測無誤!

單片機源程序如下:
  1. #include "ads8685.h"
  2. #include "delay.h"

  3. void Ads8685_RESET(void)
  4. {
  5.         ADS8685_RST=0;
  6.         delay_ms(30);
  7.         ADS8685_RST=1;
  8.         delay_ms(30);
  9. }

  10. void Ads8685_WriteData(u8 data)
  11. {
  12.         u8 index=0;
  13.         ADS8685_SCLK =0;
  14.         delay_us(2);       
  15.         for(index=0;index<8;index++)
  16.         {
  17.                 if(data&0x80)
  18.                 {
  19.                         ADS8685_SDI=1;
  20.                 }
  21.                 else
  22.                 {
  23.                         ADS8685_SDI=0;
  24.                 }
  25.                 ADS8685_SCLK =1;
  26.                 delay_us(2);
  27.                 ADS8685_SCLK =0;
  28.                 delay_us(2);
  29.                 data=data<<1;
  30.         }
  31.         ADS8685_SCLK =0;
  32.         delay_us(2);
  33. }

  34. void Ads8685_WriteReg(u8 reg,u16 data)
  35. {
  36.         u16 retry=0;
  37.         ADS8685_CS=0;
  38.         while(ADS8685_RVS)//此引腳為低電平才可以操作ADS8685
  39.         {
  40.                 retry++;
  41.                 if(retry>=0xfffe)
  42.                 {
  43.                         break;
  44.                 }
  45.         }
  46.         Ads8685_WriteData(0xd0);//input command ,datesheet P43
  47.         Ads8685_WriteData(reg);
  48.         Ads8685_WriteData(data>>8);//寫高8位
  49.         Ads8685_WriteData((u8)(data&0xff));//寫低8位
  50.         ADS8685_CS=1;
  51. }

  52. void Ads8685_Init(void)
  53. {

  54.         GPIO_InitTypeDef  GPIO_InitStructure;
  55.        
  56.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);         //使能PB,PE端口時鐘
  57.        
  58.         GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
  59.        
  60.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
  61.        
  62.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;                                 //LED0-->PB.5 端口配置
  63.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //推挽輸出
  64.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //IO口速度為50MHz
  65.         GPIO_Init(GPIOB, &GPIO_InitStructure);                                         //根據設定參數初始化GPIOB.5
  66.        
  67.        
  68.        
  69.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;                                 //LED0-->PB.5 端口配置
  70.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;                  //上拉輸入
  71.         GPIO_Init(GPIOB, &GPIO_InitStructure);
  72.        
  73.         ADS8685_SCLK=0;
  74.         ADS8685_RST=0;
  75.         Ads8685_RESET();
  76.         Ads8685_WriteReg(0x14,0x000b);//使用內部參考電壓源并且設置輸入電壓范圍為0~5.12V    1.5*Vref  內部參考電壓4.096V
  77. }

  78. u16 Ads8685_Readdata(void)
  79. {
  80.         u16 retry=0;
  81.         u8 index=0;
  82.         u32 read_data=0;
  83.         delay_us(10);
  84.        
  85.         ADS8685_CS=1;
  86.         retry=0;
  87.         while(!ADS8685_RVS)
  88.         {
  89.                 retry++;
  90.                 if(retry>=0xfffe)
  91.                 {
  92.                         break;
  93.                 }
  94.         }
  95.        
  96.         ADS8685_CS=0;
  97.         retry=0;
  98.         while(ADS8685_RVS)
  99.         {
  100.                 retry++;
  101.                 if(retry>=0xfffe)
  102.                 {
  103.                         break;
  104.                 }
  105.         }
  106.        
  107.         for(index=0;index<32;index++)
  108.         {
  109.                 delay_us(2);
  110.                 ADS8685_SCLK=1;
  111.                 delay_us(2);   //時間大于15ns即可
  112.                
  113.                 read_data = read_data << 1;
  114.                 if(ADS8685_SDO_0)  //串行通信  數據輸出0 讀SD0_0,如果有數據1,則加到read_data末尾
  115.                 {
  116.                         read_data=read_data+1;
  117.                 }
  118.                 ADS8685_SCLK=0;
  119.                 delay_us(1);
  120.         }
  121.         delay_us(2);
  122.         ADS8685_CS=1;
  123.        
  124.         return (read_data>>16);
  125. }
復制代碼

所有資料51hei提供下載:
ads8685驅動.zip (1.64 KB, 下載次數: 78)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:297557 發表于 2020-4-21 17:18 | 顯示全部樓層
非常好,謝謝分享
回復

使用道具 舉報

無效樓層,該帖已經被刪除
無效樓層,該帖已經被刪除
ID:87499 發表于 2021-7-20 13:54 | 顯示全部樓層
正在研究,希望有用
回復

使用道具 舉報

ID:955625 發表于 2021-7-25 10:38 | 顯示全部樓層
親測可用,只是模擬的spi不能完全利用芯片的采樣速率
回復

使用道具 舉報

ID:1033476 發表于 2022-8-18 15:19 | 顯示全部樓層

親測可用,好鐵
回復

使用道具 舉報

8#
無效樓層,該帖已經被刪除
9#
無效樓層,該帖已經被刪除
ID:1075271 發表于 2024-6-21 10:29 | 顯示全部樓層
請問有這個回讀的波形么
回復

使用道具 舉報

ID:239784 發表于 2025-5-9 19:33 | 顯示全部樓層
不錯,剛好要用這個
回復

使用道具 舉報

ID:239784 發表于 2025-5-9 19:34 | 顯示全部樓層
下載來看看如何
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表