4537|4

1700

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

STM32+光敏传感器+串口接收光照强度源程序 制作成功 [复制链接]

 

用的是四针脚光敏传感器
不同型号的STM32 ADC通道的选择也不一样
我使用的是STM32F103RCT6单片机 选择了ADC2 通道6 对应的是PA6引脚。
希望对大家有帮助

 

 

 

 

下面是部分STM32单片机代码
主函数

#include "stm32f10x.h"  
#include "beep.h"
#include "delay.h"
#include "lcd.h"
#include "usart.h"
#include "adc.h"
#include "lsens.h"
#include "stdio.h"

int main(void)
{        
  u8 ADCX;
  u8 t=0,i;
        char LSEN[20];
  USART1_init();
        BEEP_Init();
        LCD_Init();
        Lsens_Init();
        LCD_BLK = 0;
        for(i=3;i>0;i--)
        {
          LCD_DrawFont_Num32(50,80,RED,YELLOW,i);
                delay_ms(1000);
        }
        LCD_Clear(GREEN);
        LCD_DrawFont_GBK16(25,0,BLUE,GREEN, "运行中...");
        LCD_DrawFont_GBK16(5,60,BLACK,GREEN, "光照:");
        LCD_DrawFont_GBK16(70,60,BLACK,GREEN, "CD");
        while(1)
        {
   if(t%10==0)
         {
                ADCX=Lsens_Get_Val();
                sprintf(LSEN,"%d",ADCX);        //将光敏电阻值转换为字符格式        
                printf("光强: %d CD\r\n ",ADCX);        
         }
         if(ADCX<40)             //报警阈值
         {
                 if(ADCX<40)
                 {
                   LCD_DrawFont_GBK16(50,60,RED,GREEN,LSEN);
                 }
           GPIO_SetBits(BEEP_PORT,BEEP_PIN);
                 delay_ms(10);
                 GPIO_ResetBits(BEEP_PORT,BEEP_PIN);
         }
         else
         {
                 LCD_DrawFont_GBK16(50,60,BLACK,GREEN,LSEN);
         }
   delay_ms(100);
         t++;
        }
}

串口
<blockquote>void USART1_init(void)

光敏传感器:

 

//初始化光敏传感器函数,即对GPIO,PA6初始化参数配置//
void Lsens_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,ENABLE);    //使能GPIOA时钟
//配置GPIOA参数,引脚6,模拟输入//
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;     
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;  
GPIO_Init(GPIOF, &GPIO_InitStructure);
Adc2_Init();
}
//读取Light Sens的值,范围0-100,0最暗;100最亮//
u8 Lsens_Get_Val(void)
{
u32 temp_val=0;
u8 t;
for(t=0;t<LSENS_READ_TIMES;t++)       //LSENS_READ_TIMES在lsens.h文件中设好,默认10//
{
  temp_val+=Get_Adc2(LSENS_ADC_CHX);   //读取ADC值,LSENS_ADC_CHX在lsens.h文件中设好,默认ADC_Channel_6,即0x06//
  delay_ms(5);
}
temp_val/=LSENS_READ_TIMES;           //计算平均值//
if(temp_val>4000)temp_val=4000;       //当计算后的值大于4000时,强制转换为4000//
return (u8)(100-(temp_val/40));       //将temp_val值归一化到0-100之间//
}

 

全部资料下载地址:

 

STM32 光敏传感器.7z (186.17 KB, 下载次数: 46)

此帖出自单片机论坛

最新回复

我最近在学单片机,买了个蓝牙模块折腾半天不会编程,还得学C语言,好难啊,通信说明的     详情 回复 发表于 2021-11-26 16:30
点赞 关注
 

回复
举报

114

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

光敏传感器上的芯片是什么

此帖出自单片机论坛

点评

比较器  详情 回复 发表于 2021-11-26 12:37
 
 

回复

181

帖子

1

TA的资源

一粒金砂(高级)

板凳
 
well_kim 发表于 2021-11-26 08:38 光敏传感器上的芯片是什么

比较器

此帖出自单片机论坛
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

4
 

讲解太全  给你点赞

此帖出自单片机论坛
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(中级)

5
 

我最近在学单片机,买了个蓝牙模块折腾半天不会编程,还得学C语言,好难啊,通信说明的

 

此帖出自单片机论坛
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
Keil C51中文资料.pdf

KeilC51中文资料.pdf

示波器V2.0装配调试(flt9006)VOL.4----模拟通道测试

-------------------------**************************--------------------------------一些相关内容请看示波器V2.0调试过程贴h ...

TI大学计划培训材料-高速信号链部分

本帖最后由 dontium 于 2015-1-23 11:31 编辑 TI大学计划培训材料-高速信号链部分

史上最全Atmel开发工具教程!不能错过的学习大全!

一款芯片,特别是MCU,不管性能再高,没有好的软件配合,一切都是瞎忙。{:1_85:} Atmel Studio6中有很多玄机(如软 ...

缩减运算符介绍

缩减运算符介绍

【基于NUCLEO-F746ZG电机开发应用】6.程序框架

从今天开始,正式进入程序的学习,ST的主要程序都开源了,先一步一步的把程序弄明白,在学习其他的。 1.软件工具 使用 ...

Beetle_ESP32-C3的Arduino例程学习

Beetle_ESP32-C3的Arduino例程学习 文档编号 TN_TR0003_ ...

ESP-USB-Bridge将ESP32-S2/S3开发板打造成JTAG调试器,配合OpenOCD调试STM32等芯片

在研究OpenOCD调试ESP32系列无线MCU的裸机编程以及xtensa LX6/LX7、RISCV的底层汇编时,发现openocd-esp32的安装文件夹下 ...

有没有方法从OLED显示中反推出使用的字体

在做一个项目,使用的是OLED屏,客户要求显示字体跟以前一样,但是客户又不知道字体是什么。 可以从样品看出显示内容,如图( ...

软开关技术和电路分类

根据软开关技术的原理可以分为如下四类: 1、全谐振型变换电路,按谐振类型可分为串联谐振变换电路和并联谐振变换电路,按照 ...

关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表