这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 高校专区 » 漓东e学堂 » 【1.25更新】18的作业进程

共8条 1/1 1 跳转至

【1.25更新】18的作业进程

菜鸟
2015-11-16 13:10:18     打赏


菜鸟
2015-11-16 13:16:01     打赏
2楼

第一次作业:安装


菜鸟
2015-11-16 13:19:11     打赏
3楼

第二次作业:


菜鸟
2015-11-16 13:39:39     打赏
4楼

#include "stm32f10x.h"    
  
GPIO_InitTypeDef GPIO_InitStructure; //   
  
void RCC_Configuration(void);   
void GPIO_INIT(void) ;  
void Function(void) ;  
  
int main(void)     
{      
    RCC_Configuration();     
    GPIO_INIT();  
    Function();     
}      
        
void RCC_Configuration(void)    //  
{     
        ErrorStatus HSEStartUpStatus;   //   
    RCC_DeInit();                       //   
    RCC_HSEConfig(RCC_HSE_ON);// 
  HSEStartUpStatus = RCC_WaitForHSEStartUp();  //   
  if(HSEStartUpStatus==SUCCESS)  
    {  
        RCC_HCLKConfig(RCC_SYSCLK_Div1);//  
        RCC_PCLK1Config(RCC_HCLK_Div2);//  
        RCC_PCLK2Config(RCC_HCLK_Div1);//   
        RCC_PLLCmd(ENABLE);//          
        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);// 
        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);// 
        while(RCC_GetSYSCLKSource() != 0x08);//     
    }  
      
    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//  
      
  
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE); //
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;       // 
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         // 
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;      //    
    GPIO_Init(GPIOD, &GPIO_InitStructure);     //  
    GPIO_ResetBits(GPIOD,GPIO_Pin_2);  
}   
  
void delay_us(u32 n)        //     
{     
    u8 j;     
    while(n--)     
            for(j=0;j<10;j++);     
}      
void  delay_ms(u32 n)       //     
{     
   while(n--)     
   delay_us(1000);     
}  
   
void GPIO_INIT(void)     
{       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOB, ENABLE);    
      
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;  
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   //     
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;     
        GPIO_Init(GPIOC, &GPIO_InitStructure);  //     
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_1|GPIO_Pin_15|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14;//  
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;       
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
        GPIO_Init(GPIOB, &GPIO_InitStructure);    
}     
    
  
void Number(int a)  //  
{  
    switch(a)    
            {    
        case 0 : GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);break;    
        case 1 : GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);break;    
        case 2 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);break;    
        case 3 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);break;    
        case 4 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12);break;    
        case 5 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_14);break;    
        case 6 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);break;    
        case 7 : GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12);break;    
        case 8 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);break;    
        case 9 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14); break;    
            }    
}    
    
     
void Function(void)   
{       
        int i=0,j=0;          //   
  
        GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);       
        delay_ms(50); //      
  
        while(1)    
        {                   
                GPIO_SetBits(GPIOB,GPIO_Pin_1);         //    
                Number(i);                                //    
                delay_ms(j);                              
                GPIO_ResetBits(GPIOB,GPIO_Pin_1);        //         
                GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);    
  
                GPIO_SetBits(GPIOB,GPIO_Pin_15);           //    
                Number(j);      
                delay_ms(j);    
                GPIO_ResetBits(GPIOB,GPIO_Pin_15);      //       
                GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);    
  
                if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8))   //    
                {       
                    delay_ms(50);            //    
                    if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8))  //      
                    {     
                        i++;                     //    
                        if(i==10)       
                        {    
                            j++;                 
                            i=0;                   
                        }  
                        if(j==10)  
                        {  
                             j=0;  
                                                 i=0;  
                        }  
                    }  
                } 
}
}


参考大神的作业改了一下



菜鸟
2015-11-29 23:13:56     打赏
5楼

第四次作业:

#include "stm32f10x.h"  
#include "stm32_eval.h"  
#include "stdbool.h"  
GPIO_InitTypeDef GPIO_InitStructure;  
 void RCC_Configuration(void);   
void GPIO_INIT(void) ;  
void Function(void) ;  
  
int main(void)     
{      
    RCC_Configuration();     
    GPIO_INIT();  
    Function();     
}      
     
