找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3308|回复: 3
打印 上一主题 下一主题
收起左侧

stm32六路外部ADC读取 串口显示程序源码

[复制链接]
跳转到指定楼层
楼主
ID:378138 发表于 2018-7-23 19:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
stm32f103 六路外部ADC读取

单片机源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "adc.h"
  5. #include "sys.h"
  6. #include "usart.h"

  7. extern u8 Res;
  8. int main(void)
  9. {               
  10.         //u16 t;
  11.   u16 adcx1,adcx2,adcx3,adcx4,adcx5,adcx6;       //存放原始ADC值
  12.   float temp1,temp2,temp3,temp4,temp5,temp6;     //中间变量         
  13.         delay_init();                     //延时函数初始化          
  14.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
  15.         uart_init(115200);         //串口初始化为115200
  16.         LED_Init();                             //LED端口初始化
  17.         KEY_Init();                                         //按键初始化
  18.         Adc_Init();                                    //ADC初始化
  19.          
  20.         while(1)
  21.         {
  22.                 adcx1=Get_Adc_Average(ADC_Channel_1,10); //获取二氧化碳数值
  23.                 temp1=adcx1*(3.3/4096);
  24.                 printf("二氧化碳浓度:%f\n",temp1);
  25.                 adcx2=Get_Adc_Average(ADC_Channel_2,10);
  26.                 temp2=adcx2*(3.3/4096);
  27.                 printf("氢气浓度:%f\n",temp2);
  28.                 adcx3=Get_Adc_Average(ADC_Channel_3,10);
  29.                 temp3=adcx3*(3.3/4096);
  30.                 printf("有害气体浓度:%f\n",temp3);
  31.                 adcx4=Get_Adc_Average(ADC_Channel_4,10);
  32.                 temp4=adcx4*(3.3/4096);
  33.                 printf("酒精浓度:%f\n",temp4);
  34.                 adcx5=Get_Adc_Average(ADC_Channel_5,10);
  35.                 temp5=adcx5*(3.3/4096);
  36.                 printf("二氧化碳浓度:%f\n",temp5);
  37.                 adcx6=Get_Adc_Average(ADC_Channel_6,10);
  38.                 temp6=adcx6*(3.3/4096);
  39.                 printf("二氧化碳浓度:%f\n",temp6);

  40.                
  41.                 /*if(KEY0==0){
  42.                         delay_ms(1000);
  43.                         printf("11");
  44.                         }
  45.                         if(KEY1==0){
  46.                         delay_ms(1000);
  47.                         printf("22");
  48.                         }
  49.                         if(WK_UP==1){
  50.                         delay_ms(1000);
  51.                         printf("33");
  52.                         }
  53.                 if(USART_RX_STA&0x8000)
  54.                 {       
  55.                         t=Res;
  56.                         switch(t)
  57.                                 { case 'A':LED0=!LED0;break;
  58.                                         case 'B':LED1=!LED1;break;
  59.                                         case 'C':LED0=!LED0;LED1=!LED1;break;
  60.                        
  61.                        
  62.                         }
  63.                                
  64.                 }*/
  65.         }         
  66. }
复制代码

所有资料51hei提供下载:
实验17 ADC实验.rar (338.67 KB, 下载次数: 64)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:503053 发表于 2019-4-2 11:39 | 只看该作者
感谢分享
回复

使用道具 举报

板凳
ID:449566 发表于 2019-4-2 16:58 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

地板
ID:496117 发表于 2019-4-8 14:10 | 只看该作者
刚好遇到类似项目,急需,可惜黑币不够,下次再来!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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