1. 程式人生 > >STM32學習之路-感覺自己走到了一個天大的坑裏了!

STM32學習之路-感覺自己走到了一個天大的坑裏了!

port 感覺 mar lcd 學習之路 位數 iss b- 速度

先前興致勃勃的來弄16位並口驅動LCD。本以為就須要改下LCD IC的初始化即可了,沒想到弄了這麽多天最終發現自己走進了一個深坑了 T T

原因是我的開發板是奮鬥V5的, 它確實有MCU外擴IO口, 還支持16位並口驅動,可是!! 感覺它全然是為了迎合FSMC-LCD來設定TFT接口的..

這是它的原理圖..

技術分享

再來看看正點原子的

技術分享

再來看看它的芯片中關於這些IO口的部分

技術分享

正點原子這個應該是不支持FSMC的.這個就非常easy寫數據:

#define	LCD_CS_SET  <span style="white-space:pre">	</span>GPIOC->BSRR=1<<9    //片選port  	     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     //片選port  	     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位數據線,這樣就非常easy寫了..

= = 可是再看看上面的奮鬥V5的, 我就有種想撞墻的沖動!盡管它也有信號線口、16位數據口。可是它是分別用PD和PE加起來的.. 這樣寫數據起來就很困難了

唉....不知道是不是我蠢... 反正我是想不出來這麽寫... T T 假設有人知道怎麽寫能夠告訴我下麽? 事實上也沒什麽事情, 這件事對我的教訓就是以後

開始做一件事情的時候要好好想好該具備哪些事情,不要一股腦就紮進去。這樣反而浪費很多其它時間.


STM32學習之路-感覺自己走到了一個天大的坑裏了!