91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 8.44MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-10-05
  • 語言: 其他
  • 標簽: 單片機??傳感器??

資源簡介

使用CCS811與HDC1080傳感器獲取物理量,STM32進行算法運算,從而判斷空氣質量。此代碼提供例程供大家參考理解,并且可移植。

資源截圖

代碼片段和文件信息

#include?“IIC.h“
#include?“delay.h“
#include?“usart.h“
?void?I2C_GPIO_Config(void)
{
GPIO_InitTypeDef?GPIO_InitStructure;

/*?使能與?I2C有關的時鐘?*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB?ENABLE?);??

?/*?PC3-I2C_SCL、PC5-I2C_SDA*/
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_6|?GPIO_Pin_7;?
GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_10MHz;?
GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_Out_OD;?
GPIO_Init(GPIOB?&GPIO_InitStructure);?
SCL_H;
SDA_H;
}
void?delay_1us(u8?x)//粗略延時iic_40K
{
u8?i=20;
x=i*x;
while(x--);
}
////////IIC起始函數//////////
/*
IIC起始:當SCL處于高電平期間,SDA由高電平變成低電平出現一個下降沿,然后SCL拉低
*/
u8?I2C_Start(void)
{
SDA_H;?
delay_1us(5); //延時保證時鐘頻率低于40K,以便從機識別
SCL_H;
delay_1us(5);//延時保證時鐘頻率低于40K,以便從機識別
if(!SDA_read)?return?0;//SDA線為低電平則總線忙退出
SDA_L;???//SCL處于高電平的時候,SDA拉低
delay_1us(5);
??if(SDA_read)?return?0;//SDA線為高電平則總線出錯退出
SCL_L;
??delay_1us(5);
??return?1;
}
//**************************************
//IIC停止信號
/*
IIC停止:當SCL處于高電平期間,SDA由低電平變成高電平出現一個上升沿
*/
//**************************************
void?I2C_Stop(void)
{
????SDA_L;
SCL_L;
delay_1us(5);
SCL_H;
delay_1us(5);
SDA_H;//當SCL處于高電平期間,SDA由低電平變成高電平?????????????//延時
}
//**************************************
//IIC發送應答信號
//入口參數:ack?(0:ACK?1:NAK)
/*
應答:當從機接收到數據后,向主機發送一個低電平信號
先準備好SDA電平狀態,在SCL高電平時,主機采樣SDA
*/
//**************************************
void?I2C_SendACK(u8?i)
{
????if(1==i)
SDA_H; ?????????????//準備好SDA電平狀態,不應答
????else?
SDA_L;?? //準備好SDA電平狀態,應答?
??SCL_H;????????????????????//拉高時鐘線
????delay_1us(5);?????????????????//延時
????SCL_L?;??????????????????//拉低時鐘線
????delay_1us(5);????
}?
///////等待從機應答////////
/*
當本機(主機)發送了一個數據后,等待從機應答
先釋放SDA,讓從機使用,然后采集SDA狀態
*/
/////////////////
u8?I2C_WaitAck(void)? ?//返回為:=1有ACK=0無ACK
{
uint16_t?i=0;
SDA_H; ????????//釋放SDA
SCL_H;?????????//SCL拉高進行采樣
while(SDA_read)//等待SDA拉低
{
i++;??????//等待計數
if(i==500)//超時跳出循環
break;
}
if(SDA_read)//再次判斷SDA是否拉低
{
SCL_L;?
return?RESET;//從機應答失敗,返回0
}
??delay_1us(5);//延時保證時鐘頻率低于40K,
SCL_L;
delay_1us(5);?//延時保證時鐘頻率低于40K,
return?SET;//從機應答成功,返回1
}
//**************************************
//向IIC總線發送一個字節數據
/*
一個字節8bit當SCL低電平時,準備好SDA,SCL高電平時,從機采樣SDA
*/
//**************************************
void?I2C_SendByte(u8?dat)
{
??u8?i;
SCL_L;//SCL拉低,給SDA準備
??for?(i=0;?i<8;?i++)?????????//8位計數器
??{
if(dat&0x80)//SDA準備
SDA_H;??
else?
SDA_L;
????SCL_H;????????????????//拉高時鐘,給從機采樣
????delay_1us(5);????????//延時保持IIC時鐘頻率,也是給從機采樣有充足時間
????SCL_L;????????????????//拉低時鐘,給SDA準備
????delay_1us(5);? ??//延時保持IIC時鐘頻率
dat?<<=?1;??????????//移出數據的最高位??
??} ?
}
//**************************************
//從IIC總線接收一個字節數據
//**************************************
u8?I2C_RecvByte()
{
????u8?i;
????u8?dat?=?0;
????SDA_H;//釋放SDA,給從機使用
????delay_1us(1);?????????//延時給從機準備SDA時間????????????
????for?(i=0;?i<8;?i++)?????????//8位計數器
????{?
??dat?<<=?1;


?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-11-18?14:33??CJMCU_811\
?????文件?????1057116??2016-11-04?10:09??CJMCU_811\CC-000619-DS-7-CCS811?Datasheet(1).pdf
?????目錄???????????0??2016-11-04?18:03??CJMCU_811\CCS811開發資料\
?????目錄???????????0??2016-11-04?18:03??CJMCU_811\CCS811開發資料\CCS811開發資料\
?????文件?????1057116??2016-10-20?16:01??CJMCU_811\CCS811開發資料\CCS811開發資料\CC-000619-DS-7-CCS811?Datasheet.pdf
?????文件??????424183??2016-10-20?16:23??CJMCU_811\CCS811開發資料\CCS811開發資料\CC-000774-AN-2-Assembly?guidelines?for?CCS811.pdf
?????文件??????572616??2016-10-20?16:23??CJMCU_811\CCS811開發資料\CCS811開發資料\CC-000783-AN-1-Mechanical?Considerations?for?CCS811.pdf
?????文件??????921515??2016-10-20?16:23??CJMCU_811\CCS811開發資料\CCS811開發資料\CC-000803-AN-5-CCS811?Programming?and?Interfacing?Guide.pdf
?????文件??????655441??2016-10-20?16:24??CJMCU_811\CCS811開發資料\CCS811開發資料\CC-000840-AN-1-CCS811?Hand?Soldering?Method.pdf
?????文件??????667763??2016-10-20?16:24??CJMCU_811\CCS811開發資料\CCS811開發資料\CC-000921-AN-2-CCS811?Clean?Air?baseline?Save?and?Restore[6].pdf
?????文件??????468791??2016-10-20?16:23??CJMCU_811\CCS811開發資料\CCS811開發資料\CC-000922-AN-2-CCS811?-?Performing?a?Application?code?binary?file?download.pdf
?????目錄???????????0??2016-11-04?10:13??CJMCU_811\CJMCU\
?????目錄???????????0??2016-11-04?10:13??CJMCU_811\CJMCU\APP\
?????文件????????6081??2016-11-04?17:42??CJMCU_811\CJMCU\APP\IIC.c
?????文件?????????668??2016-11-04?17:30??CJMCU_811\CJMCU\APP\IIC.h
?????文件????????3732??2016-11-18?14:39??CJMCU_811\CJMCU\APP\main.c
?????文件????????3063??2016-09-20?12:39??CJMCU_811\CJMCU\APP\spi.c
?????文件?????????334??2014-09-18?14:26??CJMCU_811\CJMCU\APP\spi.h
?????文件??????633941??2011-03-10?10:51??CJMCU_811\CJMCU\APP\stm32f10x.h
?????文件????????3264??2016-09-22?15:52??CJMCU_811\CJMCU\APP\stm32f10x_conf.h
?????文件????????2418??2011-11-13?01:28??CJMCU_811\CJMCU\APP\stm32f10x_it.c
?????文件????????1983??2011-04-04?18:57??CJMCU_811\CJMCU\APP\stm32f10x_it.h
?????文件???????36577??2011-04-04?18:57??CJMCU_811\CJMCU\APP\system_stm32f10x.c
?????文件????????2085??2011-03-10?10:51??CJMCU_811\CJMCU\APP\system_stm32f10x.h
?????文件????????1712??2016-09-22?16:00??CJMCU_811\CJMCU\APP\wdg.c
?????文件?????????268??2016-09-22?15:51??CJMCU_811\CJMCU\APP\wdg.h
?????目錄???????????0??2016-11-04?10:13??CJMCU_811\CJMCU\CORE\
?????文件???????17273??2010-06-07?10:25??CJMCU_811\CJMCU\CORE\core_cm3.c
?????文件???????85714??2011-02-09?14:59??CJMCU_811\CJMCU\CORE\core_cm3.h
?????文件???????15503??2011-03-10?10:52??CJMCU_811\CJMCU\CORE\startup_stm32f10x_hd.s
?????目錄???????????0??2016-11-04?10:13??CJMCU_811\CJMCU\FIELIB\
............此處省略175個文件信息

評論

共有 條評論