久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4559|回復: 5
打印 上一主題 下一主題
收起左側

單片機+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 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:297557 發表于 2020-4-21 17:18 | 只看該作者
非常好,謝謝分享
回復

使用道具 舉報

板凳
ID:87499 發表于 2021-7-20 13:54 | 只看該作者
正在研究,希望有用
回復

使用道具 舉報

地板
ID:955625 發表于 2021-7-25 10:38 | 只看該作者
親測可用,只是模擬的spi不能完全利用芯片的采樣速率
回復

使用道具 舉報

5#
ID:1033476 發表于 2022-8-18 15:19 | 只看該作者

親測可用,好鐵
回復

使用道具 舉報

6#
ID:1075271 發表于 2024-6-21 10:29 | 只看該作者
請問有這個回讀的波形么
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产视频一区二区在线观看 | 国产一区二区 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | www.久久.com| 欧美在线a | 日韩一区二区在线看 | 国产区在线观看 | 九色 在线| 国产精品高潮呻吟久久av野狼 | 亚洲一区 中文字幕 | 天堂一区在线 | 亚洲国产成人在线 | 天天干天天爱天天爽 | 欧美日韩精品中文字幕 | 男女啪啪高潮无遮挡免费动态 | 尹人av| 国产99精品 | 国产福利91精品 | 国产高清免费视频 | 欧美精品在线一区 | 国产分类视频 | 久久成人18免费网站 | 在线视频成人 | h视频免费观看 | 国产在线一区二区 | 国产成人精品视频 | 国产免费一区 | 欧美大片一区 | 在线国产一区二区 | 久久精品无码一区二区三区 | 人人澡人人射 | 99视频在线免费观看 | 羞羞免费网站 | 国产精品久久欧美久久一区 | 成人三级视频在线观看 | 免费九九视频 | 中文字幕丁香5月 | 日韩精品一区二区三区在线观看 | 亚洲毛片一区二区 | 久久精品亚洲 | 成人亚洲在线 |