找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8515|回复: 18
收起左侧

stm32单片机+AD7705输入捕获测电压实验,可精确到千分位,电子科技竞赛用的程序

  [复制链接]
ID:258575 发表于 2017-12-7 14:59 | 显示全部楼层 |阅读模式
本程序需要用到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, 下载次数: 385)
回复

使用道具 举报

ID:91378 发表于 2018-4-2 17:32 | 显示全部楼层
多谢分享
回复

使用道具 举报

ID:343904 发表于 2018-7-19 19:35 | 显示全部楼层
假的.........
回复

使用道具 举报

ID:418578 发表于 2019-2-16 02:12 | 显示全部楼层
大谢!                             
回复

使用道具 举报

ID:475541 发表于 2019-2-16 21:18 | 显示全部楼层
感谢楼主的分享!
回复

使用道具 举报

ID:286703 发表于 2019-5-25 10:48 | 显示全部楼层
已测试成功,注意7705的复位脚接高电平。谢谢楼主分享
回复

使用道具 举报

ID:286703 发表于 2019-5-25 10:55 | 显示全部楼层
已经测试过,可以正常使用,注意7705的复位脚接高电平,谢谢楼主分享
回复

使用道具 举报

ID:544391 发表于 2019-5-30 17:17 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

ID:511461 发表于 2019-6-13 20:18 | 显示全部楼层
这和直接用mini的ADC采电压有何区别
回复

使用道具 举报

ID:484359 发表于 2019-7-17 09:29 | 显示全部楼层
aaaaaa。 发表于 2019-6-13 20:18
这和直接用mini的ADC采电压有何区别

精度不一样,这是16位的ADC
回复

使用道具 举报

ID:821525 发表于 2020-9-21 15:51 | 显示全部楼层
已经测试过,可以正常使用,注意7705的复位脚接高电平,谢谢楼主分享
回复

使用道具 举报

ID:821525 发表于 2021-8-24 10:47 | 显示全部楼层

已经测试过,可以正常使用,注意7705的复位脚接高电平,谢谢楼主分享
回复

使用道具 举报

ID:1021208 发表于 2022-4-24 15:58 | 显示全部楼层
aaaaaa。 发表于 2019-6-13 20:18
这和直接用mini的ADC采电压有何区别

大哥,stm32f103c8t6与AD7705一起采集0-5V的电压如何做啊
回复

使用道具 举报

ID:228452 发表于 2022-4-25 02:36 | 显示全部楼层
Simulation working with Proteus 8.12 sp0 Win 10X64
Nice work Thanks..
回复

使用道具 举报

ID:827939 发表于 2023-4-25 22:00 | 显示全部楼层
能测交流信号吗
回复

使用道具 举报

ID:205887 发表于 2023-5-25 15:02 | 显示全部楼层
谢谢!刚好最近在搞ADC,下来试试
回复

使用道具 举报

ID:1088962 发表于 2023-7-19 11:36 | 显示全部楼层
LRT好帅好帅 发表于 2022-4-24 15:58
大哥,stm32f103c8t6与AD7705一起采集0-5V的电压如何做啊

哥子,你这个做出来了吗,我想和你做一个一样的
回复

使用道具 举报

ID:195496 发表于 2023-8-11 14:34 | 显示全部楼层
这么神,没有电源纹波干扰吗?
回复

使用道具 举报

ID:1088834 发表于 2023-11-27 19:04 | 显示全部楼层
temp=(float)adcx*(5.0/65535);这样算算出来的是V;temp=(float)adcx*(5000/65535);算出来的是mv,那如果外加校准电压2.5V,不用自校准用哪个命令合适啊?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表