1528|2

47

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

上海航芯 ACM32F070开发板+触控功能评估板评估 - 第三篇 时钟和温度显示界面 [复制链接]

 

本测评实验使用RTC获取实时时间,使用I2C从板载传感器获取温度数据,将时间和温度像是在LCD屏幕上。

 

代码实现主要参考了SDK中LCD_TK和RTC 两个例程。SDK的架构设计还是不错的,添加新的driver文件都很方便。

 

本实验主要的实现代码如下:

 

void App_Test()
{   
	uint32_t fu32_Seconds;
    uint32_t fu32_Days;
	float ff_getTempHum[2];
    uint16_t fu16_num_up, fu16_num_down;
	uint32_t fu32_Displayup[4]={0},fu32_Displaydown[4]={0},fu32_num_123567p[7]=0},fu32_num_col[2]={0},fu32_num_s=0;
	
	LCD_Config();  
	BUZZER_Init();
    SHT30_Init();

	RTC_Handle.u32_ClockSource       = RTC_CLOCK_XTL;
	RTC_Handle.u32_Compensation =COMPENSATION_INCREASE;  	
    RTC_Handle.u32_CompensationValue = 0x05;    

	HAL_RTC_Config(&RTC_Handle);
	gstr_Time_Set.u8_Hours   = 0x12;
	gstr_Time_Set.u8_Minutes = 0x30;
	gstr_Time_Set.u8_Seconds = 0x00;
	HAL_RTC_SetTime(&gstr_Time_Set);
	gstr_Date_Set.u8_Year    = 0x21;    // 2021  
	gstr_Date_Set.u8_Month   = RTC_MONTH_MARCH;  
	gstr_Date_Set.u8_Date    = 0x20; 
	gstr_Date_Set.u8_WeekDay = RTC_WEEKDAY_FRIDAY;
	HAL_RTC_SetDate(&gstr_Date_Set);	
	
	while (1) 
	{
		HAL_RTC_GetTime(&gstr_Time_Get);
		HAL_RTC_GetDate(&gstr_Date_Get);  
		HAL_RTC_GetTime(&gstr_Time_Get_Again);      
		if (gstr_Time_Get.u8_Seconds != gstr_Time_Get_Again.u8_Seconds) 
		{
			continue;   
		}

		if (fu32_Seconds != gstr_Time_Get.u8_Seconds) 
		{
			fu32_Seconds = gstr_Time_Get.u8_Seconds;
			
			//fu32_num_col[0] = 1;
			fu32_num_col[1] = ~fu32_num_col[1];
			//fu32_num_123567p[6] |=1;
			fu32_num_123567p[1] |=1;
			fu32_num_s |=S_DATA[1];
			fu32_num_s |=(S_DATA[5] | S_DATA[6] | S_DATA[7] | S_DATA[8]);
			fu32_num_s &=~S_DATA[0];
			fu32_num_s |=S_DATA[12];//S13_BATW,S14_BAT1,S15_BAT2,S16_BAT3
			fu32_num_s |=S_DATA[13];
			fu32_num_s |=S_DATA[14];
			fu32_num_s |=S_DATA[15];
			
			SHT30_Read_Dat(I2C_Handle,gu8_RxBuffer);
			SHT30_Read_Result(gu8_RxBuffer,ff_getTempHum);
			fu16_num_up=(uint16_t)(ff_getTempHum[0]*100);			
			if(fu16_num_up>9999) fu16_num_up=9999;
			fu32_Displayup[0]=fu16_num_up/1000%10;
			fu32_Displayup[1]=fu16_num_up/100%10;
			fu32_Displayup[2]=fu16_num_up/10%10;
			fu32_Displayup[3]=fu16_num_up/1%10;
			
			fu32_Displaydown[0] = gstr_Time_Get.u8_Minutes/16%16;;
			fu32_Displaydown[1] = gstr_Time_Get.u8_Minutes/1%16;
			fu32_Displaydown[2] = gstr_Time_Get.u8_Seconds/16%16;
			fu32_Displaydown[3] = gstr_Time_Get.u8_Seconds/1%16;
	
			 
       LCD_YR1618A_VIEW(fu32_Displayup,fu32_Displaydown,fu32_num_123567p,fu32_num_col,fu32_num_s);		
		
		}
	}	
}

Demo视频:

3-1

 

最新回复

参考的SDK中LCD_TK和RTC 两个例程是官方提供的么   详情 回复 发表于 2022-10-26 08:38
点赞 关注
 
 

回复
举报

6828

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

参考的SDK中LCD_TK和RTC 两个例程是官方提供的么

点评

是的  详情 回复 发表于 2022-10-26 09:28
 
 
 

回复

47

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
Jacktang 发表于 2022-10-26 08:38 参考的SDK中LCD_TK和RTC 两个例程是官方提供的么

是的

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表