高级会员
- 积分
- 728
- 金钱
- 728
- 注册时间
- 2017-6-20
- 在线时间
- 188 小时
|
1金钱
自己写的获取温湿度的程序,未加ucosiii之前都能正常运作,加上ucosiii之后,调用显示函数的时候,却不能正常工作了,下面就是一个switch函数,每个case都是下面的形式,现在想把红色部分的sd卡部分单独剔除,可是发现上面蓝色的显示部分却不能正常工作了。如果不剔除下面的红色部分,就能正常工作,请问大家这是为什么啊?
6个case都是一样的:仅仅将case 6贴出来了
display_rt_val(get_tem_flag_num);
{
swtich{
case 1: break;
。。。。。。
。。。。。。
case 6:
{
/***********获取温度与显示部分***********/
while(!rt_tem_value)
{
rt_tem_value = get_temp_value6(); //获取温度
rt_hum_value= get_hum_value6();//获取湿度
i--;
if(i==0) //i-到0说明没有接受到温湿度数据
{
LCD_Fill(320,220,398,280,backcolor);
POINT_COLOR=BLACK;
LCD_ShowString(325,220,100,16,16,"error"); //则显示error
break;
}
}
if(rt_tem_value) //如果有温度数据 下面的处理则是将数据在屏幕上显示出来,
{
sprintf(buff6_rt_tem,(const char *)"%.1f",rt_tem_value);
sprintf(buff6_rt_hum,(const char *)"%.1f",rt_hum_value);
LCD_Fill(320,220,398,280,backcolor);
POINT_COLOR=BLACK;
LCD_ShowChar(380,250,'%',24,0);
for(j=0;j<4;j++)
{
LCD_ShowChar(j*15+320,220,buff6_rt_tem[j],24,0);
LCD_ShowChar(j*15+320,250,buff6_rt_hum[j],24,0);
}
/***********获取温度与显示部分***********/
/****开启文件系统部分****/
sprintf(buff1_rt,(const char*)"'TEMP':'%.1f','HUMI':'%.1f','CO2':'600','NH3':'15.6','GZD':'5555','SJSJ':\'%u-%02u-%02u %02u:%02u:%02u'\}\r\n",rt_dir6,rt_hum6,(u32) calendar.w_year,(u32)calendar.w_month,(u32)calendar.w_date,(u32)calendar.hour,(u32)calendar.min,(u32)calendar.sec);
if(!SD_Init())
{
sprintf(year,"/data/%u",calendar.w_year); //
if(f_opendir(&adir,year)!=FR_OK)
{
// sprintf(aaa,"/data/%u",calendar.w_year); //
f_mkdir(year); //
}
sprintf(month,"/data/%u/%02u",calendar.w_year,calendar.w_month);
if(f_opendir(&adir,month)!=FR_OK)
{
f_mkdir(month); //
}
sprintf(day,"/data/%u/%02u/%02u",calendar.w_year,calendar.w_month,calendar.w_date);//
if(f_opendir(&adir,day)!=FR_OK)
{
f_mkdir(day);
}
sprintf(text,"/data/%u/%02u/%02u/SCatche6.txt",calendar.w_year,calendar.w_month,calendar.w_date);
res=f_open(&f_txt6,text,FA_OPEN_ALWAYS|FA_WRITE);
// res=f_open(&f_txt1,"/data/SCatche1.txt",FA_OPEN_ALWAYS|FA_WRITE);
f_lseek(&f_txt6,f_txt6.fsize);//Ñ°ÕÒÆðʼλÖã¬f_txt.sizeÊÇÈ·¶¨Îļþ´óС£¬´ÓÎļþµÄ×îºóһλ¿ªÊ¼
f_write(&f_txt6,btbuf6,strlen(btbuf6),(UINT*)&br);
// f_printf(&f_txt,buff1_rt);
f_close(&f_txt6);
/****开启文件系统部分****/
}
}
|
|