实验器材:
战舰STM32F103开发板V3版本
实验目的:
学习光敏传感器的使用,并进一步熟悉STM32内部ADC的使用
硬件资源:
1,DS0(连接在PB5)
2,串口1(波特率:115200,PA9/PA10连接在板载USB转串口芯片CH340上面)
3,ALIENTEK 2.8/3.5/4.3/7寸TFTLCD模块(通过FSMC驱动,FSMC_NE4接LCD片选/A10接RS)
4,ADC(STM32内部ADC3,通道6,即:ADC3_CH6,连接在PF8上面)
5,光敏传感器(连接在PF8).
实验现象:
本实验通过ADC3的通道6(PF8)读取光敏传感器(LS1)的电压值,并转换为0~100的光线强度值,显示在LCD
模块上面。光线越亮,值越大;光线越暗,值越小。大家可以用手指遮挡LS1和用手电筒照射LS1,来查看光
强变化。
注意事项:
1,4.3寸和7寸屏需要比较大电流,USB供电可能不足,请用外部电源适配器(推荐外接12V 1A电源).
2,本例程在LCD_Init函数里面(在ILI93xx.c),用到了printf,如果不初始化串口1,将导致液晶无法显示!!
3,ADC的参考电压默认通过P5连接在VDDA上面(3.3V),所以默认参考电压是3.3V
单片机源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "lcd.h"
- #include "usart.h"
- #include "adc.h"
- #include "lsens.h"
-
- /************************************************
- 光敏传感器 实验
- ************************************************/
-
- int main(void)
- {
- u8 adcx;
- delay_init(); //延时函数初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
- uart_init(115200); //串口初始化为115200
- LED_Init(); //初始化与LED连接的硬件接口
- LCD_Init(); //初始化LCD
- Lsens_Init(); //初始化光敏传感器
- POINT_COLOR=RED;//设置字体为红色
- //显示提示信息
- LCD_ShowString(30,50,200,16,16,"WarShip STM32");
- LCD_ShowString(30,70,200,16,16,"LSENS TEST");
- LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
- LCD_ShowString(30,110,200,16,16,"2015/1/14");
- POINT_COLOR=BLUE;//设置字体为蓝色
- LCD_ShowString(30,130,200,16,16,"LSENS_VAL:");
- while(1)
- {
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
实验19 光敏传感器实验.rar
(352.29 KB, 下载次数: 398)
|