資源簡介
DS18b20與Stm32f103c8t8的接線
DQ-----PB9
VCC----3.3v
GND----GND
主程序
int main(void)
{
char buf[10];
unsigned int temper;
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(115200); //初始化串口,波特率為115200
LED_GPIO_Configuration(); //初始化LED燈
USART_SendStr(USART1,"溫度測量:");
while (1)
{
temper = DS18B20_Read_Temp();
sprintf(buf,"%d.%d",temper/10,temper);
USART_SendStr(USART1,"當(dāng)前溫度為:");
USART_SendStr(USART1,buf);
USART_SendStr(USART1," C\n");
LEDToggle(1000); //指示燈閃爍,每1s打印一次溫度
}
}

代碼片段和文件信息
#include?“Ds18b20.h“?
?
?//DS18b20的DQ端口接在PB9處
?
void?DS18B20_IO_OutPut(void)
??{
??/*定義一個GPIO_InitTypeDef類型的結(jié)構(gòu)體*/
??GPIO_InitTypeDef?GPIO_InitStructure; ??
??/*開啟GPIOC的外設(shè)時鐘*/
??RCC_APB2PeriphClockCmd(?RCC_APB2Periph_GPIOB?ENABLE);????//RCC_APB2Periph_GPIOB使能PB端口
??????/*選擇要控制的GPIOC引腳*/ ???
?? GPIO_InitStructure.GPIO_Pin?=GPIO_Pin_9;???????
??/*設(shè)置引腳模式為通用開漏輸出*/
????GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_Out_OD;???
?? /*設(shè)置引腳速率為50MHz?*/???
????GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;?
??/*調(diào)用庫函數(shù),初始化DS18B20_GPIO_PORT*/
?? GPIO_Init(GPIOB?&GPIO_InitStructure);?????
??}
?void?DS18B20_IO_InPut(void)
??{
??GPIO_InitTypeDef?GPIO_InitStructure;
??RCC_APB2PeriphClockCmd(?RCC_APB2Periph_GPIOB?ENABLE);????//RCC_APB2Periph_GPIOB使能PB端口 ???
????GPIO_InitStructure.GPIO_Pin?=GPIO_Pin_9;????????
?? GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_IN_FLOATING;??
????GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;?
????GPIO_Init(GPIOB?&GPIO_InitStructure);?????
??}
//*************************************************************************?
// DS18B20初始化
//*************************************************************************
?void?Init18B20(void)
?{
?DS18B20_IO_OutPut();
?GPIO_ResetBits(DS18B20_GPIO_PORTDS18B20_GPIO_PIN);//DQ_CLR;置低電平
???delay_us(500);
?GPIO_SetBits(DS18B20_GPIO_PORTDS18B20_GPIO_PIN);//DQ_SET;置高電平
?delay_us(120);
?DS18B20_IO_InPut();
?while(GPIO_ReadInputDataBit(DS18B20_GPIO_PORT?DS18B20_GPIO_PIN?));???????/*等待數(shù)據(jù)線變?yōu)楦唠娖?/
?delay_us(1);
?while(GPIO_ReadInputDataBit(DS18B20_GPIO_PORT?DS18B20_GPIO_PIN?));
?DS18B20_IO_OutPut();
?}
//*************************************************************************?
// 向18B20寫一個字節(jié)函數(shù)
//*************************************************************************??
?
/*DS18B20字節(jié)寫入函數(shù)*/
void?DS18B20_Write_Byte(unsigned?char?value)?
{
??unsigned?char?i;
DS18B20_IO_OutPut();
??for?(i?=?0;?i<8;?i++)?
??{
???????????????????????????????//?DQ_OUT;S設(shè)置為輸出
????GPIO_ResetBits(DS18B20_GPIO_PORTDS18B20_GPIO_PIN);//DQ_CLR;置低電平
????delay_us(10) ; ???????????????????
????if?(value?&?0x01)?
????{
??????GPIO_SetBits(DS18B20_GPIO_PORTDS18B20_GPIO_PIN);//DQ_SET;置高電平
????}
else
{
GPIO_ResetBits(DS18B20_GPIO_PORTDS18B20_GPIO_PIN);//?DQ_CLR;置低電平
}
????delay_us(40); ??//延時40uS
????GPIO_SetBits(DS18B20_GPIO_PORTDS18B20_GPIO_PIN); //DQ_SET置高電平 ??????????//位結(jié)束
delay_us(1);
????value?>>=?1;
??}
GPIO_SetBits(DS18B20_GPIO_PORTDS18B20_GPIO_PIN);//DQ_SET;置高電平
}//*************************************************************************?
// DS18B20讀一個字節(jié)函數(shù)
//*************************************************************************?
???
unsigned?char?DS18B20_Read_Byte(void)?
{
??unsigned?char?i;
??unsigned?char?value?=?0;
??for?(i?=?0;?i<8;?i++)?
??{
????value?=value>>1;
????DS18B20_IO_OutPut();???????????????????????????????//?DQ_OUT;
????GPIO_ResetBits(DS18B20_GPIO_PORT
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-01-07?15:55??STM32F103C8T6-DS18B20\
?????文件??????403655??2016-09-09?13:55??STM32F103C8T6-DS18B20\DS18B20中文全套資料.pdf
?????目錄???????????0??2019-01-07?15:17??STM32F103C8T6-DS18B20\Hardware_Driver\
?????目錄???????????0??2019-01-07?15:29??STM32F103C8T6-DS18B20\Hardware_Driver\inc\
?????文件?????????874??2019-01-07?15:29??STM32F103C8T6-DS18B20\Hardware_Driver\inc\Ds18b20.h
?????文件?????????245??2019-01-01?17:25??STM32F103C8T6-DS18B20\Hardware_Driver\inc\led.h
?????目錄???????????0??2019-01-07?15:48??STM32F103C8T6-DS18B20\Hardware_Driver\src\
?????文件????????4692??2019-01-07?15:48??STM32F103C8T6-DS18B20\Hardware_Driver\src\Ds18b20.c
?????文件?????????741??2019-01-07?15:10??STM32F103C8T6-DS18B20\Hardware_Driver\src\led.c
?????目錄???????????0??2019-01-07?16:13??STM32F103C8T6-DS18B20\Pro\
?????目錄???????????0??2019-01-07?14:39??STM32F103C8T6-DS18B20\Pro\DebugConfig\
?????文件????????2403??2017-11-23?15:41??STM32F103C8T6-DS18B20\Pro\DebugConfig\LED_STM32F103C8_1.0.0.dbgconf
?????文件????????2097??2018-12-25?11:27??STM32F103C8T6-DS18B20\Pro\Jli
?????文件?????????671??2016-10-08?17:35??STM32F103C8T6-DS18B20\Pro\Jli
?????目錄???????????0??2019-01-07?14:39??STM32F103C8T6-DS18B20\Pro\List\
?????文件??????114406??2019-01-07?16:08??STM32F103C8T6-DS18B20\Pro\List\Project.map
?????文件???????66564??2019-01-07?16:07??STM32F103C8T6-DS18B20\Pro\List\startup_stm32f10x_hd.lst
?????目錄???????????0??2019-01-07?16:12??STM32F103C8T6-DS18B20\Pro\Obj\
?????文件??????243442??2019-01-07?15:16??STM32F103C8T6-DS18B20\Pro\Obj\24l01.crf
?????文件?????????832??2019-01-07?15:16??STM32F103C8T6-DS18B20\Pro\Obj\24l01.d
?????文件??????274340??2019-01-07?15:16??STM32F103C8T6-DS18B20\Pro\Obj\24l01.o
?????文件??????????19??2019-01-04?11:46??STM32F103C8T6-DS18B20\Pro\Obj\ExtDll.iex
?????文件??????313364??2019-01-07?16:08??STM32F103C8T6-DS18B20\Pro\Obj\Project.axf
?????文件????????1275??2019-01-07?16:12??STM32F103C8T6-DS18B20\Pro\Obj\Project.build_log.htm
?????文件???????12246??2019-01-07?16:08??STM32F103C8T6-DS18B20\Pro\Obj\Project.hex
?????文件???????46451??2019-01-07?16:08??STM32F103C8T6-DS18B20\Pro\Obj\Project.htm
?????文件?????????989??2019-01-07?16:08??STM32F103C8T6-DS18B20\Pro\Obj\Project.lnp
?????文件?????????479??2016-08-23?15:40??STM32F103C8T6-DS18B20\Pro\Obj\Project.sct
?????文件???????49559??2019-01-07?16:12??STM32F103C8T6-DS18B20\Pro\Obj\Project_LED.dep
?????文件??????272204??2019-01-07?15:16??STM32F103C8T6-DS18B20\Pro\Obj\adc.crf
?????文件????????1344??2019-01-07?15:16??STM32F103C8T6-DS18B20\Pro\Obj\adc.d
............此處省略230個文件信息
- 上一篇:多路ADC
- 下一篇:UDP局域網(wǎng)連接
評論
共有 條評論