void RCC_Configuration(void)  
{  
  RCC_DeInit();  
  RCC_HSICmd(ENABLE);  
  while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);  
  RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);  
  RCC_HSEConfig(RCC_HSE_OFF);  
  RCC_LSEConfig(RCC_LSE_OFF);  
  RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_9); //  72HMz  
  RCC_PLLCmd(ENABLE);  
  while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);  
  RCC_ADCCLKConfig(RCC_PCLK2_Div4);  
  RCC_PCLK2Config(RCC_HCLK_Div1);  
  RCC_PCLK1Config(RCC_HCLK_Div2);  
  RCC_HCLKConfig(RCC_SYSCLK_Div1);  
  RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);  
  while(RCC_GetSYSCLKSource() != 0x08);
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);  
  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); 
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;  
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
  GPIO_Init(GPIOD, &GPIO_InitStructure);  
  GPIO_ResetBits(GPIOD,GPIO_Pin_2);  
}  
  
void GPIO_INIT()     
{      
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);     
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8
|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;     
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;     
  GPIO_Init(GPIOB, &GPIO_InitStructure);     
         
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);     
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;     
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;     
  GPIO_Init(GPIOC, &GPIO_InitStructure);     
}     
  
void delay_us(u32 n)  
{  
    u8 j;  
    while(n--)  
    for(j=0;j<10;j++);  
}  
  
void  delay_ms(u32 n)  
{  
    while(n--)  
    delay_us(1000);  
}  
  void Function(void)   
{       
        int i=0,j=0;              
  
        GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);       
        delay_ms(50);       
  
        while(1)    
        {                   
                GPIO_SetBits(GPIOB,GPIO_Pin_1);           
                Number(i);                                  
                delay_ms(50);                              
                GPIO_ResetBits(GPIOB,GPIO_Pin_1);                 
                GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);    
  
                GPIO_SetBits(GPIOB,GPIO_Pin_15);               
                Number(j);      
                delay_ms(50);    
                GPIO_ResetBits(GPIOB,GPIO_Pin_15);             
                GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);    
  
                if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8))       
                {       
                    delay_ms(50);                
                    if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8))        
                    {     
                        i++;                         
                        if(i==10)       
                        {    
                            j++;                 
                            i=0;                   
                        }  
                        if(j==10)  
                        {  
                             j=0;  
                                                 i=0;  
                        }  
                    }  
                }     
              }
}
/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */


菜鸟
2015-11-29 23:19:48     打赏
6楼

第五次作业:


菜鸟
2016-01-16 22:40:47     打赏
7楼

第六次作业


菜鸟
2016-01-25 13:05:43     打赏
8楼

期末二选一项目:灯颜色随温度变化而变化

iew plaincopy to clipboardprint?
#include "stdio.h"   
#include "stm32f10x.h"   
int fputc(int ch,FILE *f);   
   
/********************RCC配置*********************/   
void RCC_Configuration(void)       
{   
     
    GPIO_InitTypeDef  GPIO_InitStructure;   
    ErrorStatus HSEStartUpStatus;   
    RCC_DeInit();           
    RCC_HSEConfig(RCC_HSE_ON);   
  HSEStartUpStatus = RCC_WaitForHSEStartUp();    
  if(HSEStartUpStatus==SUCCESS)   
    {   
        RCC_HCLKConfig(RCC_SYSCLK_Div1);   
        RCC_PCLK1Config(RCC_HCLK_Div2); 
        RCC_PCLK2Config(RCC_HCLK_Div1); 
        RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//*设置PLL输入时钟源8x9=72M   
        RCC_PLLCmd(ENABLE);//*打开PLL:             
        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);//*等待PLL工作:   
        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//*设置系统时钟   
        while(RCC_GetSYSCLKSource() != 0x08);    
    }   
                                                           
    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); 
       
    /**蜂鸣器*/       
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);   
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);   
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;       //#管脚号  关闭蜂鸣器   
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;       //#输出速度    
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;        //#输入输出模式(推挽输出)      
    GPIO_Init(GPIOD, &GPIO_InitStructure);       //#初始化    
    GPIO_ResetBits(GPIOD,GPIO_Pin_2);   
       
}      
   
void delay_us(u32 n)        //延时函数      
{      
    u8 j;      
    while(n--)      
            for(j=0;j<10;j++);      
}       
void  delay_ms(u32 n)       //延时函数      
{      
   while(n--)      
   delay_us(1000);      
}   
   
   
   
