与通常的开发板不同,由于F769IDISCOVERY开发板其自身已配备了4英寸电容式触摸屏,所以在例程的编写上也不再采用常规的以串口来输出显示结果的方式。
以检测内部温度的例程为例,它就是直接地将检测的温度值显示在触摸屏上,其显示效果如图1所示。(LD2闪烁、触摸屏显示内部温度值约在35~36度间)
图1 内部温度测量
那该显示效果是如何来实现的呢? 我们可由其主函数看出端倪,其程序内容及注释如下: int main(void) { char desc[50]; /* 配置 MPU 属性以进行写处理 */ MPU_Config(); /* 使能 CPU Cache */ CPU_CACHE_Enable(); /* STM32F7xx HAL library 测试化 */ HAL_Init(); /* 配置系统时钟为200 MHz */ SystemClock_Config(); /* 配置 LED1 and LED2,但只使用了LED2 */ BSP_LED_Init(LED1); BSP_LED_Init(LED2); /* 配置 LCD 固件 */ LCD_Config(); /* 配置ADC 固件 */ ADC_Config(); /* 启动转换处理 */ HAL_ADC_Start_DMA(&AdcHandle, (uint32_t*)&ConvertedValue, 1); /* 设置循环 */ while (1) { /* 设置一个刷新周期延时 */ HAL_Delay(TEMP_REFRESH_PERIOD); /* 将采集的电压值转换为相应的温度值 */ JTemp = ((((ConvertedValue * VREF)/MAX_CONVERTED_VALUE) - VSENS_AT_AMBIENT_TEMP) * 10 / AVG_SLOPE) + AMBIENT_TEMP; /* 将温度值显示到LCD屏 */ sprintf(desc, "Internal Temperature is %ld degree C", JTemp); BSP_LCD_DisplayStringAt(0, BSP_LCD_GetYSize()/2 + 45, (uint8_t *)desc, CENTER_MODE); BSP_LCD_ClearStringLine(30); /* 切换LED2状态,以指示采集过程 */ BSP_LED_Toggle(LED2); } }
|