找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7404|回复: 14
收起左侧

TCS34725颜色传感器 IIC通讯51单片机演示代码(STM32 Arduino demo)

  [复制链接]
ID:117454 发表于 2021-1-8 10:52 | 显示全部楼层 |阅读模式
买了一块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, 下载次数: 288)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:913974 发表于 2021-5-5 11:28 | 显示全部楼层
你设置的I2C是用那个io口
回复

使用道具 举报

ID:802449 发表于 2021-5-11 15:00 | 显示全部楼层
楼主,请问有完整的电路图和代码头文件吗
回复

使用道具 举报

ID:341120 发表于 2021-5-17 00:14 来自手机 | 显示全部楼层
为啥我用你的程序串口读不出来
回复

使用道具 举报

ID:341120 发表于 2021-5-17 00:43 来自手机 | 显示全部楼层
为啥出来我用串口文本确是乱码?
回复

使用道具 举报

ID:428114 发表于 2021-5-18 15:00 | 显示全部楼层
串口方式那就简单了
回复

使用道具 举报

ID:117454 发表于 2021-7-28 09:49 | 显示全部楼层
apple_01 发表于 2021-5-18 15:00
串口方式那就简单了

是使用串口的方式读取的
回复

使用道具 举报

ID:117454 发表于 2021-7-28 09:51 | 显示全部楼层
hjc110 发表于 2021-5-17 00:43
为啥出来我用串口文本确是乱码?

读取文本的方式正常是可以的
回复

使用道具 举报

ID:117454 发表于 2021-7-28 09:52 | 显示全部楼层
liuqiang180 发表于 2021-5-5 11:28
你设置的I2C是用那个io口

SCL=P1^1;
SDA=P1^0;
回复

使用道具 举报

ID:958100 发表于 2021-8-23 16:11 | 显示全部楼层
用什么显示的啊
回复

使用道具 举报

ID:117454 发表于 2021-8-27 09:14 | 显示全部楼层

串口助手可以读取到返回值
回复

使用道具 举报

ID:1084053 发表于 2023-6-14 15:18 | 显示全部楼层
main.c(420): error C67: 'Hsl': undefined identifier,楼主为什么会出现这个错误的
回复

使用道具 举报

ID:1089890 发表于 2023-8-9 10:19 | 显示全部楼层
周蓝海 发表于 2023-6-14 15:18
main.c(420): error C67: 'Hsl': undefined identifier,楼主为什么会出现这个错误的

.c和.h文件的stc12c5a60s2换成你的单片机头文件
回复

使用道具 举报

ID:482246 发表于 2023-8-20 17:02 | 显示全部楼层
一被测对象 多高?改变距离,RGB的数据 也变化 较大,
回复

使用道具 举报

ID:1093238 发表于 2023-9-11 23:03 | 显示全部楼层
我的搞不出来,不知道啥原因
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表