本章所要实现的功能是:通过 ADC3 通道 6 采集光敏传感器的 AD 值,并将该 值转换为光照强度值 0-100,0 对应最暗,100 对应最亮,并通过串口 1 输出光 照强度值,DS0 指示灯闪烁提示系统正常运行。程序框架如下: (1)初始化光敏传感器(初始化 ADC3_IN16) (2)编写光线强度读取函数 (3)编写主函数

lsens.h+lsens.c

#ifndef _lsens_H
#define _lsens_H#include "system.h"
void Lsens_Init();
u16 Get_ADC_lsens_Value(u8 ch);
u8 Get_Light_Strenth();
#endif 
#include "lsens.h"
#include "SysTick.h"void Lsens_Init()
{GPIO_InitTypeDef GPIO_InitStructure;ADC_InitTypeDef ADC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC3 , ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF , ENABLE);GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;GPIO_Init(GPIOF,&GPIO_InitStructure);ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;// ADC 单次转换disable或者连续转换选择enableADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;// ADC 数据寄存器对齐格式ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;// ADC 转换触发信号选择,未使用外部触发ADC_InitStructure.ADC_Mode=ADC_Mode_Independent ;// ADC 工作模式选择ADC_InitStructure.ADC_NbrOfChannel=1;// ADC 采集通道0x1-0x10ADC_InitStructure.ADC_ScanConvMode=DISABLE;; /* ADC 扫描enable(多通道)或者单次disable(单通道)模
式选择 */ADC_Init( ADC3, &ADC_InitStructure);ADC_Cmd( ADC3, ENABLE);ADC_ResetCalibration(ADC3);//复位校准while(ADC_GetResetCalibrationStatus(ADC3));//检测到复位校准状态完成之后退出循环ADC_StartCalibration(ADC3);//开始指定adc1的校准状态while(ADC_GetCalibrationStatus( ADC3));//原理同上ADC_SoftwareStartConvCmd(ADC3, ENABLE);//开启ad转换,软件触发模式}
u16 Get_ADC_lsens_Value(u8 ch)//得到ADC的值,ch通道值,times循环多次取平均值得次数
{ADC_RegularChannelConfig( ADC3, ch,1, ADC_SampleTime_239Cycles5 );//设置规则序列通道以及采样周期ADC_SoftwareStartConvCmd(ADC3, ENABLE);//因为选择的是单次转换//每采集一次就结束,采集关闭,所以要开启转换,从而多次开启取平均值while(ADC_GetFlagStatus(ADC3,ADC_FLAG_EOC)==0);//转换完成返回1return ADC_GetConversionValue(ADC3);;}
#define LSENS_READ_TIMES 10
u8 Get_Light_Strenth()//得到光照强度0-100;
{u8 t=0;u32 lsens_val=0;for(t=0;t<LSENS_READ_TIMES;t++){lsens_val+=Get_ADC_lsens_Value(ADC_Channel_6);delay_ms(5);}lsens_val/=LSENS_READ_TIMES;if(lsens_val>4000)lsens_val=4000;//限制ad值取整数然后容易得到光强return (u8)(100-(lsens_val/40));//0-100 从最暗到最亮,这里0-100并不是标准值,只不过是//设定了一个值而已}

mian.c

#include "stm32f10x.h"
#include "led.h"
#include "system.h"
#include "SysTick.h"
#include "beep.h"
#include "key.h"
#include "exti.h"
#include "time.h"
#include "pwm.h"
#include "usart.h"
#include "stdio.h"
#include "iwdg.h"
#include "wwdg.h"
#include "input.h"
#include "touch_key.h"
#include "wkup.h"
#include "adc.h"
#include "adc_temp.h"
#include "lsens.h"
int main()
{u8 i=0;u8 lsens_val=0;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置优先级分组SysTick_Init(72);LED_Init();USART1_Init(115200);//波特率115200Lsens_Init();while(1){i++;if(i%20==0)LED1=!LED1;delay_ms(10);if(i%100==0){lsens_val=Get_Light_Strenth();printf("光照强度: %d\r\n",lsens_val);}}}

STM32光敏传感器实验相关推荐

  1. STM32——光敏传感器实验-M4

    一.光敏传感器原理 1.光敏传感器简介 光敏传感器是最常见的传感器之一,它的种类繁多,主要有:光电管.光电倍增管.光敏电阻.光敏三极管.太阳能电池.红外线传感器.紫外线传感器.光纤式光电传感器.色彩传 ...

  2. (27)STM32——光敏传感器实验笔记

    目录 学习目标 运行结果 内容 介绍 配置 代码 总结 学习目标 我们这篇文章介绍的是有关光敏传感器的知识点,本节内容比较简单,主要的知识还是我们的ADC,而且我们在51单片机也介绍过相应的知识,感兴 ...

  3. stm32 adc输入电压范围_正点原子【STM32-F407探索者】第二十五章 光敏传感器实验...

    1)资料下载:点击资料即可下载 2)对正点原子Linux感兴趣的同学可以加群讨论:935446741 3)关注正点原子公众号,获取最新资料更新 本章我们将向大家介绍探索者 STM32F4 开发板自带的 ...

  4. 光敏传感器实验报告_光敏传感器实验论文-大物实验

    光敏传感器实验及探究 摘要: 光敏传感器是以光电器件作为转换元件的传感器.它可用于检测光量变化或直 接引起光量变化的非电量, 也可用于检测能转换成光量变化的其他非电量. 它首先把被测量 的变化转换成光 ...

  5. 内部温度传感器和光敏传感器实验

    内部温度传感器 STM32F407 有一个内部的温度传感器,可以用来测量 CPU 及周围的温度(TA).该温度传感器在内部和 ADC1_IN16输入通道相连接,此通道把传感器输出的电压转换成数字值. ...

  6. STM32学习笔记(六 定时器及应用 4 光敏传感器实验 )

    一.光敏传感器简介 光敏传感器是最常见的传感器之一,它的种类繁多,主要有:光电管.光电倍增管.光敏电阻.光敏三极管.太阳能电池.红外线传感器.紫外线传感器.光纤式光电传感器.色彩传感器.CCD 和 C ...

  7. 光敏传感器实验报告_光敏传感器光电特性测量实验分析报告.ppt

    思考题 1.光电效应有哪些分类? 光电效应可以分为外光电效应和内光电效应. 2.光敏电阻的物理基础是什么? 内光电效应. * * 光敏传感器的光电特性测量实验 实验简介 光敏传感器是将光信号转换为电信 ...

  8. STM32光敏传感器原理

    发现很多人都使用光敏电阻,但只是用了AD读取了电压值,或者算出了电阻值,就发送给上位机或者服务器,美其名曰获取了光照度,但其原理并...... 图中的 LS1 就是光敏传感器,其实就是一个光敏二极管, ...

  9. Arduin光敏传感器实验

    相关资料链接 链接:https://pan.baidu.com/s/1eE0rkaSJsKJMU_RUorS5OA 提取码:3ujh 1.1 项目介绍: 光敏传感器它对环境光线最敏感,S输出一个模拟信 ...

