• 大小: 81KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2023-05-18
  • 语言: 其他
  • 标签: STM3  

资源简介

基于stm32F103的光敏传感器,本实验通过ADC3的通道6(PF8)读取光敏传感器(LS1)的电压值,并转换为0~100的光线强度值,显示在LCD 模块上面。光线越亮,值越大;光线越暗,值越小。大家可以用手指遮挡LS1和用手电筒照射LS1,来查看光强变化。

资源截图

代码片段和文件信息

#include “lcd.h“
#include “stdlib.h“
#include “font.h“ 
#include “usart.h“  
#include “delay.h“    
//////////////////////////////////////////////////////////////////////////////////  
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//ALIENTEK STM32F103开发板
//2.4寸/2.8寸/3.5寸/4.3寸/7寸 TFT液晶驱动   
//支持驱动IC型号包括:ILI9341/ILI9325/RM68042/RM68021/ILI9320/ILI9328/LGDP4531/LGDP4535/
//                  SPFD5408/1505/B505/C505/NT35310/NT35510/SSD1963等     
//正点原子@ALIENTEK
//技术论坛:www.openedv.com
//创建日期:2010/7/4
//版本:V3.0
//版权所有,盗版必究。
//Copyright(C) 广州市星翼电子科技有限公司 2014-2024
//All rights reserved
//********************************************************************************
//V1.2修改说明
//支持了SPFD5408的驱动另外把液晶ID直接打印成HEX格式.方便查看LCD驱动IC.
//V1.3
//加入了快速IO的支持
//修改了背光控制的极性(适用于V1.8及以后的开发板版本)
//对于1.8版本之前(不包括1.8)的液晶模块请修改LCD_Init函数的LCD_LED=1;为LCD_LED=1;
//V1.4
//修改了LCD_ShowChar函数,使用画点功能画字符。
//加入了横竖屏显示的支持
//V1.5 20110730
//1修改了B505液晶读颜色有误的bug.
//2修改了快速IO及横竖屏的设置方式.
//V1.6 20111116
//1加入对LGDP4535液晶的驱动支持
//V1.7 20120713
//1增加LCD_RD_DATA函数
//2增加对ILI9341的支持
//3增加ILI9325的独立驱动代码
//4增加LCD_Scan_Dir函数(慎重使用)   
//6另外修改了部分原来的函数以适应9341的操作
//V1.8 20120905
//1加入LCD重要参数设置结构体lcddev
//2加入LCD_Display_Dir函数支持在线横竖屏切换
//V1.9 20120911
//1新增RM68042驱动(ID:6804),但是6804不支持横屏显示!!原因:改变扫描方式,
//导致6804坐标设置失效,试过很多方法都不行,暂时无解。
//V2.0 20120924
//在不硬件复位的情况下ILI9341的ID读取会被误读成9300修改LCD_Init将无法识别
//的情况(读到ID为9300/非法ID)强制指定驱动IC为ILI9341,执行9341的初始化。
//V2.1 20120930
//修正ILI9325读颜色的bug。
//V2.2 20121007
//修正LCD_Scan_Dir的bug。
//V2.3 20130120
//新增6804支持横屏显示
//V2.4 20131120
//1新增NT35310(ID:5310)驱动器的支持
//2新增LCD_Set_Window函数用于设置窗口对快速填充比较有用但是该函数在横屏时不支持6804.
//V2.5 20140211
//1新增NT35510(ID:5510)驱动器的支持
//V2.6 20140504
//1新增ASCII 24*24字体的支持(更多字体用户可以自行添加)  
//2修改部分函数参数以支持MDK -O2优化
//3针对9341/35310/35510写时间设置为最快尽可能的提高速度
//4去掉了SSD1289的支持因为1289实在是太慢了读周期要1us...简直奇葩.不适合F4使用
//5修正68042及C505等IC的读颜色函数的bug.
//V2.7 20140710
//1修正LCD_Color_Fill函数的一个bug. 
//2修正LCD_Scan_Dir函数的一个bug.
//V2.8 20140721
//1解决MDK使用-O2优化时LCD_ReadPoint函数读点失效的问题.
//2修正LCD_Scan_Dir横屏时设置的扫描方式显示不全的bug.
//V2.9 20141130
//1新增对SSD1963 LCD的支持.
//2新增LCD_SSD_BackLightSet函数
//3取消ILI93XX的Rxx寄存器定义
//V3.0 20150423
//修改SSD1963 LCD屏的驱动参数.
//////////////////////////////////////////////////////////////////////////////////  

//LCD的画笔颜色和背景色    
u16 POINT_COLOR=0x0000; //画笔颜色
u16 BACK_COLOR=0xFFFF;  //背景色 
  
//管理LCD重要参数
//默认为竖屏
_lcd_dev lcddev;
 
//写寄存器函数
//regval:寄存器值
void LCD_WR_REG(u16 regval)
{   
LCD->LCD_REG=regval;//写入要写的寄存器序号  
}
//写LCD数据
//data:要写入的值
void LCD_WR_DATA(u16 data)
{  
LCD->LCD_RAM=data;  
}
//读LCD数据
//返回值:读到的值
u16 LCD_RD_DATA(void)
{
vu16 ram; //防止被优化
ram=LCD->LCD_RAM;
return ram;  
}    
//写寄存器
//LCD_Reg:寄存器地址
//LCD_RegValue:要写入的数据
void LCD_WriteReg(u16 LCD_Regu16 LCD_RegValue)
{
LCD->LCD_REG = LCD_Reg; //写入要写的寄存器序号  
LCD->LCD_RAM = LCD_RegValue;//写入数据       
}    
//读寄存器
//LCD_Reg:寄存器地址
//返回值:读到的数据
u16 

评论

共有 条评论