资源简介
视屏演示: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期末大作业
相关资源
- 006_STM32程序移植之_SYN6288语音模块
- 005_STM32程序移植之_RC522读卡模块
- 004_STM32程序移植之_SHTXX
- 002_STM32程序移植之_DHT11
- 001_STM32程序移植之_DS1302
- 023_STM32PID算法程序
- 019-020STM32程序移植之_W5500连接noenet
- STM32驱动AD7175源码.rar
- 5分钟用STM32的内置Flash做一个超小U盘
- STM32串口USART1的查询和中断方式程序
- STM32F103ZET6原子战舰控制步进电机驱动
- 智能车源码(STM32)
- STM32F103+SIM800C 移植MQTT 连接阿里云服务
评论
共有 条评论