资源简介

基于STM32F103C8T6的温控器小设计,内含原理图,流量传感器为霍尔传感器,温度传感器为DS18B20,显示是0.96寸IIC接口的OLED。

资源截图

代码片段和文件信息

/***************************************
 * 文件名  :DS18B20.c
 * 描述    :DS18B20 应用函数库
 *          
 * 硬件连接:-----------------
 *          |   PB05 -  DQ    |
 *           -----------------   
**********************************************************************************/

#include “DS18B20.h“
#include “SysTick.h“

//void delay_us(unsigned int us)
//{
// int i;
// for(i=0;i// _asm(“nop“);
//}

void DS18B20_IO_OUT(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB ENABLE);
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 ;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;       
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
   GPIO_Init(GPIOB &GPIO_InitStructure);
}

void DS18B20_IO_IN(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB ENABLE);
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; 
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; 
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; 
GPIO_Init(GPIOB &GPIO_InitStructure);
}

//复位DS18B20
void DS18B20_Rst(void)    
{                 
DS18B20_IO_OUT(); //SET PA0 OUTPUT
DS18B20_DQ_OUT(0);
    //DS18B20_DQ_OUT=0; //拉低DQ
    delay_us(750);    //拉低750us
    DS18B20_DQ_OUT(1);
    //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 PA0 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)   // read one bit
{
    u8 data;
DS18B20_IO_OUT();//SET PA0 OUTPUT
DS18B20_DQ_OUT(0);
    //DS18B20_DQ_OUT=0; 
delay_us(2);
DS18B20_DQ_OUT(1);
    //DS18B20_DQ_OUT=1; 
DS18B20_IO_IN();//SET PA0 INPUT
delay_us(12);
if(DS18B20_DQ_IN)data=1;
    else data=0;  
    delay_us(50);           
    return data;
}
//从DS18B20读取一个字节
//返回值:读到的数据
u8 DS18B20_Read_Byte(void)    // read one byte
{        
    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 PA0 OUTPUT;
    for (j=1;j<=8;j++) 
{
        testb=dat&0x01;
        dat=dat>>1;
        if (testb) 
        {
            DS18B20_DQ_OUT(0);
            //DS18B20_DQ_OUT=0;// Write 1
            delay_us(2); 
            DS18B20_DQ_OUT(1);                           
            //DS18B20_DQ_OUT=1;
            delay_us(60);             
        }
        else 
        {
            DS18B20_DQ_OUT(0);
            //DS18B20_DQ_OUT=0;// Write 0
           

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-12-22 22:13  基于STM32F103C8T6的温控器小设计\
     目录           0  2019-12-22 22:13  基于STM32F103C8T6的温控器小设计\原理图\
     文件         659  2019-05-23 22:33  基于STM32F103C8T6的温控器小设计\原理图\Free Documents.Dat
     文件        4199  2019-05-23 22:34  基于STM32F103C8T6的温控器小设计\原理图\Free Documents.OutJob
     目录           0  2019-12-22 22:13  基于STM32F103C8T6的温控器小设计\原理图\History\
     文件        1708  2019-05-23 22:32  基于STM32F103C8T6的温控器小设计\原理图\History\Free Documents.~(1).OutJob.Zip
     文件        1460  2019-05-23 20:49  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(1).SchDoc.Zip
     文件       16386  2019-05-23 21:14  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(10).SchDoc.Zip
     文件       16909  2019-05-23 21:16  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(11).SchDoc.Zip
     文件       17926  2019-05-23 21:18  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(12).SchDoc.Zip
     文件       18762  2019-05-23 21:18  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(13).SchDoc.Zip
     文件       18802  2019-05-23 21:19  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(14).SchDoc.Zip
     文件       18834  2019-05-23 21:21  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(15).SchDoc.Zip
     文件       20009  2019-05-23 21:22  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(16).SchDoc.Zip
     文件       20509  2019-05-23 21:23  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(17).SchDoc.Zip
     文件       21461  2019-05-23 21:25  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(18).SchDoc.Zip
     文件       23427  2019-05-23 21:25  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(19).SchDoc.Zip
     文件        3912  2019-05-23 20:52  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(2).SchDoc.Zip
     文件       23458  2019-05-23 21:25  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(20).SchDoc.Zip
     文件       23484  2019-05-23 21:25  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(21).SchDoc.Zip
     文件       23556  2019-05-23 21:26  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(22).SchDoc.Zip
     文件       23560  2019-05-23 21:30  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(23).SchDoc.Zip
     文件       24142  2019-05-23 21:31  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(24).SchDoc.Zip
     文件       24264  2019-05-23 21:32  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(25).SchDoc.Zip
     文件       24653  2019-05-23 22:14  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(26).SchDoc.Zip
     文件       25155  2019-05-23 22:14  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(27).SchDoc.Zip
     文件       25196  2019-05-23 22:14  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(28).SchDoc.Zip
     文件       25231  2019-05-23 22:15  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(29).SchDoc.Zip
     文件        4236  2019-05-23 20:54  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(3).SchDoc.Zip
     文件       25289  2019-05-23 22:15  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(30).SchDoc.Zip
     文件       25276  2019-05-23 22:15  基于STM32F103C8T6的温控器小设计\原理图\History\Sheet1.~(31).SchDoc.Zip
............此处省略417个文件信息

评论

共有 条评论