⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 STM8s
💻 C
字号:





#include "stm8s.h"
#include "stm8s_gpio.h"
#include "stm8s_tim2.h"


#include "lcd162a.h"


u16 t1,t2,f;
u16 t=0;
float RH;


float hs1101(void )
{
	
	if(f>=6033&&f<=7351)
     {
		   if(f>6330)
		      {
						RH=588-0.08*f;
					}
				else 
			     {
						 RH=586-0.08*f;
					 }
			return RH;
		 }
}


void main()
{  
	 u8 *p1="Hello,world.YSU";
	 	 u8  wan,qian,bai,shi,ge;
	   u16 Conversion_Value = 0;
	  TIM2_ICInit(TIM2_CHANNEL_1, TIM2_ICPOLARITY_RISING, TIM2_ICSELECTION_DIRECTTI, TIM2_ICPSC_DIV1, 0);  
	   TIM2_Cmd(ENABLE);   //使能TIM2计数
 

	TIM2_ClearFlag(TIM2_FLAG_CC1);
	
	
	 //GPIO_Init(GPIOD, GPIO_PIN_4, GPIO_MODE_IN_PP_LOW_FAST );
		
		GPIO_Init(GPIOC, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, GPIO_MODE_OUT_PP_LOW_FAST );
		
 GPIO_Init(GPIOB, (GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6 |GPIO_PIN_7 |GPIO_PIN_0), GPIO_MODE_OUT_PP_LOW_FAST );
 
 //注意lcd162a有严格的时钟时序,该头文件在2m的主频下可运行,其他主频须修改lcd162a时延参数
		lcd162a_Reset();
    lcd162a_cls();
	 lcd162a_ePutstr(1,1,p1);  
	 
	// CLK_HSECmd(ENABLE);
	 //对系统时钟进行配置
	 //CLK_HSICmd(ENABLE);
	// CLK_HSECmd(ENABLE);
	// CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
	// CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV2);
	
	//初始化TIM2时钟,通道1,上升沿等参数配置
	
	
		

	
	 
	 delay_ms(2000);//lcd162c中有定义,延迟2s
	//lcd162a_cls();
	 
	 
	 while((TIM2->SR1 & TIM2_FLAG_CC1) != TIM2_FLAG_CC1);

/* Get CCR1 value*/

   t1 = TIM2_GetCapture1();

    TIM2_ClearFlag(TIM2_FLAG_CC1);
		
		
  

  while((TIM2->SR1 & TIM2_FLAG_CC1) != TIM2_FLAG_CC1);

  /* Get CCR1 value*/

   t2 = TIM2_GetCapture1();

   TIM2_ClearFlag(TIM2_FLAG_CC1);
   
	 t=t2-t1;
	

	
	 Conversion_Value=2000000/t;
	 f=Conversion_Value;
	  hs1101( );
	 
	
   //wan=(Conversion_Value/10000);
		//qian=(Conversion_Value%10000)/1000;
		//bai=(Conversion_Value%1000)/100;
		shi=RH/10;
		ge=(u8)RH%10;
		lcd162a_DispOneChar(1,1,shi+48); 
	   lcd162a_DispOneChar(1,2,ge+48);
		  lcd162a_DispOneChar(1,3,37);
		//lcd162a_DispOneChar(1,3,bai+48); 		//lcd162a_DispOneChar(1,4,shi+48); 
		//lcd162a_DispOneChar(1,5,ge+48); 
		//lcd162a_DispOneChar(1,7,72); 
		//lcd162a_DispOneChar(1,8,90); 

		
	 
   while(1)
   { 
	     lcd162a_cls();
		 TIM2_ClearFlag(TIM2_FLAG_CC1);
		 while((TIM2->SR1 & TIM2_FLAG_CC1) != TIM2_FLAG_CC1);

   /* Get CCR1 value*/

     t1 = TIM2_GetCapture1();

    TIM2_ClearFlag(TIM2_FLAG_CC1);
		
		
  

  while((TIM2->SR1 & TIM2_FLAG_CC1) != TIM2_FLAG_CC1);

  /* Get CCR1 value*/

   t2 = TIM2_GetCapture1();

   TIM2_ClearFlag(TIM2_FLAG_CC1);
   
	 t=t2-t1;
	

	
	
	 Conversion_Value=2000000/t;
	 
  	f=Conversion_Value;
	  hs1101( );
      //wan=(Conversion_Value/10000);
		//qian=(Conversion_Value%10000)/1000;
		//bai=(Conversion_Value%1000)/100;
		shi=RH/10;
		ge=(u8)RH%10;
		lcd162a_DispOneChar(1,1,shi+48); 
	   lcd162a_DispOneChar(1,2,ge+48); 
		 lcd162a_DispOneChar(1,3,37);
		 
		//lcd162a_DispOneChar(1,3,bai+48); 		//lcd162a_DispOneChar(1,4,shi+48); 
		//lcd162a_DispOneChar(1,5,ge+48); 
		//lcd162a_DispOneChar(1,7,72); 
		//lcd162a_DispOneChar(1,8,90);
		 
		 
		 
		 
		 
		 
		  delay_ms(500);//lcd162c中有定义
   }
	 
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -