标题: TCS34725颜色传感器 IIC通讯51单片机演示代码(STM32 Arduino demo) [打印本页]

作者: hodel    时间: 2021-1-8 10:52
标题: TCS34725颜色传感器 IIC通讯51单片机演示代码(STM32 Arduino demo)
买了一块TCS34725的颜色传感器回来,只有STM32和ARDUINO的演示代码,让自己感到了尴尬。一直再用STC12C5A60S2的单片机,所以将τ 宝客服给的代码改了下,经过调试 可以直接使用串口读取RGB和HSL值。希望帮助到大家

单片机源程序如下:
  1. #include <stc12c5a60s2.h>
  2. #include <stdio.h>
  3. #include "iic.h"

  4. #define uint unsigned int

  5. COLOR_RGBC rgb;
  6. COLOR_HSL  hsl;

  7. void init()                                    //中断
  8. {  

  9.     TMOD=0x20;    //定时器工作方式,选择了定时器1,工作方式2 八位初值自动重装的8位定时器。         
  10.      TH1=0xfd;     //定时器1初值  ,设置波特率为9600 晶振11.0529MHZ?  
  11.      TL1=0xfd;  
  12.      TR1=1;        //开启定时器1  
  13.    
  14.      SM0=0;  
  15.      SM1=1;        //10位异步接收,(8位数据)波特率可变  
  16.      REN=1;        //允许串行口接收位  
  17.      /*EA=1;         //允许中断(总闸)  
  18.      ES=1;         //允许串口中断 */        
  19. }

  20. void delay_ms(uint time)
  21. {
  22.         uint i,j;
  23.         for(i = 0;i < time;i ++)
  24.                 for(j = 0;j < 930;j ++);
  25. }       

  26. void main()
  27. {       
  28.         init();
  29.         TCS34725_Init();
  30.         if(TCS34725_Init() == 1)
  31.         {                                TI=1;  
  32.                                         printf("Initial OK!\r\n");
  33.                                         while(!TI);
  34.                                         TI=0;
  35.         }
  36.         while(1)
  37.         {
  38.                                        
  39.                                 TCS34725_GetRawData(&rgb);  
  40.                                 RGBtoHSL(&rgb,&hsl);
  41.                                 TI=1;
  42.                                 printf("R=%d G=%d B=%d C=%d\r\n",rgb.r,rgb.g,rgb.b,rgb.c);
  43.                                 printf("H=%d S=%d L=%d\r\n",hsl.h,hsl.s,hsl.l);
  44.                                         while(!TI);
  45.                                         TI=0;
  46.                                 delay_ms(3000);
  47.         }
  48. }
复制代码

所有资料51hei提供下载:
TCS34725 _C51DEMO程序、.rar (64.04 KB, 下载次数: 296)
Tcs3472x_DEMO.7z (400.37 KB, 下载次数: 190)



作者: liuqiang180    时间: 2021-5-5 11:28
你设置的I2C是用那个io口
作者: hahhaff    时间: 2021-5-11 15:00
楼主,请问有完整的电路图和代码头文件吗
作者: hjc110    时间: 2021-5-17 00:14
为啥我用你的程序串口读不出来
作者: hjc110    时间: 2021-5-17 00:43
为啥出来我用串口文本确是乱码?
作者: apple_01    时间: 2021-5-18 15:00
串口方式那就简单了
作者: hodel    时间: 2021-7-28 09:49
apple_01 发表于 2021-5-18 15:00
串口方式那就简单了

是使用串口的方式读取的
作者: hodel    时间: 2021-7-28 09:51
hjc110 发表于 2021-5-17 00:43
为啥出来我用串口文本确是乱码?

读取文本的方式正常是可以的
作者: hodel    时间: 2021-7-28 09:52
liuqiang180 发表于 2021-5-5 11:28
你设置的I2C是用那个io口

SCL=P1^1;
SDA=P1^0;
作者: 11112223354    时间: 2021-8-23 16:11
用什么显示的啊
作者: hodel    时间: 2021-8-27 09:14
11112223354 发表于 2021-8-23 16:11
用什么显示的啊

串口助手可以读取到返回值
作者: 周蓝海    时间: 2023-6-14 15:18
main.c(420): error C67: 'Hsl': undefined identifier,楼主为什么会出现这个错误的

作者: 12efs    时间: 2023-8-9 10:19
周蓝海 发表于 2023-6-14 15:18
main.c(420): error C67: 'Hsl': undefined identifier,楼主为什么会出现这个错误的

.c和.h文件的stc12c5a60s2换成你的单片机头文件
作者: iloveyou51    时间: 2023-8-20 17:02
一被测对象 多高?改变距离,RGB的数据 也变化 较大,
作者: xcjldtp    时间: 2023-9-11 23:03
我的搞不出来,不知道啥原因




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1