|
ST F7大赛~智能小区控制系统~屏幕篇-CubeMX(噪点错误)
[复制链接]
本帖最后由 abofly 于 2015-10-6 11:21 编辑
工欲善其事,必先利其器!
这次介绍下STM32CubeMX配置屏幕,感谢ST官方为我们提供了如此强大、方便的工程初始化利器:STM32CubeMX
看着各种demo工程的多层函数封装,真心是不喜欢,多层的函数封装对初学者来说模块的操作不够直观,因此想弄个干净点的工程
因此想到了STM32CubeMX,之前没怎么用过,想来试试:
正题:STM32F746G-DISCO 屏幕(噪点~自己的失误)
第一步安装工具,过程不多介绍,下载安装包安装,安装最新Libraries
第二步新建工程选择CPU型号,配置
RCC选择外部晶振,进入Clock Config界面,配置HCLK 200M(/25 *400 /2 /1 , APB1/4 , APB2/2)
LTDC使能,此时自动分配了管脚但和我们的板子不一样因此要手动重新分配(一定按照原理图确认)
进入Config界面配置LTDC,主要GPIO设置为Fast(提示可在此处进一步核对管脚分配,列表形式比较直观)
然后Parameter Setting和Layer Setting,参数参考某个屏幕例程
System CORtex_M7,MPU 不用,接口全使能, 注意Flash接口选择和Keil下载Flash选择一致,否则下载出错
ART和Prefetch显示只用于TCM,但选AXI时ART和Prefetch一样能使能,
且生成的工程里宏定义了AXI接口时ART和Prefetch使能,不知道有啥影响,求教?
"stm32f7xx_hal_conf.h"文件
#define PREFETCH_ENABLE 1
#define ART_ACCLERATOR_ENABLE 1
配置管脚PI12和PK3,显示使能和背光,可以配置PI1 LED灯闪烁
第三步生成工程,注意在HAL_LTDC_MspInit()函数最后将PI12和PK3设置为1,
调用过程MX_LTDC_Init()->HAL_LTDC_Init()->HAL_LTDC_MspInit();
在MX_LTDC_Init()函数中将层缓冲区初始化为准备的图片 pLayerCfg.FBStartAdress = (uint32_t)&myPic;
第四步好了下载,程序可以正常运行了
可可可是屏幕显示图片偏白、颜色偏浅、噪点,问题在哪?
仔细观察屏幕好像每隔一个正常显示点有一个白点,像是斑点一样,很有规律
纠结了好久,重新配置生成工程,甚至一遍遍核对LTDC配置及层的配置,
原来LTDC的LCD_CLK没有配置
在Clock Config界面配置To LCD-TFT时钟9.6Mhz,PLLSAI1(*192 /5 /4),OK一切正常!
总结:STM32CubeMX生成的代码没有较多的封装,比较直观,配置过程不要有遗漏。问题,没弄懂Flash接口配置对程序的影响。
|
|