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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

ads129x的stm32代碼

[復制鏈接]
跳轉到指定樓層
樓主
2020電賽ads1292x模塊stm32代碼

main.c     
為工程的主程序文件夾

stm32f10x_conf.h
參數設置文件,起到應用和庫之間界面的作用
用戶使用前必須自己修改該文件
也可以修改外部晶振的參數
也可以是用該文件在編譯前使能Debug或者Release模式
由不同的define語句組成

stm32f10x_it.c
外設中斷函數文件
用戶可以加入自己的中斷程序代碼
對于指向同一個中斷向量的多個不同中斷請求,可以利用函數通過判斷外設的中斷標志位來確定準確的中斷源
庫函數提供了這些函數的名稱

stm3210x_it.h
該頭文件包含了所有中斷處理程序的原型。

單片機源程序如下:
  1. /*ADS1292R驅動程序*/
  2. #include"ADS1292R.H"

  3. /**初始化ADS1292R**/
  4. void ADS_Init(void)
  5. {
  6.         GPIO_InitTypeDef         GPIO_InitStructure;
  7.         SPI_InitTypeDef         SPI_InitStructure;
  8.         NVIC_InitTypeDef        NVIC_InitStructure;
  9.         EXTI_InitTypeDef         EXTI_InitStructure;
  10. /*ADS1292用到的IO口初始化*/
  11.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高輸出速率50MHz
  12.         GPIO_InitStructure.GPIO_Pin = ADS_PWDN;
  13.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽輸出
  14.         GPIO_Init(ADS_PWDN_G, &GPIO_InitStructure);
  15.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高輸出速率50MHz
  16.         GPIO_InitStructure.GPIO_Pin = ADS_GPIO2;
  17.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//復用推挽輸出
  18.         GPIO_Init(ADS_GPIO2_G, &GPIO_InitStructure);
  19.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高輸出速率50MHz
  20.         GPIO_InitStructure.GPIO_Pin = ADS_DRDY;
  21.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空輸入
  22.         GPIO_Init(ADS_DRDY_G, &GPIO_InitStructure);
  23.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高輸出速率50MHz
  24.         GPIO_InitStructure.GPIO_Pin = ADS_CS;
  25.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽輸出
  26.         GPIO_Init(ADS_CS_G, &GPIO_InitStructure);
  27.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高輸出速率50MHz
  28.         GPIO_InitStructure.GPIO_Pin = ADS_SCLK;
  29.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//復用推挽輸出
  30.         GPIO_Init(ADS_SCLK_G, &GPIO_InitStructure);
  31.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高輸出速率50MHz
  32.         GPIO_InitStructure.GPIO_Pin = ADS_DOUT;
  33.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空輸入
  34.         GPIO_Init(ADS_DOUT_G, &GPIO_InitStructure);
  35.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高輸出速率50MHz
  36.         GPIO_InitStructure.GPIO_Pin = ADS_DIN;
  37.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//復用推挽輸出
  38.         GPIO_Init(ADS_DIN_G, &GPIO_InitStructure);
  39.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高輸出速率50MHz
  40.         GPIO_InitStructure.GPIO_Pin = ADS_START;
  41.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽輸出
  42.         GPIO_Init(ADS_START_G, &GPIO_InitStructure);
  43.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高輸出速率50MHz
  44.         GPIO_InitStructure.GPIO_Pin = ADS_GPIO1;
  45.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//復用推挽輸出
  46.         GPIO_Init(ADS_GPIO1_G, &GPIO_InitStructure);
  47. /*SPI接口初始化*/
  48.         SPI_Cmd(SPI1,DISABLE);
  49.         SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; //雙線雙向全雙工
  50.         SPI_InitStructure.SPI_Mode = SPI_Mode_Master;//SPI主模式
  51.         SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;//8bit數據
  52.         SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;//CLK空閑時為高電平         
  53.         SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;//數據捕獲于第二個時鐘沿
  54.         SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;//片選用軟件控制
  55.         SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8;//SPI頻率
  56.         SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;//高位在前
  57.         SPI_InitStructure.SPI_CRCPolynomial = 7;//crc7,stm32spi帶硬件ecc
  58.         SPI_Init(SPI1, &SPI_InitStructure);
  59.         SPI_Cmd(SPI1,ENABLE);
  60. /*DRDY中斷接收初始化
  61.         NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn;//選擇中斷通道3
  62.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//搶占式中斷優先級設置為1
  63.         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;//響應式中斷優先級設置為1
  64.         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能中斷
  65.         NVIC_Init(&NVIC_InitStructure);       
  66.         EXTI_ClearITPendingBit(EXTI_Line3);//清除中斷標志
  67.         GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource3);//選擇管教
  68.         EXTI_InitStructure.EXTI_Line = EXTI_Line3; //選擇中斷線路3
  69.         EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //設置為中斷請求,非事件請求
  70.         EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //Falling設置中斷觸發方式為下降沿觸發
  71.         EXTI_InitStructure.EXTI_LineCmd = ENABLE;//外部中斷使能
  72.         EXTI_Init(&EXTI_InitStructure);*/

  73. }


  74. /**ADS1292R上電復位 **/
  75. void ADS_PowerOnInit(void)
  76. {        unsigned char sj[9];
  77.         ADS_START_H;
  78.         ADS_CS_H;
  79.         ADS_PWDN_L;//進入掉電模式
  80.         delay_ms(1000);
  81.         ADS_PWDN_H;//退出掉電模式
  82.         delay_ms(1000);//等待穩定
  83.         ADS_PWDN_L;//發出復位脈沖
  84.         delay_us(10);
  85.         ADS_PWDN_H;
  86.         delay_ms(1000);//等待穩定,可以開始使用ADS1292R
  87.         ADS_START_L;
  88.         ADS_CS_L;
  89.         ADS_SPI(SDATAC);//發送停止連續讀取數據命令
  90.         ADS_REG(WREG|CONFIG2,0XA0);        //使用內部參考電壓
  91.         delay_ms(10);//等待內部參考電壓穩定
  92.         ADS_REG(WREG|CONFIG1,0X02);        //設置轉換速率為500SPS
  93.         ADS_REG(WREG|CH1SET,0X01);        //設置通道1為短路
  94.            ADS_REG(WREG|CH2SET,0X01);        //設置通道2為短路

  95.         sj[1]=ADS_REG(RREG|CONFIG1,0X00);
  96.         sj[2]=ADS_REG(RREG|CH1SET,0X00);
  97.         sj[3]=ADS_REG(RREG|CH2SET,0X00);
  98.         printf("%X ",sj[1]);
  99.         printf("%X ",sj[2]);
  100.         printf("%X \n",sj[3]);

  101. /*        ADS_SPI(RDATAC);//回到連續讀取數據模式,檢測噪聲數據
  102.         ADS_START_H;//啟動轉換
  103.         while(GPIO_ReadInputDataBit(ADS_DRDY_G,ADS_DRDY)==SET);
  104.         ADS_Read(sj);
  105.         ADS_START_L;
  106.         ADS_SPI(SDATAC);
  107.         ADS_REG(WREG|CONFIG2,0XA0);
  108.         ADS_REG(WREG|CH1SET,0X80);
  109.         ADS_REG(WREG|CH2SET,0X00);
  110.         ADS_SPI(RDATAC);
  111.         ADS_START_H;  */
  112.        


  113.                         

  114. }

  115. /**對ADS1292R內部寄存器進行操作 **/
  116. unsigned char ADS_REG(unsigned char com,unsigned data)
  117. {
  118.         unsigned char i;
  119.         for(i=0;i<45;i++);
  120.         ADS_SPI(com);
  121.         for(i=0;i<45;i++);
  122.         ADS_SPI(0X00);
  123.         for(i=0;i<45;i++);
  124.         if((com&0x20)==0x20)//判斷是否為讀寄存器指令
  125.         {        ADS_SPI(0X00);
  126.                 for(i=0;i<45;i++);       
  127.         }
  128.         return (ADS_SPI(data));

  129. }

  130. /**通過SPI總線與ADS1292R通信**/
  131. unsigned char ADS_SPI(unsigned char com)
  132. {
  133.         while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);//檢測發送寄存器是否為空,上一個數據發送完成
  134.         SPI_I2S_SendData(SPI1, com);//發送數據      
  135.         while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);//檢測接收標志是否非空,發送完成  
  136.         return (SPI_I2S_ReceiveData(SPI1));        //返回接收到的數據
  137. }
  138. /*讀取72位的數據1100+LOFF_STAT[4:0]+GPIO[1:0]+13個0+2CHx24位,共9字節*/       
  139. void ADS_Read(unsigned char *data)
  140. {        unsigned char i;
  141.         for(i=0;i<9;i++)
  142.         {        *data=ADS_SPI(0X00);
  143.                 data++;               
  144.         }
  145. }
