解决STM32CubeMX配置FSMC驱动TFTLCD失败的问题
本帖最后由 51xlf 于 2022-11-26 22:15 编辑购买普中的一块开发板,使用STM32CubeMX配置了FSMC,就是只能刷一半的屏幕。
显示也不正常。
但是使用官网提供的程序能够正常运行。
查看代码发现,可能是FSMC写入的时候有问题。
<div class="blockcode"><blockquote> TFTLCD->LCD_DATA=color&0xff00;
加一个for循环。
TFTLCD->LCD_DATA=color<<8;
这样在写入的时候,确实可行的。
但是找不出什么原因来。
后来百度了一下,原来是优化存在问题。
Options for Target – C/C++下的编译优化等级Optimization改为0,再编译下载即可解决。
参考了https://blog.csdn.net/qq_44800056/article/details/122724303帖子。
不知道怎么回事,在上面添加代码,就会出现网页代码。增加for循环代码,删掉下面一行。 为什么两次写入数据存在这个问题呢? 为什么只会刷新一半屏幕? 编译器优化有时候就是会帮倒忙 关掉编译器优化就行了 总线是不是不等长了啊? 可以在定义的时候指明不要编译器优化 为什么要设置keil的 编译优化等级? 设置一下数据和地址的保持时间,看看行不行? 这个keil优化还存在问题的吗 这应该是语法表达不标准引起的吧 STM32CubeMX和库函数一样的吧。 增加延时就没有,怎么可能是编译环境有问题呢? 我一般都不修改keil的编译配置,默认的函数就行的。 这个option选项不是固定吗? 编译器有时候也不太好用 这个代码会不会变大呢? STM32CubeMX才有这个问题吗?
编译器有时候也不太好用的,关掉编译器优化吧
页:
[1]
2