/*****************************GPIO初始********************************/   
void GPIO_Inits(void)   
{   /*结构体初始化及开启外设时钟*/   
        GPIO_InitTypeDef  GPIO_InitStructure;   
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);   
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);   
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);   
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);   
        /*GPIOA--RGB初始化*/   
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;   
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;   
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;    
        GPIO_Init(GPIOA,&GPIO_InitStructure);   
        GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3)       
           
}   
   
/**************************DS18B20**********************/   
   
uint8_t DS18B20_Init(void)   
{   
    GPIO_InitTypeDef GPIO_InitStructure;   
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);   
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;   
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    
  GPIO_Init(GPIOC, &GPIO_InitStructure);   
    Set_B20();   
   
    DS18B20_Rst();   
    return DS18B20_Presence ();   
}   
   
static void DS18B20_Mode_IPU(void)   
{   
      GPIO_InitTypeDef GPIO_InitStructure;   
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);   
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;   
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;   
  GPIO_Init(GPIOC, &GPIO_InitStructure);   
}   
   
static void DS18B20_Mode_Out_PP(void)   
{   
    GPIO_InitTypeDef GPIO_InitStructure;   
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);   
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;   
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    
  GPIO_Init(GPIOC, &GPIO_InitStructure);   
}   
   
   
   
static void DS18B20_Rst(void)   
{   
    /* 主机设置为输出 */   
    DS18B20_Mode_Out_PP();   
    Reset_B20() ;   
    delay_us(700);     
    Set_B20()   ;   
    delay_us(15);   
}   
   
   
   
static uint8_t DS18B20_Presence(void)   
{   
    uint8_t pulse_time = 0;   
       
    /* 主机设置为上拉输入 */   
    DS18B20_Mode_IPU();   
       
    
    while( Read_B20() && pulse_time<100 )   
    {   
        pulse_time++;   
        delay_us(1);   
    }      
    /* 经过100us后,存在脉冲都还没有到来*/   
    if( pulse_time >=100 )   
        return 1;   
    else   
        pulse_time = 0;   
       
    /* 存在脉冲到来,且存在的时间不能超过240us */   
    while( !Read_B20() && pulse_time<240 )   
    {   
        pulse_time++;   
        delay_us(1);   
    }      
    if( pulse_time >=240 )   
        return 1;   
    else   
        return 0;   
}   
   
   
static uint8_t DS18B20_ReadBit(void)   
{   
    uint8_t dat;   
       
    /* 读0和读1的时间至少要大于60us */    
    DS18B20_Mode_Out_PP();   
    Reset_B20();   
    delay_us(10);   
    DS18B20_Mode_IPU();   
    //Delay_us(2);   
       
    if( Read_B20() == SET )   
        dat = 1;   
    else   
        dat = 0;   
        
    delay_us(45);   
       
    return dat;   
}   
   
   
static uint8_t DS18B20_ReadByte(void)   
{   
    uint8_t i, j, dat = 0;     
       
    for(i=0; i<8; i++)    
    {   
        j = DS18B20_ReadBit();         
        dat = (dat) | (j<<i);   
    }   
       
    return dat;   
}   
   
   
   
static void DS18B20_WriteByte(uint8_t dat)   
{   
    uint8_t i, testb;   
    DS18B20_Mode_Out_PP();   
       
    for( i=0; i<8; i++ )   
    {   
        testb = dat&0x01;   
        dat = dat>>1;        
        /* 写0和写1的时间至少要大于60us */   
        if (testb)   
        {              
            Reset_B20();   
            /* 1us < 这个延时 < 15us */   
            delay_us(8);   
               
            Set_B20();   
            delay_us(58);   
        }          
        else   
        {              
            Reset_B20();   
            /* 60us < Tx 0 < 120us */   
            delay_us(70);   
               
            Set_B20();             
            delay_us(2);   
        }   
    }   
}   
   
   
   
static void DS18B20_SkipRom ( void )   
{   
    DS18B20_Rst();        
       
    DS18B20_Presence();     
       
    DS18B20_WriteByte(0XCC);        /* 跳过 ROM */   
       
}   
   
   
static void DS18B20_MatchRom ( void )   
{   
    DS18B20_Rst();        
       
    DS18B20_Presence();     
       
    DS18B20_WriteByte(0X55);        /* 匹配 ROM */   
       
}   
   
