资源简介
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最小系统封装库
相关资源
- I2C读写AT24C02 基于STM32F103 cube116540
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- STM32F103 CC2500完整驱动(模拟SPI)
- AD7606采集程序
- stm32 用SPI 方式读写 SDHC
- stm32通过DMA方式采集ADC数据
- 意法半导体STM全系列微控制器STM32ST
- 基于STM32芯片的SX1278 驱动 LORA.rar
- STM32的PCB封装库,以及原理图库,48
评论
共有 条评论