資源簡介
視屏演示:https://v.qq.com/x/page/v072414vtkl.html
代碼片段和文件信息
#include?“ds18b20.h“
#include?“delay.h“
?
//復位DS18B20
void?DS18B20_Rst(void) ???
{?????????????????
DS18B20_IO_OUT();? //SET?PG11?OUTPUT
????DS18B20_DQ_OUT=0;? //拉低DQ
????delay_us(750);???? //拉低750us
????DS18B20_DQ_OUT=1;? //DQ=1?
delay_us(15);????? //15US
}
//等待DS18B20的回應
//返回1:未檢測到DS18B20的存在
//返回0:存在
u8?DS18B20_Check(void)? ???
{???
u8?retry=0;
DS18B20_IO_IN(); //SET?PG11?INPUT ?
????while?(DS18B20_DQ_IN&&retry<200)
{
retry++;
delay_us(1);
}; ?
if(retry>=200)return?1;
else?retry=0;
????while?(!DS18B20_DQ_IN&&retry<240)
{
retry++;
delay_us(1);
};
if(retry>=240)return?1; ????
return?0;
}
//從DS18B20讀取一個位
//返回值:1/0
u8?DS18B20_Read_Bit(void)? ?
{
????u8?data;
DS18B20_IO_OUT(); //SET?PG11?OUTPUT
????DS18B20_DQ_OUT=0;?
delay_us(2);
????DS18B20_DQ_OUT=1;?
DS18B20_IO_IN(); //SET?PG11?INPUT
delay_us(12);
if(DS18B20_DQ_IN)data=1;
????else?data=0; ?
????delay_us(50);???????????
????return?data;
}
//從DS18B20讀取一個字節
//返回值:讀到的數據
u8?DS18B20_Read_Byte(void)?????
{????????
????u8?ijdat;
????dat=0;
for?(i=1;i<=8;i++)?
{
????????j=DS18B20_Read_Bit();
????????dat=(j<<7)|(dat>>1);
????} ????
????return?dat;
}
//寫一個字節到DS18B20
//dat:要寫入的字節
void?DS18B20_Write_Byte(u8?dat)?????
?{?????????????
????u8?j;
????u8?testb;
DS18B20_IO_OUT(); //SET?PG11?OUTPUT;
????for?(j=1;j<=8;j++)?
{
????????testb=dat&0x01;
????????dat=dat>>1;
????????if?(testb)?
????????{
????????????DS18B20_DQ_OUT=0; //?Write?1
????????????delay_us(2);????????????????????????????
????????????DS18B20_DQ_OUT=1;
????????????delay_us(60);?????????????
????????}
????????else?
????????{
????????????DS18B20_DQ_OUT=0; //?Write?0
????????????delay_us(60);?????????????
????????????DS18B20_DQ_OUT=1;
????????????delay_us(2);??????????????????????????
????????}
????}
}
//開始溫度轉換
void?DS18B20_Start(void)?
{??? ???????????????
????DS18B20_Rst(); ???
DS18B20_Check(); ?
????DS18B20_Write_Byte(0xcc); //?skip?rom
????DS18B20_Write_Byte(0x44); //?convert
}?
//初始化DS18B20的IO口?DQ?同時檢測DS的存在
//返回1:不存在
//返回0:存在???? ?
u8?DS18B20_Init(void)
{
? GPIO_InitTypeDef??GPIO_InitStructure;
?
? RCC_APB2PeriphClockCmd(GPIO_CLOCK?ENABLE); ?//使能PORTG口時鐘?
? GPIO_InitStructure.GPIO_Pin?=?GPIO_PIN; //PORTG.11?推挽輸出
? GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_Out_PP;? ??
? GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
? GPIO_Init(GPIO_WHAT?&GPIO_InitStructure);
? GPIO_SetBits(GPIO_WHATGPIO_PIN);????//輸出1
DS18B20_Rst();
return?DS18B20_Check();
}??
//從ds18b20得到溫度值
//精度:0.1C
//返回值:溫度值?(-550~1250)?
short?DS18B20_Get_Temp(void)
{
????u8?temp;
????u8?TLTH;
short?tem;
????DS18B20_Start?();?? //?ds1820?start?convert
????DS18B20_Rst();
????DS18B20_Check(); ?
????DS18B20_Write_Byte(0xcc); //?skip?rom
????DS18B20_Write_Byte(0xbe); //?convert ????
????TL=DS18B20_Read_Byte();? //?LSB???
????TH=DS18B20_Read_Byte();? //?MSB??
???? ??
????if(TH>7)
????{
????????TH
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????317353??2018-09-30?12:22??read_me.pdf
?????目錄???????????0??2018-09-30?10:44??源碼\
?????目錄???????????0??2018-09-30?10:44??源碼\DS18B20\
?????文件????????3410??2018-09-30?10:41??源碼\DS18B20\ds18b20.c
?????文件????????1592??2018-09-30?10:42??源碼\DS18B20\ds18b20.h
?????目錄???????????0??2018-09-30?10:44??源碼\STM32規范化PRINTF\
?????目錄???????????0??2018-09-30?10:44??源碼\STM32規范化PRINTF\CMSIS\
?????文件???????17273??2010-06-07?10:25??源碼\STM32規范化PRINTF\CMSIS\core_cm3.c
?????文件???????85714??2011-02-09?14:59??源碼\STM32規范化PRINTF\CMSIS\core_cm3.h
?????目錄???????????0??2018-09-30?10:44??源碼\STM32規范化PRINTF\CMSIS\startup\
?????目錄???????????0??2018-09-30?10:44??源碼\STM32規范化PRINTF\CMSIS\startup\TrueSTUDIO\
?????文件???????12604??2011-03-10?10:54??源碼\STM32規范化PRINTF\CMSIS\startup\TrueSTUDIO\startup_stm32f10x_cl.s
?????文件???????12592??2011-03-10?10:53??源碼\STM32規范化PRINTF\CMSIS\startup\TrueSTUDIO\startup_stm32f10x_hd.s
?????文件???????12239??2011-03-10?10:53??源碼\STM32規范化PRINTF\CMSIS\startup\TrueSTUDIO\startup_stm32f10x_hd_vl.s
?????文件????????9826??2011-03-10?10:53??源碼\STM32規范化PRINTF\CMSIS\startup\TrueSTUDIO\startup_stm32f10x_ld.s
?????文件???????10275??2011-03-10?10:53??源碼\STM32規范化PRINTF\CMSIS\startup\TrueSTUDIO\startup_stm32f10x_ld_vl.s
?????文件???????10275??2011-03-10?10:53??源碼\STM32規范化PRINTF\CMSIS\startup\TrueSTUDIO\startup_stm32f10x_md.s
?????文件???????10757??2011-03-10?10:53??源碼\STM32規范化PRINTF\CMSIS\startup\TrueSTUDIO\startup_stm32f10x_md_vl.s
?????文件???????13252??2011-03-10?10:53??源碼\STM32規范化PRINTF\CMSIS\startup\TrueSTUDIO\startup_stm32f10x_xl.s
?????目錄???????????0??2018-09-30?10:44??源碼\STM32規范化PRINTF\CMSIS\startup\arm\
?????文件???????15766??2011-03-10?10:52??源碼\STM32規范化PRINTF\CMSIS\startup\arm\startup_stm32f10x_cl.s
?????文件???????15503??2011-03-10?10:52??源碼\STM32規范化PRINTF\CMSIS\startup\arm\startup_stm32f10x_hd.s
?????文件???????15692??2011-03-10?10:52??源碼\STM32規范化PRINTF\CMSIS\startup\arm\startup_stm32f10x_hd_vl.s
?????文件???????12376??2011-03-10?10:52??源碼\STM32規范化PRINTF\CMSIS\startup\arm\startup_stm32f10x_ld.s
?????文件???????13656??2011-03-10?10:52??源碼\STM32規范化PRINTF\CMSIS\startup\arm\startup_stm32f10x_ld_vl.s
?????文件???????12765??2011-03-10?10:52??源碼\STM32規范化PRINTF\CMSIS\startup\arm\startup_stm32f10x_md.s
?????文件???????14073??2011-03-10?10:51??源碼\STM32規范化PRINTF\CMSIS\startup\arm\startup_stm32f10x_md_vl.s
?????文件???????15955??2011-03-10?10:51??源碼\STM32規范化PRINTF\CMSIS\startup\arm\startup_stm32f10x_xl.s
?????目錄???????????0??2018-09-30?10:44??源碼\STM32規范化PRINTF\CMSIS\startup\gcc_ride7\
?????文件???????13072??2011-03-10?10:52??源碼\STM32規范化PRINTF\CMSIS\startup\gcc_ride7\startup_stm32f10x_cl.s
?????文件???????13160??2011-03-10?10:52??源碼\STM32規范化PRINTF\CMSIS\startup\gcc_ride7\startup_stm32f10x_hd.s
............此處省略468個文件信息
- 上一篇:006_STM32程序移植之_SYN6288語音模塊
- 下一篇:html期末大作業
評論
共有 條評論