先前兴致勃勃的来弄16位并口驱动LCD,本以为就需要改下LCD IC的初始化就行了,没想到弄了这么多天终于发现自己走进了一个深坑了 T T
原因是我的开发板是奋斗V5的, 它确实有MCU外扩IO口, 还支持16位并口驱动,但是!! 感觉它完全是为了迎合FSMC-LCD来设定TFT接口的..
这是它的原理图..
再来看看正点原子的
再来看看它的芯片中关于这些IO口的部分
正点原子这个应该是不支持FSMC的.这个就很容易写数据:
#define LCD_CS_SET <span style="white-space:pre"> </span>GPIOC->BSRR=1<<9 //片选端口 PC9 #define LCD_RS_SET GPIOC->BSRR=1<<8 //数据/命令 PC8 #define LCD_WR_SET GPIOC->BSRR=1<<7 //写数据 PC7 #define LCD_RD_SET GPIOC->BSRR=1<<6 //读数据 PC6 #define LCD_CS_CLR <span style="white-space:pre"> </span>GPIOC->BRR=1<<9 //片选端口 PC9 #define LCD_RS_CLR GPIOC->BRR=1<<8 //数据/命令 PC8 #define LCD_WR_CLR GPIOC->BRR=1<<7 //写数据 PC7 #define LCD_RD_CLR GPIOC->BRR=1<<6 //读数据 PC6 //PB0~15,作为数据线 #define DATAOUT(x) GPIOB->ODR=x; //数据输出 #define DATAIN GPIOB->IDR; //数据输入
//用宏定义,提高速度. #define LCD_WR_DATA(data){LCD_RS_SET;LCD_CS_CLR;DATAOUT(data);LCD_WR_CLR;LCD_WR_SET;LCD_CS_SET;}很明显,PC6-PC9为读写什么的信号线, PB0-PB15位16位数据线,这样就很容易写了..
= = 但是再看看上面的奋斗V5的, 我就有种想撞墙的冲动!虽然它也有信号线口、16位数据口,但是它是分别用PD和PE加起来的.. 这样写数据起来就非常困难了
唉....不知道是不是我蠢... 反正我是想不出来这么写... T T 如果有人知道怎么写可以告诉我下么? 其实也没什么事情, 这件事对我的教训就是以后
开始做一件事情的时候要好好想好该具备哪些事情,不要一股脑就扎进去,这样反而浪费更多时间.
STM32学习之路-感觉自己走到了一个天大的坑里了!,布布扣,bubuko.com
原文地址:http://blog.csdn.net/u011791262/article/details/27565151