资源简介
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个文件信息
- 上一篇:火狐httprequester文件
- 下一篇:AD常用STM32最小系统封装库
相关资源
- AD常用STM32最小系统封装库
- MAX44009驱动STM32F4源码
- STM32F407单片机OV7670无FIFO Ycrcb颜色空间
- 超声波和红外避障蓝牙小车完整文件
- zw_STM32定时器捕获PWM波以及占空比.z
- stm32f103c8t6增强版原理图
- zw_STMicroelectronicsSTM32F4.zip
- STM32-ADC多通道转换
- max44009 stm32
- 基于stm32f103频率测量.zip
- 基于stm32最小系统的串口通信
- STM32f103下的软IIC实现的BME280测温
- MAX44009-STM32F1
- STM32多路数据采集源代码
- STM32F103用IAR编译的工程模板
- STM32蓝牙模块测试代码
- stm32cubemxV4.16.0
- W25Qxx串口助手.zip
- stm32f103使用烟雾mq2,火焰,继电器
- stm32f407使用温湿度,光照,烟雾传感
- mpu9250_stm32驱动
- STM32的照相机程序,亲测可用
- STM32的蜂鸣器程序,亲测可用
- 使用stm32控制舵机
- STM32智能家居项目源代码.7z
- STM8和STM32F103原理图库AD
- 基于STM32的空气颗粒PM2.5与温湿度检测
- STM32最小系统 使用BMP180取得大气压值
- stm32 delay.h 延时文件
- mma8451 stm32代码.rar.rar
评论
共有 条评论