• 大小: 65KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: 其他
  • 标签: SHT30  STM32  

资源简介

MCU是ST的STM32F103单片机,传感器是SHT3X(SHT30和SHT31以及SHT35传感器的操作大同小异)。此程序已经调好了。

资源截图

代码片段和文件信息

#include “I2C.h“
/*
/********************************/
/*
函数区
*/
 etError SHT3X_WriteAlertLimitData(ft humidity ft temperature);
 etError SHT3X_ReadAlertLimitData(ft* humidity ft* temperature);
 etError SHT3X_StartWriteAccess(void);
 etError SHT3X_StartReadAccess(void);
 void SHT3X_StopAccess(void);
 etError SHT3X_WriteCommand(etCommands command);
 etError SHT3X_Read2BytesAndCrc(u16t* data etI2cAck finaleAckNack
                                      u8t timeout);
 etError SHT3X_Write2BytesAndCrc(u16t data);
 u8t SHT3X_CalcCrc(u8t data[] u8t nbrOfBytes);
 etError SHT3X_CheckCrc(u8t data[] u8t nbrOfBytes u8t checksum);
 ft SHT3X_CalcTemperature(u16t rawValue);
 ft SHT3X_CalcHumidity(u16t rawValue);
 u16t SHT3X_CalcRawTemperature(ft temperature);
 u16t SHT3X_CalcRawHumidity(ft humidity);
/********************************/

/***************************/
/*
数据区:
*/
static char _i2cAddress; // I2C Address
/*-- Defines ------------------------------------------------------------------
 Generator polynomial for CRC
*/
#define POLYNOMIAL  0x131 // P(x) = x^8 + x^5 + x^4 + 1 = 100110001
/***************************/
/*
函数功能:实现us级延时
*/
void DelayMicroSeconds(int n)
{
    CCR0 = n;
    TACTL |= MC_1;           //增计数到CCR0
    while(!(TACTL & BIT0));   //等待
    TACTL &= ~MC_1;          //停止计数
    TACTL &= ~BIT0;          //清除中断标志
}

/*
 函数功能:写地址
*/
void SHT3X_SetI2cAdr(char i2cAddress)
{
  _i2cAddress = i2cAddress;
}
/*
函数功能:设置SDA和SCL为输出
函数返回值:无
函数参数:无
*/

void Iic_Out_Config(void)
{
  SCL_OUT;
  SDA_OUT;
  DelayMicroSeconds(2);
}

/*
函数功能:设置SCL为输出SDA为输入
函数返回值:无
函数参数:无
*/
void Iic_Int_Config(void)
{
  SCL_OUT;
  SDA_IN;
  DelayMicroSeconds(2);
}
/*
函数功能:IIC开始信号
函数返回值:无
函数参数:无
*/

void I2c_StartCondition(void)
{
  Iic_Out_Config();
  SDAHigh;
  DelayMicroSeconds(1);
  SCLHigh;                   //初始状态
  DelayMicroSeconds(1);
  SDALow;
  DelayMicroSeconds(4);
  SCLLow;
  DelayMicroSeconds(4);
}

/*
函数功能:IIC停止信号
函数返回值:无
函数参数:无
*/
void I2c_StopCondition(void)
{
  Iic_Out_Config();
  SCLLow;
  DelayMicroSeconds(1);
  SDALow;
  DelayMicroSeconds(1);
  SCLHigh;
  DelayMicroSeconds(4); // set-up time stop condition (t_SU;STO)
  SDAHigh;
  DelayMicroSeconds(4);
}
/*
函数描述:停止信号
*/
static void SHT3X_StopAccess(void)
{
  // write a stop condition
  I2c_StopCondition();
}
/*
函数功能:等待应答信号
*/

char I2c_wait_ACK()
{
char ucErrTime=0;
SDA_IN;
SDAHigh;
DelayMicroSeconds(5);
SCLHigh;
DelayMicroSeconds(2);
while(SDA_LEVEL)/*SDA输入高电平*/
{
ucErrTime++;


if(ucErrTime>254)//μè′y
{
I2c_StopCondition();
return 1;
}

}
SCLLow;
return 0;
}
/*
函数功能:应答信号
*/

void send_ACK()
{
SCLLow;
SDA_OUT;
SDALow;
DelayMicroSeconds(10);
SCLHigh;
DelayMicroSeconds(10);
SCLLow;
}
/*
函数功能:非应答信号
*/
void Send_NACK()
{
SCLLow;
SDA_OUT;
SDAHigh;
DelayMicroSeconds(5);
SCLHigh;
DelayMicroSeconds(

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-11-27 10:16  SHT3X\
     目录           0  2019-11-24 15:35  SHT3X\Debug\
     目录           0  2019-11-25 15:54  SHT3X\Debug\Exe\
     文件       46840  2019-11-27 10:12  SHT3X\Debug\Exe\SHT3Xtest.d43
     目录           0  2019-11-27 10:23  SHT3X\Debug\List\
     目录           0  2019-11-27 10:16  SHT3X\Debug\Obj\
     文件         452  2019-11-27 09:21  SHT3X\Debug\Obj\I2C.pbi
     文件       51329  2019-11-25 14:37  SHT3X\Debug\Obj\I2C.r43
     文件         307  2019-11-27 10:16  SHT3X\Debug\Obj\SHT3Xtest.pbd
     文件         454  2019-11-27 09:28  SHT3X\Debug\Obj\main.pbi
     文件       11724  2019-11-27 09:28  SHT3X\Debug\Obj\main.r43
     文件         456  2019-11-27 10:12  SHT3X\Debug\Obj\sht30.pbi
     文件       28409  2019-11-27 10:12  SHT3X\Debug\Obj\sht30.r43
     文件         456  2019-11-27 10:16  SHT3X\Debug\Obj\usart.pbi
     文件       18030  2019-11-25 14:37  SHT3X\I2C.c
     文件       17174  2019-11-25 14:37  SHT3X\I2C.h
     文件        4812  2019-11-27 10:16  SHT3X\SHT3Xtest.dep
     文件       20123  2019-11-25 13:56  SHT3X\SHT3Xtest.ewd
     文件       50384  2019-11-25 17:49  SHT3X\SHT3Xtest.ewp
     文件         163  2019-11-24 15:35  SHT3X\SHT3Xtest.eww
     文件        1488  2019-11-27 09:20  SHT3X\main.c
     文件         440  2019-11-25 17:57  SHT3X\main.h
     文件           0  2019-11-27 10:12  SHT3X\path.txt
     目录           0  2019-11-24 15:51  SHT3X\settings\
     文件        1299  2019-11-27 10:16  SHT3X\settings\SHT3Xtest.cspy.bat
     文件        4840  2019-11-27 09:19  SHT3X\settings\SHT3Xtest.dbgdt
     文件        1241  2019-11-27 10:16  SHT3X\settings\SHT3Xtest.dni
     文件        4217  2019-11-27 10:16  SHT3X\settings\SHT3Xtest.wsdt
     文件        4188  2019-11-27 10:12  SHT3X\sht30.c
     文件        1249  2019-11-27 09:28  SHT3X\sht30.h
     文件        2394  2019-11-27 10:16  SHT3X\usart.c
............此处省略1个文件信息

评论

共有 条评论