资源简介
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实验程序大全
- 下一篇:离散数学课件看了不挂科
相关资源
- STM32F103RC+ADC+DMA多通道采样LCD显示
- I2C读写AT24C02 基于STM32F103 cube116540
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- STM32F103 CC2500完整驱动(模拟SPI)
- AD7606采集程序
- stm32 用SPI 方式读写 SDHC
- stm32通过DMA方式采集ADC数据
- 意法半导体STM全系列微控制器STM32ST
- 基于STM32芯片的SX1278 驱动 LORA.rar
评论
共有 条评论