问题描述:需要在LCD显示变量的数值,这里使用LCD_ShowString()函数,但未能显示变量,之前用 LCD_ShowxNum()函数成功显示变量,但现在一样无法显示变量。
求助,帮看是我哪里出了问题,谢谢大家。
单片机型号:STM32F103RCT6
需要显示的变量是 fre_cnt 和 er ,这两变量的数值均显示不出来;
LCD_ShowString(20,40,200,24,24,"Fre:");
LCD_ShowString(150,40,200,24,24,"Hz");
LCD_ShowString(20,80,200,24,24,"Epsr:");
这三条代码可以正常显示。
求助求助!
以下是主函数:
extern unsigned char tim5_250ms_flag;
extern unsigned int fre_cnt;
extern unsigned char cal_cnt = 0;
#define CAL_TIME 4
float e0 = 8.85419e-12;
float d = 0.002;
float a = 3.03e6;
float c = 1.48e-5;
float S = 0.000625;
float er;
int main(void)
{
char str[100];
char stri[100];
delay_init();
uart_init(9600);
RCC_Configuration();
GPIO_Configuration();
TIM5_Timer();
LED_Init();
LCD_Init();
POINT_COLOR=RED;
LCD_ShowString(20,40,200,24,24,"Fre:");
LCD_ShowString(150,40,200,24,24,"Hz");
LCD_ShowString(20,80,200,24,24,"Epsr:");
while(1)
{
if(tim5_250ms_flag)
{
tim5_250ms_flag = 0;
cal_cnt ++;
if(cal_cnt >= CAL_TIME)
{
sprintf(str,"%d",fre_cnt);
LCD_ShowString(70,40,200,24,24,(u8*)str);
er = (1-c*fre_cnt) * d / (e0*S*a*fre_cnt);
sprintf(stri,"%.2f",er);
LCD_ShowString(80,80,200,24,24,(u8*)stri);
fre_cnt = 0;
cal_cnt = 0;
er = 0;
}
}
LED0=!LED0;
delay_ms(1000);
}
}
|