RTT_emWin移植与触摸屏校准实践

需积分: 0 1 下载量 64 浏览量 更新于2024-06-30 收藏 8.44MB DOCX 举报
本文档主要介绍了STM32平台上的RTT_emWin移植以及触摸屏校准的详细步骤。首先,我们关注的是模拟触摸屏的测量部分,通过在"GUI_X_Touch_Analog.c"文件中定义的两个函数GUI_TOUCH_X_MeasureX和GUI_TOUCH_X_MeasureY,分别读取触摸屏的X和Y坐标。这些函数仅用于测量,而GUI_TOUCH_X_ActivateX和GUI_TOUCH_X_ActivateY函数则无需调用。 核心功能在于定期调用GUI_TOUCH_Exec()函数,该函数利用操作系统中的定时器机制,确保至少每秒钟执行100次,以实时跟踪触摸屏的触点位置和状态。这个过程需要在操作系统中创建一个独立的线程来管理定时任务。 接下来,文档详细讲述了触摸屏的校准过程。校准分为两个阶段:一是编写校准程序,通过获取显示区范围并绘制出来,以便获取校准值;二是运行时校准,通过定时器中断服务函数TIM5_IRQHandler()来实现。在这个函数中,每当计时器的更新间隔达到1.1ms时,OS_TimeMS变量递增,并在满足特定条件(如每10毫秒)时调用GUI_TOUCH_Exec()进行触控状态检测。 在初始化阶段,特别提到了在LCDConf.c文件中添加GUI_TOUCH_Calibrate()函数,用于完成触摸屏的初始校准。LCDConf.c的配置中包括设置红蓝色彩反转,通过GUI_DEVICE_CreateAndLink()函数指定驱动和颜色模式,以及设置XY坐标的交换,以适应特定硬件的需求。 本文档涵盖了STM32平台使用RTT_emWin库进行模拟触摸屏操作,定时更新触控信息,以及关键的触摸屏校准过程,这对于开发基于STM32的触摸控制应用具有很高的参考价值。开发者需要掌握如何配置定时器,处理触摸数据,以及如何进行准确的触摸校准,以确保系统的稳定性和用户交互体验。

Read Spd Begin... The memory on CH :1 are different! N: pre svc call fun = 0xc2000f04 -- pm-1 = 0, pm-2 = 29819750, pm-3 = 0 N: ddr fun = 0x0 -- pm = 0x29819750, pm2 = 0x0 N: parameter mcu: v0.5 Mcu Start Work ... get_clocks_value: scpi send command start: 0x10 scpi send command success get clocks = 533 MHZ pll_scp_num = 8 Lmu Freq = 1066Mhz ch = 0 parameter set ch closed! DIMM Don't Probed! ch = 1 the dimm info is from uboot... Dimm_Capacity = 8GB Mcu Channel 1 AES configuration begin... AES bypass end... TZC configuration begin... TZC bypass end... use_0x14 == 0xb0100 ctl_cfg_begin...... pi_cfg_begin...... phy_cfg_begin...... fast mode caslat = 15 wrlat = 14 tinit = 856000 r2r_diffcs_dly = 4 r2w_diffcs_dly = 5 w2r_diffcs_dly = 3 w2w_diffcs_dly = 7 r2w_samecs_dly = 4 w2r_samecs_dly = 0 r2r_samecs_dly = 0 w2w_samecs_dly = 0 ch 1 adapter_alg -- 0-0-0-0-0-0-0 rtt_wr = dis rtt_park = 80ohm ron = 34ohm val_cpudrv = 34 rtt_nom = 48ohm val_cpuodt = 48 vref_dev = 10 vrefsel = 0x45 dq_oe_timing = 0x42 rank_num_decode = 1 set phy_indep_init_mode set pi_dram_init_en set_pi_start & ctl_start...... wait init complete...... init complete done...... wait complete done...... rddqs_lat = 0x2 tdfi_phy_rdlat = 0x1f begin software ntp training... rank_num: 0 phy_write_path_lat_add =-1-1-1-1-1-1-1-1-1 phy_write_path_lat_add = 0 0 0 0 0 0 0 0 0 phy_write_path_lat_add = 1 1 1 1 1 1 1 1 1 phy_write_path_lat_add = 2 2 2 2 2 2 2 2 2 phy_write_path_lat_add = 3 3 3 3 3 3 3 3 3 phy_write_path_lat_add = 4 4 4 4 4 4 4 4 4 rank 0 wdqlvl! r2r_diffcs_dly = 4 r2w_diffcs_dly = 7 w2r_diffcs_dly = 4 w2w_diffcs_dly = 6 r2w_samecs_dly = 5 rank 0 ch 1 training fail

2023-06-02 上传