float DS18B20_GetTemp_SkipRom ( void )   
{   
    uint8_t tpmsb, tplsb;   
    short s_tem;   
    float f_tem;   
       
       
    DS18B20_SkipRom ();   
    DS18B20_WriteByte(0X44);                /* 开始转换 */   
       
       
    DS18B20_SkipRom ();   
  DS18B20_WriteByte(0XBE);              /* 读温度值 */   
       
    tplsb = DS18B20_ReadByte();         
    tpmsb = DS18B20_ReadByte();    
       
       
    s_tem = tpmsb<<8;   
    s_tem = s_tem | tplsb;   
       
    if( s_tem < 0 )      /* 负温度 */   
        f_tem = (~s_tem+1) * 0.0625;       
    else   
        f_tem = s_tem * 0.0625;   
       
    return f_tem;      
       
       
}   
   
   
   
void DS18B20_ReadId ( uint8_t * ds18b20_id )   
{   
    uint8_t uc;   
       
       
    DS18B20_WriteByte(0x33);       //读取序列号   
       
    for ( uc = 0; uc < 8; uc ++ )   
      ds18b20_id [ uc ] = DS18B20_ReadByte();   
       
}   
   
   
float DS18B20_GetTemp_MatchRom ( uint8_t * ds18b20_id )   
{   
    uint8_t tpmsb, tplsb, i;   
    short s_tem;   
    float f_tem;   
       
       
    DS18B20_MatchRom ();            //匹配ROM   
       
  for(i=0;i<8;i++)   
        DS18B20_WriteByte ( ds18b20_id [ i ] );    
       
    DS18B20_WriteByte(0X44);                /* 开始转换 */   
   
       
    DS18B20_MatchRom ();            //匹配ROM   
       
    for(i=0;i<8;i++)   
        DS18B20_WriteByte ( ds18b20_id [ i ] );    
       
    DS18B20_WriteByte(0XBE);                /* 读温度值 */   
       
    tplsb = DS18B20_ReadByte();         
    tpmsb = DS18B20_ReadByte();    
        
       
    s_tem = tpmsb<<8;   
    s_tem = s_tem | tplsb;   
       
    if( s_tem < 0 )      /* 负温度 */   
        f_tem = (~s_tem+1) * 0.0625;       
    else   
        f_tem = s_tem * 0.0625;   
       
    return f_tem;      
       
       
}   
   
   
   
   
   
int main()   
{     
uint8_t uc, ucDs18b20Id [ 8 ];   
RCC_Configuration();   
GPIO_Inits();   
USART_int(9600);   
while( DS18B20_Init() )    
printf("\r\n no ds18b20 exit \r\n");   
   
printf("\r\n Yes ds18b20 \r\n");   
   
DS18B20_ReadId ( ucDs18b20Id  );           // 读取 DS18B20 的序列号   
   
printf("\r\nDS18B20的序列号是: 0x");   
   
for ( uc = 0; uc < 8; uc ++ )             // 打印 DS18B20 的序列号   
printf ( "%.2x", ucDs18b20Id [ uc ] );   
   
   
for(;;)   
{      
static unsigned int i=0;   
float a,b;   
if(i==10)   
{   
printf ( "\r\n第10秒:温度: %.1f\r\n", DS18B20_GetTemp_MatchRom ( ucDs18b20Id ) );       // 打印通过 DS18B20 序列号获取的温度值            
a=DS18B20_GetTemp_MatchRom ( ucDs18b20Id );   
delay_ms(1000);     /* 1s 读取一次温度值 */   
i++;   
}   
else{}   
if(i<10)   
{   
printf ( "\r\n温度: %.1f\r\n", DS18B20_GetTemp_MatchRom ( ucDs18b20Id ) );        // 打印通过 DS18B20 序列号获取的温度值            
delay_ms(1000);     /* 1s 读取一次温度值 */   
i++;   
}   
if(i>10)   
{   
printf ( "\r\n10秒后:温度: %.1f\r\n", DS18B20_GetTemp_MatchRom ( ucDs18b20Id ) );       // 打印通过 DS18B20 序列号获取的温度值            
b=DS18B20_GetTemp_MatchRom ( ucDs18b20Id );   
delay_ms(1000);     /* 1s 读取一次温度值 */   
i++;   
if((b-a)>0.9)   
{GPIO_ResetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3);   
   
}   
else{}   
if((b-a)<0.9)   
{   
        GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3);   
   
   
}   
else{}   
   
}   
else{}   
   
}      
}   
int fputc(int ch,FILE *f)   
{   
USART_SendData(USART1, (uint8_t) ch);   
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)   
{}   
return ch;   
}    


共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]