最新文章

  1. 提前“剧透”能提高自监督学习性能吗?华为诺亚实验室说:不一定!
  2. jni jvm 内存泄漏_内存泄漏
  3. 学而思的python课怎么样_有在用学而思网校的同学觉得孙墨漪老师怎么样?报她的课值得吗?...
  4. C#软件设计——小话设计模式原则之:接口隔离原则ISP
  5. 华为将推出智能显示屏产品:不同于传统电视机
  6. 计算机机房用发电机组,应急康明斯计算机机房用发电机组怎么选有窍门
  7. SpringBoot之idea调出Maven Project
  8. Javascript定时器的使用
  9. PDF背景怎么添加,如何修改PDF背景
  10. linux文件系统之mount流程分析
  11. android ios9 rom,安卓党也能用上IOS9了 奇兔刷机首发24款机型仿IOS9 ROM
  12. php支付宝接口开发流程,对接支付宝支付接口开发详细步骤(证书签名方式)
  13. 一个不错的控件网站-慧都控件网
  14. 【专精特新周报】大禹生物正式登陆北交所;奥迪威、泰德股份获北交所IPO批文;十一部门开展“携手行动” 促进大中小企业融通创新...
  15. 国内移动广告平台的现状对比(2010年8月-10月)
  16. 九宫格切图器(每天一个python小项目)
  17. iOS 蓝牙扫描枪扫描内容不正确
  18. PowerManagerService类大致解读
  19. 01- NumPy 数据库 (数据库)
  20. [数据库03]-约束(唯一性-主键-外键/存储引擎/事务/索引/视图/DBA命令/数据库设计三范式

热门文章

  1. 淘宝模板开发系列之开放接口详解
  2. 松下电器IT经理谈项目管理六点心得
  3. SAP UI5 应用开发教程之一百零三 - 如何在 SAP UI5 应用中消费第三方库试读版
  4. [C++]jsoncpp中将整个Json::Value转成std::string或者把里面值转成string类型
  5. 园林php源码,园艺和园林绿化HTML5模板
  6. emlog评论ajax,emlog评论:获取评论用户操作系统与浏览器信息
  7. ora-01722 无效数字_ORA-01722无效数字错误解决记录
  8. 简单实现获取短信验证码倒计时效果
  9. 使用html5-qrcode 扫描二维码(vue3)
  10. 中国刑事警察学院计算机中心,中国刑事警察学院计算机犯罪侦查系介绍