bt磁力搜索引擎win10優(yōu)化大師免費(fèi)版
最近在鉆研一些顯示屏,研究到了lcd顯示屏,然后入手了一塊f407的開發(fā)板,但是店家給的資料有點(diǎn)怪,是keil4的工程,我一打開顯示缺少f407vexxx,keil現(xiàn)在還巨慢,然后我到處找資料,發(fā)現(xiàn)網(wǎng)上大多是vgt6,又去各家vet6的店鋪區(qū)找資料。折騰了幾天終于把lcd點(diǎn)亮了,然后把標(biāo)準(zhǔn)庫的代碼移植到了hal庫上面
開發(fā)板:
1.cubemx配置:
(1)基礎(chǔ)配置:
? ? ? ? 沒啥好說的,之間配置即可,我這里用的是stlink調(diào)試器,頻率直接拉滿,時鐘都是外部晶振。
時鐘配置?
接下來是這次工程的重點(diǎn)FSMC的配置:
首先我們對照原理圖,看一下引腳的配置?
對照原理圖我們可以發(fā)現(xiàn),這款開發(fā)板使用的是NE1,A18,同時原理圖顯示上面有16個數(shù)據(jù)位,這樣我們就可以對TFT的基礎(chǔ)管腳進(jìn)行配置?,具體配置如下:
剩下的配置我們需要對照標(biāo)準(zhǔn)庫的代碼進(jìn)行配置(可以提前用燒錄標(biāo)準(zhǔn)庫的代碼檢查一下代碼是否有問題)
我們先將下面三個文件復(fù)制到自己的文件中
打開文件直接找到LCD_Init函數(shù)FSMC配置的位置
對照代碼和注釋 我們在cubemx上繼續(xù)配置
最后我們配置一下背光端口,即LCD_BL
對照原理圖我們發(fā)現(xiàn)是連接到了單片機(jī)的PB1引腳,簡單配置一下即可
這樣我們cubemx就配置的差不多了,最后來點(diǎn)收尾:
cubemx配置結(jié)束,生成代碼
2.keil文件修改:?
lcd.c:
首先開頭幾個頭文件串口和延時可以去掉,(串口可以自己在cubemx上配置,延時直接用自帶的hal_delay就行了)
然后去lcd_Init函數(shù)把FSMC配置函數(shù)全部刪掉,這部已經(jīng)配置好了
下圖這部分也要刪掉,這部分之前沒在意結(jié)果顯示出現(xiàn)問題
在它上面有個讀取ID的函數(shù),把LCD_WR_REG(0X04);改為LCD_WR_REG(0Xd3);(9341讀取ID指令為0xd3)下面那個串口發(fā)送以及修改id的代碼可以直接注釋掉,這一部分最后修改前后對比
修改前:
修改后:
接著是下面的一些列初始代碼,下圖這段注釋掉,改用下面原先注釋掉的代碼(原先注釋掉的代碼為9341初始化的代碼)
?同時注意一下這兩行代碼
然后修改一下背光
?修改之后:
?(LCD_BL_GPIO_Port是在cubemx中自定義的,也可以使用PB1來點(diǎn)亮)
這兩段代碼控制著LCD的掃描方向,我最開始顯示鏡像就是這里的問題,可以改成0x08,自定義的話可以看漢化的手冊,雖然只有命令的解釋,但也夠用了
?lcd.h文件中只需要把sys.h文件刪除即可,接著我們可以把原來代碼中類型聲明全部換掉(u16這些聲明是在sys.h中聲明的)選中ctrl+f替換即可,特別注意的是u16不要直接替換,先替換vu16為volatile uint16_t vu32也是同理.
源代碼中的延時函數(shù):ms級延時用hal_delay,us級延時用hal_delay(1)替換.
3.驗(yàn)證
在main.c函數(shù)中驗(yàn)證
?最終效果:
程序源碼:
cubemx移植版 鏈接:https://pan.baidu.com/s/1PFkykgRxg-PBlFd-WrW3XQ?pwd=mz44?
提取碼:mz44
開發(fā)板商家例程:百度網(wǎng)盤 請輸入提取碼