#include "stm8s.h" #include "ds18b20.h" #include "delay.h" //-----复位----- void resetOnewire(void) { OUT_DQ(); SET_DQ(); delay_us(750); CLR_DQ(); delay_us(100); IN_DQ(); //while(GET_DQ()); while(!(GET_DQ())); OUT_DQ(); SET_DQ(); } //-----读数据----- u8 rOnewire(void) { u8 data=0,i=0; OUT_DQ(); SET_DQ(); for(i=0;i<8;i++) { data=data>>1; OUT_DQ(); CLR_DQ(); delay_us(5); SET_DQ(); delay_us(5); IN_DQ(); if(GET_DQ()) data|=0x80; else data&=0x7f; delay_us(65); SET_DQ(); } return(data); } //-----写数据----- void wOnewire(u8 data) { u8 i=0; OUT_DQ(); for(i=0;i<8;i++) { CLR_DQ(); delay_us(10); if(data&0x01) { SET_DQ(); } else { CLR_DQ(); } delay_us(70); //65 SET_DQ(); delay_us(10); data=data>>1; } } //-----DS18B20转换温度----- void convertDs18b20(void) { resetOnewire(); wOnewire(0xcc); wOnewire(0x44); } //------------DS18BB0读温度---------- u8 readTemp(void) { u8 temp1,temp2; convertDs18b20(); resetOnewire(); wOnewire(0xcc); wOnewire(0xbe); temp1=rOnewire(); temp2=rOnewire(); return (((temp2<<8)|temp1)*6.25); }这是.C部分复制#ifndef __DS18B20_H__ #define __DS18B20_H__ #define SET_DQ() GPIO_WriteHigh(GPIOD,GPIO_PIN_0) //拉高 #define CLR_DQ() GPIO_WriteLow(GPIOD,GPIO_PIN_0) //拉低 #define IN_DQ() GPIO_Init(GPIOD,GPIO_PIN_0,GPIO_MODE_IN_FL_NO_IT)//浮空 #define OUT_DQ() GPIO_Init(GPIOD,GPIO_PIN_0,GPIO_MODE_OUT_PP_HIGH_FAST)//推挽 #define GET_DQ() GPIO_ReadInputPin(GPIOD, GPIO_PIN_0)//DQ值 u8 readTemp(void); void resetOnewire(void); u8 rOnewire(void); void wOnewire(u8 data); void convertDs18b20(void) ; #endif这是IO的配置。就是无法显示温度,串口一直显示f9。 求各位大神帮忙!!
#ifndef __DS18B20_H__ #define __DS18B20_H__ #define SET_DQ() GPIO_WriteHigh(GPIOD,GPIO_PIN_0) //拉高 #define CLR_DQ() GPIO_WriteLow(GPIOD,GPIO_PIN_0) //拉低 #define IN_DQ() GPIO_Init(GPIOD,GPIO_PIN_0,GPIO_MODE_IN_FL_NO_IT)//浮空 #define OUT_DQ() GPIO_Init(GPIOD,GPIO_PIN_0,GPIO_MODE_OUT_PP_HIGH_FAST)//推挽 #define GET_DQ() GPIO_ReadInputPin(GPIOD, GPIO_PIN_0)//DQ值 u8 readTemp(void); void resetOnewire(void); u8 rOnewire(void); void wOnewire(u8 data); void convertDs18b20(void) ; #endif这是IO的配置。就是无法显示温度,串口一直显示f9。 求各位大神帮忙!!
收藏0 举报
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
人才类勋章
时间类勋章
2
16
0
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号