资源简介
STM32 驱动TCS34725
代码片段和文件信息
/*
* 文件:TCS34725.c
* 说明:TCS34725颜色传感器IIC数据读取程序
* 单片机:STM32F103
* --SCL PC10
* --SDA PC11
* 作者:BEN
* 日期:2017/07/24
* 变更记录:
* 2017/07/24 初版 Ben
*
*/
#include
#include “TCS34725.h“
#include “delay.h“
//TCS34725
#define Pt_TCS34725_SDA_rcc RCC_APB2Periph_GPIOC
#define Pt_TCS34725_SDA_gpio GPIOC
#define Pt_TCS34725_SDA_pin GPIO_Pin_11
#define Pt_TCS34725_SCL_rcc RCC_APB2Periph_GPIOC
#define Pt_TCS34725_SCL_gpio GPIOC
#define Pt_TCS34725_SCL_pin GPIO_Pin_10
#define SDA_TCS34725_IN {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=8<<12;} //SET IN
#define SDA_TCS34725_OUT {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=3<<12;} //SET OUT
#define Read_TCS34725_SDA GPIO_ReadInputDataBit(Pt_TCS34725_SDA_gpioPt_TCS34725_SDA_pin)//读取数据值
#define SDA_H GPIO_SetBits(Pt_TCS34725_SDA_gpioPt_TCS34725_SDA_pin) //置“1”
#define SDA_L GPIO_ResetBits(Pt_TCS34725_SDA_gpioPt_TCS34725_SDA_pin) //清“0”
#define SCL_H GPIO_SetBits(Pt_TCS34725_SCL_gpioPt_TCS34725_SCL_pin) //置“1”
#define SCL_L GPIO_ResetBits(Pt_TCS34725_SCL_gpioPt_TCS34725_SCL_pin) //清“0”
#define MAX(a b) (((a) > (b)) ? (a) : (b))
#define MIN(a b) (((a) < (b)) ? (a) : (b))
//参数定义
_TCS3472_HSL _TCS3472_HSL_DATA;
//函数声明
void Color_tcs34725_Init(void);
void TCS34725_Write_addr(u8 Address u8 dat);
u8 TCS34725_Read_addr(u8 Address);
void Capture_RGB(void);
void White_Banlance_Init(void);
void Printf_ColorRGB(void);
//内部函数
void I2CStart(void);
void I2Cask(void);
void I2CStop(void);
void I2CWrByte(u8 oneByte);
void IIC_MASTERACK (void);
void ToHSL(const float red const float green const float blue)
{
float fmax fmin;
fmax = MAX(MAX(red green) blue);
fmin = MIN(MIN(red green) blue);
_TCS3472_HSL_DATA.luminance = fmax;
if (fmax > 0)
_TCS3472_HSL_DATA.saturation = (fmax - fmin) / fmax;
else
_TCS3472_HSL_DATA.saturation = 0;
if (_TCS3472_HSL_DATA.saturation == 0)
_TCS3472_HSL_DATA.hue = 0;
else
{
if (fmax == red)
_TCS3472_HSL_DATA.hue = (green - blue) / (fmax - fmin);
else if (fmax == green)
_TCS3472_HSL_DATA.hue = 2 + (blue - red) / (fmax - fmin);
else
_TCS3472_HSL_DATA.hue = 4 + (red - green) / (fmax - fmin);
_TCS3472_HSL_DATA.hue = _TCS3472_HSL_DATA.hue / 6;
if (_TCS3472_HSL_DATA.hue < 0) _TCS3472_HSL_DATA.hue += 1;
}
}
/*************************************************
I2C控制函数
*************************************************/
//按键初始化函数
void Port_Init(void) //IO初始化
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(Pt_TCS34725_SDA_rcc|Pt_TCS34725_SCL_rccENABLE);//使能PORTAPORTE时钟
GPIO_InitStructure.GPIO_Pin = Pt_TCS34725_SDA_pin;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(Pt_TCS34725_SDA_gpio &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = Pt_TCS34725_SCL_pin;
GPIO_InitStr
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8154 2017-07-24 14:39 TCS34725\TCS34725.c
文件 2277 2017-07-24 14:38 TCS34725\TCS34725.h
文件 1886887 2017-07-19 15:09 TCS34725\TCS3472_Datasheet_EN_v2.pdf
目录 0 2017-07-24 14:39 TCS34725
----------- --------- ---------- ----- ----
1897318 4
- 上一篇:MSP430实验程序大全
- 下一篇:离散数学课件看了不挂科
相关资源
- STM32的CC1101手法程序
- stm32 产生的pwm的硬件电路
- 基于STM32的NRF多机通信三台STM32的源码
- STM32按键中断+串口回显
- 基于STM32和AD9850的波形发生器2012
- stm32f407VET6数据手册.pdf中文资料
- STM32 18B20完整程序
- STM32F103驱动ILI9341DS18B20RTCADCIRED
- STM32汉字系统菜单
- STM32F4 EMWIN开发手册_V3.1.pdf
- STM32F103RB最小系统原理图+PCB
- STM32 四通道4-20mA模拟量采集板485接口
- STM32F746串口收发
- STM32 RS232串口控制
- 基于stm32的单相逆变代码可调压调频
- 基于STM32C8t6实现的温度控制系统
- stm32GPIO模拟spi驱动NRF2401
- STM32程序。多串口。DMA方式。C代码
- STM32F407+LWIP+DP83848+多端口
- 基于stm32的lcd1602
- STM32F103C8舵机控制程序,原创支持12舵
- STM32驱动8位并口ILI9225G彩屏
- stm32f429+FATFS+SD卡项目模版
- STM32F746工程模板
- keil 4 stm32 液晶显示正弦波
- stm32f4 dcmi连接OV2640串口发送
- lcd STM32 SPI三线通信驱动
- STM32F1读取SBUS接收机数据
- 基于STM32F103的循迹避障智能小车.zip
- 模拟电磁曲射炮STM32代码.zip
评论
共有 条评论