找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1101|回复: 0
收起左侧

STC15单片机读取SHT3x传感器数据并在串口打印 源程序

[复制链接]
ID:759974 发表于 2023-9-10 16:49 | 显示全部楼层 |阅读模式
/*
STC15单片机
实验名称:读取STH3x温湿度传感器,并在UART串口打印数值
实验内容:
        UART串口9600波特率
        printf函数打印信息(putchar)
        #define FOSC 22118400L  //晶振频率 22.1184MHz

实验器材:
        STC15W408AS_DIP16 x1
        SHT3x温湿度传感器模块

SHT3x传感器:
  1. void SHT3X_Init()

  2. {

  3.         IIC_Start(); //发送起始信号

  4.         SHT3X_WriteByte(0x44<<1|0); //写设备地址

  5.         SHT3X_WriteCmd(0x2130); // meas. periodic 1 mps, high rep.

  6.         IIC_Stop(); //停止信号

  7. }
复制代码


打印信息:

[15:35:16.358]接收←>New Messages...
                    >SHT3x_ReadData...
                    >R_Buf 75 be 6d 81 9e 70

                    # SHT3x_Data_Read #
                    >T_R 30142 H_R 33182

                    # SHT3x_Data_Calc #
                    >T_C 0354 H_C 0506

                    # SHT3x_Crc_Chk #
                    >T CRC_R 6d H CRC_R 70
                    >T CRC_C 6d H CRC_C 70

[15:35:21.812]接收←>New Messages...
                    >SHT3x_ReadData...
                    >R_Buf 75 be 6d 81 df 7c

                    # SHT3x_Data_Read #
                    >T_R 30142 H_R 33247

                    # SHT3x_Data_Calc #
                    >T_C 0354 H_C 0507

                    # SHT3x_Crc_Chk #
                    >T CRC_R 6d H CRC_R 7c
                    >T CRC_C 6d H CRC_C 7c
*/

main.c :

  1. #include "config.h"
  2. #include "delay.h"
  3. #include "uart.h"
  4. #include "sht3x_iic.h"

  5. #define LED_ON        P12 = 0
  6. #define LED_OFF        P12 = 1

  7. bit timer_flag_5s        = 0;        //5s定时触发标志位
  8. uint8 delay_count        = 0;        //delay延迟计数器

  9. //主函数
  10. void main(void)
  11. {
  12.         //设置STC15W408AS单片机端口为标准模式
  13.         Config_Port();

  14.         //串口初始化,波特率9600
  15.         UART_Config(9600);

  16.         //初始化SHT30传感器
  17.         SHT3X_Init();

  18.         LED_OFF; //LED指示灯熄灭
  19.                         
  20.         // 事件处理循环
  21.         while(1)
  22.         {        
  23.         if (timer_flag_5s)  //每隔5s执行以下分支
  24.         {
  25.                         LED_ON; //LED指示灯点亮

  26.                         if(DEBUG_MODE) printf(">New Messages...\r\n");
  27.                         SHT3x_ReadData();
  28.                
  29.                         if(DEBUG_MODE) printf(">SHT3x_ReadData...\r\n");
  30.                         if(DEBUG_MODE) printf(">R_Buf %02bx %02bx %02bx %02bx %02bx %02bx\r\n",
  31.                         SHT3X_Read_Buf[0], SHT3X_Read_Buf[1], SHT3X_Read_Buf[2],
  32.                         SHT3X_Read_Buf[3], SHT3X_Read_Buf[4], SHT3X_Read_Buf[5]);                        

  33.                         if(DEBUG_MODE) printf("\r\n# SHT3x_Data_Read #\r\n");
  34.                         if(DEBUG_MODE) printf(">T_R %u H_R %u\r\n", p_SHT3X_Data->Read_T_Val, p_SHT3X_Data->Read_H_Val);

  35.                         if(DEBUG_MODE) printf("\r\n# SHT3x_Data_Calc #\r\n");
  36.                         if(DEBUG_MODE) printf(">T_C %04d H_C %04d\r\n", SHT3X_T_Val, SHT3X_H_Val);

  37.                         if(DEBUG_MODE) printf("\r\n# SHT3x_Crc_Chk #\r\n");
  38.                         if(DEBUG_MODE) printf(">T CRC_R %02bx H CRC_R %02bx\r\n", p_SHT3X_Data->Read_T_Crc, p_SHT3X_Data->Read_H_Crc);
  39.                         if(DEBUG_MODE) printf(">T CRC_C %02bx H CRC_C %02bx\r\n", SHT3X_CalcCrc((uint8 *)&(p_SHT3X_Data->Read_T_Val), 2), SHT3X_CalcCrc((uint8 *)&(p_SHT3X_Data->Read_H_Val), 2));

  40.                         LED_OFF; //LED指示灯熄灭

  41.             timer_flag_5s = 0;
  42.                 }

  43.                 //延时周期200ms
  44.                 delay_x_ms(200);

  45.                 //5s定时触发标志位
  46.                 if(25 == ++delay_count)
  47.                 {
  48.                         delay_count = 0;
  49.                         timer_flag_5s = 1;
  50.                 }
  51.         }
  52. }
复制代码

原理图: 无
仿真: 无
代码: UART_PRINTF_DELAY_SHT3x_STC15W408AS.zip (9.2 KB, 下载次数: 22)

评分

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

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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