1、STM32F103ZET6上配置的FSMC模拟8080用于刷新OLED(256*64),使用正常;
2、移植至STM32F412RET6后无法使用,时钟、复用、FSMC均已配置,使用NE4、A0,配置写入命令地址为0x6C00000,写入数据地址为0x6C000001;错误现象为:①屏幕显示现象为雪花屏②用逻辑分析仪测得D0-D3数据线无信号输出。
配置已检查过多遍,麻烦各位给一些思路解决一下这个问题,感谢!
修改的函数就是OLED_WR_Byte函数,函数内部实现可以参考LCD例程,具体代码如下:
这里我们需要解决两个变量即FSMC_ADDR_DATA和FSMC_ADDR_CMD,这两个变量其实就是代表着是写数据还是写命令,作用和OLED_RS引脚作用是一样的。
怎么去确认这个地址呢?
这里跟LCD的地址有所区别,没有地址的偏移,是因为这里HADDR是字节地址,并且存储器的数据宽度也是8位,就不像LCD需要再乘2。
这里还有一个读接口函数,代码如下: