• 大小: 1.33MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-25
  • 语言: 其他
  • 标签: STM32  TCS34725  

资源简介

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


评论

共有 条评论