資源簡介
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最小系統封裝庫
評論
共有 條評論