復制代碼

所有資料51hei提供下載:
ADS1292R.zip (10.91 KB, 下載次數: 34)

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

使用道具 舉報

板凳
ID:872102 發表于 2022-3-7 10:33 | 只看該作者
請問main.c文件直接運行嗎
回復

使用道具 舉報

沙發
ID:138247 發表于 2021-8-2 13:23 | 只看該作者

謝謝分享,正在學習這個芯片。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级在线观看 | 欧美午夜精品 | 国产精品一区二区久久精品爱微奶 | 中文字幕成人av | 午夜性视频 | 亚洲免费在线 | 成年人黄色一级片 | 亚洲精品视频一区二区三区 | 日韩精品成人一区二区三区视频 | 亚洲欧美综合精品久久成人 | 国产福利91精品一区二区三区 | 中文字幕一区在线观看视频 | 日本在线视频不卡 | 日韩一区二区三区视频在线播放 | 日韩精品一区二区三区在线播放 | 日韩欧美在线不卡 | 久久久久久免费精品一区二区三区 | 欧美成人精品 | 本地毛片 | 国产高清在线精品一区二区三区 | 亚洲欧美日韩电影 | 性色视频在线观看 | 国产日韩欧美一区二区 | 亚洲一区二区精品视频在线观看 | 日韩一级黄色片 | 国产成人久久精品一区二区三区 | 一区免费看 | 一级黄在线观看 | 日韩电影一区二区三区 | 国产日产久久高清欧美一区 | 国产又爽又黄的视频 | 久久逼逼 | 亚洲首页| 日本一区二区三区视频在线 | 欧美一区二区三区久久精品 | 日韩在线免费电影 | 久久一区精品 | 亚洲国产成人在线视频 | 又黄又色 | 国产精品一区久久久 | 99热最新网址 |