📄 main.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 + -