标题: stm32单片机+AD7705输入捕获测电压实验,可精确到千分位,电子科技竞赛用的程序 [打印本页]

作者: 林之小苑风    时间: 2017-12-7 14:59
标题: stm32单片机+AD7705输入捕获测电压实验,可精确到千分位,电子科技竞赛用的程序
本程序需要用到AD7705.淘宝10元就可以连接在里面都有注释。mini32F103可用。其他版本只要用移植AD7705。c和。h就可以,高速测量。
单片机源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"
  5. #include "lcd.h"
  6. #include "adc.h"
  7. #include "ad7705.h"
  8. //ALIENTEK Mini STM32开发板范例代码15
  9. //ADC实验  

  10.            
  11. int main(void)
  12. {
  13.         u32 adcx;
  14.         float temp;
  15.         delay_init();                     //延时函数初始化         
  16.         uart_init(9600);                 //串口初始化为9600
  17.         //LED_Init();                                  //初始化与LED连接的硬件接口
  18.          LCD_Init();
  19.          Adc_Init();                                  //ADC初始化           
  20.     SPIx_Init();         
  21.         POINT_COLOR=RED;//设置字体为红色
  22.         LCD_ShowString(60,50,200,16,16,"Mini STM32");        
  23.         LCD_ShowString(60,70,200,16,16,"ADC TEST");        
  24.         LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");
  25.         LCD_ShowString(60,110,200,16,16,"2014/3/9");        
  26.         //显示提示信息
  27.         POINT_COLOR=BLUE;//设置字体为蓝色
  28.         LCD_ShowString(60,130,200,16,16,"ADC_CH1_VAL:");              
  29.         LCD_ShowString(60,150,200,16,16,"ADC_CH1_VOL:0.000000V");         
  30.     Init_AD7705(2);         
  31.         while(1)
  32.         {
  33.                 //adcx=Get_Adc_Average(ADC_Channel_1,10);
  34.                
  35.                
  36.                
  37.         adcx=GetData7705_CH2();
  38.                 LCD_ShowxNum(156,130,adcx,5,16,0);//显示ADC的值
  39.                 temp=(float)adcx*(5.0/65535);
  40.                 //temp=(float)adcx*(3.3589/65535)*3/2;
  41.                 adcx=temp;
  42.                 LCD_ShowxNum(156,150,adcx,1,16,0);//显示电压值
  43.                 temp-=adcx;
  44.                 temp*=1000000;
  45.                 LCD_ShowxNum(172,150,temp,6,16,0X80);
  46.                 LED0=!LED0;
  47.                 delay_ms(250);        
  48.         }                                                                                            
  49. }        
复制代码

所有资料51hei提供下载:
7705ADC实验.rar (7.6 MB, 下载次数: 393)



作者: 北极光2015    时间: 2018-4-2 17:32
多谢分享
作者: lgy199308    时间: 2018-7-19 19:35
假的.........
作者: 春阴酿寒    时间: 2019-2-16 02:12
大谢!                             
作者: shifeng88    时间: 2019-2-16 21:18
感谢楼主的分享!
作者: mingtaiyang    时间: 2019-5-25 10:48
已测试成功,注意7705的复位脚接高电平。谢谢楼主分享
作者: mingtaiyang    时间: 2019-5-25 10:55
已经测试过,可以正常使用,注意7705的复位脚接高电平,谢谢楼主分享
作者: zhuiqiuqust    时间: 2019-5-30 17:17
谢谢楼主分享
作者: aaaaaa。    时间: 2019-6-13 20:18
这和直接用mini的ADC采电压有何区别
作者: 15936895147    时间: 2019-7-17 09:29
aaaaaa。 发表于 2019-6-13 20:18
这和直接用mini的ADC采电压有何区别

精度不一样,这是16位的ADC
作者: cxk司马咯    时间: 2020-9-21 15:51
已经测试过,可以正常使用,注意7705的复位脚接高电平,谢谢楼主分享
作者: cxk司马咯    时间: 2021-8-24 10:47

已经测试过,可以正常使用,注意7705的复位脚接高电平,谢谢楼主分享
作者: LRT好帅好帅    时间: 2022-4-24 15:58
aaaaaa。 发表于 2019-6-13 20:18
这和直接用mini的ADC采电压有何区别

大哥,stm32f103c8t6与AD7705一起采集0-5V的电压如何做啊
作者: mick32    时间: 2022-4-25 02:36
Simulation working with Proteus 8.12 sp0 Win 10X64
Nice work Thanks..
作者: 卢OK    时间: 2023-4-25 22:00
能测交流信号吗
作者: ssp7812    时间: 2023-5-25 15:02
谢谢!刚好最近在搞ADC,下来试试
作者: Kendlle    时间: 2023-7-19 11:36
LRT好帅好帅 发表于 2022-4-24 15:58
大哥,stm32f103c8t6与AD7705一起采集0-5V的电压如何做啊

哥子,你这个做出来了吗,我想和你做一个一样的
作者: 大漠落日    时间: 2023-8-11 14:34
这么神,没有电源纹波干扰吗?
作者: jkluzi    时间: 2023-11-27 19:04
temp=(float)adcx*(5.0/65535);这样算算出来的是V;temp=(float)adcx*(5000/65535);算出来的是mv,那如果外加校准电压2.5V,不用自校准用哪个命令合适啊?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1