总结教训:stm32f4

您所在的位置:网站首页 stm32f4程序lcd屏幕 总结教训:stm32f4

总结教训:stm32f4

2024-07-02 15:55| 来源: 网络整理| 查看: 265

搞了几天!最后总结一句!看文档不仔细,就是坑爹!是严重坑爹!

 

刚开始,这块液晶,我拿stc12c5a60s2来驱动,能点亮!

然后把51上的驱动,移植到F4里。到F4下测,死活都是白屏,刚开始以为是接错线了。。反复来核对接线!(接线是痛苦的,5555555哭说多了都是泪!)

反正这两天,都在跟这些线和lcd驱动较真。。死活找不到问题出在哪!(想摔了这屏啊,很冲动的啊!有木有啊!大哭

国内国外的论坛啊,各种找资料啊!倒是看到一篇f103驱动s6d1121的驱动文章,拿着f103的驱动移植到f4里。。还是木有成功!(更想摔了,有木有!)

 

无奈了,重新看卖家给的资料。无意中看到了一句话〉〉〉

模块用户通过PCB背面的j3焊盘设置8/16位接口, 短接j3焊盘模块工作在16位模式,不短接工作在8位模式!

 

拿着液晶看j3,居然不短接!瞬间明白了!于是拿焊锡把焊盘点上。再烧程序!O了!

==========================================================================================================================

在回头看看51的环境。拿51测的时候,我都是把16个I/O口全接上。因为看程序,以为默认就是16位的!也就没注意。

#ifdef Bus_16 //条件编译-16位数据模式 void LCD_Writ_Bus(char VH,char VL) //并行数据写入函数 { LCD_DataPortH=VH; LCD_DataPortL=VL; LCD_WR=0; LCD_WR=1; } #else //条件编译-8位数据模式 void LCD_Writ_Bus(char VH,char VL) //并行数据写入函数 { LCD_DataPortH=VH; LCD_WR=0; LCD_WR=1; LCD_DataPortH=VL; LCD_WR=0; LCD_WR=1; } #endif

现在回头看,我擦。没#define Bus_16..这不是坑爹坑到家了吗?

说多了都是泪啊!泪啊!啊!啊!啊!,总之以后看文档看数据手册要仔细啊!

-------------------------------------------------------------------------------------

硬件接线:

PD4    -----FSMC_NOE   ----RD PD5    -----FSMC_NWE  ----WR PD7    -----FSMC_NE1   ----CS PD11  -----FSMC_A16    ----RS

PB5(或3V的引脚)-------------LCD_A

 

以下为LCD的驱动程序:

#include "lcd.h" #define LCD_RAM *(vu16*)((u32)0x60020000) //disp Data ADDR #define LCD_REG *(vu16*)((u32)0x60000000) //disp Reg ADDR static sFONT *LCD_Currentfonts; sFONT Font16x24; static __IO uint16_t TextColor = 0x0000, BackColor = 0xFFFF; /************************************************************************************************************** * 函数名:GPIO_AF_FSMC_Config() * 输入 :void * 输出 :void * 描述 :配置LCD连接的GPIO复用连接到FSMC * 调用 :内部调用 *****************************************************************************************************************/ static void GPIO_AF_FSMC_Config(void) { /*配置GPIOD相应的管脚复用连接到FSMC*/ GPIO_PinAFConfig(GPIOD,GPIO_PinSource0,GPIO_AF_FSMC); //配置GPIOD的Pin0复用连接到FSMC GPIO_PinAFConfig(GPIOD,GPIO_PinSource1,GPIO_AF_FSMC); //配置GPIOD的Pin1复用连接到FSMC GPIO_PinAFConfig(GPIOD,GPIO_PinSource4,GPIO_AF_FSMC); //配置GPIOD的Pin4复用连接到FSMC GPIO_PinAFConfig(GPIOD,GPIO_PinSource5,GPIO_AF_FSMC); //配置GPIOD的Pin5复用连接到FSMC GPIO_PinAFConfig(GPIOD,GPIO_PinSource7,GPIO_AF_FSMC); //配置GPIOD的Pin7复用连接到FSMC GPIO_PinAFConfig(GPIOD,GPIO_PinSource8,GPIO_AF_FSMC); //配置GPIOD的Pin8


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3