|
發(fā)布時(shí)間: 2020-7-31 19:26
正文摘要:本帖最后由 新洲羅遠(yuǎn) 于 2020-7-31 19:27 編輯 STM32F1驅(qū)動(dòng)VGA顯示器 時(shí)序?yàn)镾VGA 800x600 56 Hz,實(shí)際使用400X200。 3根線連接,沒有用電阻。 A8---------行同步VGA-13 B7---------場同步 ... |
| 彩色做出來了。STM32F407單片機(jī)驅(qū)動(dòng)VGA顯示器 - STM32/8 http://www.raoushi.com/bbs/dpj-218615-1.html |
| 這個(gè)有點(diǎn)意思,比較有特色哈! |
哈哈,以前見過別人屏幕上彈出一堆黑底的字來,當(dāng)時(shí)還迷惑不解,今天算是解惑了![]() |
| 這個(gè),網(wǎng)上有庫,類型還比較多,感覺用不上 |
| 您好,如何顯示一張彩圖呢? |
| 可以提供下源碼嗎 |
| STM32F1系也能點(diǎn)亮VGA, 666 ,能方原理圖和源碼出來嗎? |
|
我們選擇800×600 @ 56Hz的原因是因?yàn)橄袼貢r(shí)鐘; 輸出分辨率使用36MHz像素時(shí)鐘,周期是72MHz的倍數(shù)(STM32的頻率), 因?yàn)槲覀冃枰褂肧PI產(chǎn)生像素信號,可以把STM32的頻率經(jīng)過SPI預(yù)分頻得到18MHz的像素時(shí)鐘, 然后將每一個(gè)像素點(diǎn)繪制兩次,具體方法是當(dāng)在水平方向800像素點(diǎn)時(shí)輸出一個(gè)信號像素, SPI 的 MOSI信號保持低電平或者高電平兩倍的時(shí)間(相比于之前繪制一個(gè)點(diǎn)的時(shí)間)。 幀緩沖區(qū)是一個(gè)52×200字節(jié)的數(shù)組。每一行有50*8=400個(gè)像素(每一個(gè)bit是一個(gè)像素), 剩下的兩個(gè)字節(jié)(52-50)模擬每一行的消隱間隔。 水平同步 水平同步信號( horizontal synchronism signal)和后延時(shí)間(back porch time)由TIM1定時(shí)器產(chǎn)生的通道1和2產(chǎn)生,TIM1定時(shí)器產(chǎn)生的通道1連接到PA8。 H-SYNC也就是TIM1定時(shí)器的通道1將會產(chǎn)生水平同步信號給顯示器。 H-BACKPORCH也就是TIM1定時(shí)器的通道2,計(jì)算水平同步時(shí)間的和以及后延時(shí)間, 這個(gè)定時(shí)器產(chǎn)生一個(gè)中斷用于觸發(fā)DMA開始通過SPI發(fā)送像素的請求。 幀緩沖里面的每一行都會重復(fù)這樣的過程, 垂直同步 TIM2定時(shí)器用于產(chǎn)生垂直同步信號,但是實(shí)在從機(jī)模式下。 TIM2計(jì)算主機(jī)(TIM1)產(chǎn)生的H-SYNC脈沖數(shù)。 TIM2的通道2通過PA1輸出V-SYNC信號。 TIM2的通道3將會觸發(fā)一個(gè)中斷當(dāng)定時(shí)器的計(jì)數(shù)器達(dá)到V-SYNC的和垂直后沿時(shí)間。 這個(gè)中斷會設(shè)置一個(gè)變量表明正在掃描一個(gè)有效幀并且DMA可以開始發(fā)送像素到屏幕了。 像素發(fā)生器 像素由SPI的MOSI(PA7)產(chǎn)生。 定時(shí)器TIM1的通道2產(chǎn)生一個(gè)中斷用于使能DMA TX請求向SPI發(fā)送數(shù)據(jù)。 DMA將會從幀緩沖區(qū)讀取一行并且將數(shù)據(jù)放到SPI的DR寄存器。 DMA被設(shè)置用來在一行信號被發(fā)送之后產(chǎn)生一個(gè)中斷,行號是遞增的。 因?yàn)槲覀儗⒚恳恍邪l(fā)送了三次,我們在中斷中將計(jì)數(shù)加1。 當(dāng)三行數(shù)據(jù)被發(fā)送出去,我們將DMA指針指向下一行的幀緩沖。 當(dāng)所有的行被發(fā)送出去,DMA被禁止直到下一個(gè)有效單的幀中斷發(fā)生(TIM2通道3)。 |
| 好厲害的樣子,能再具體介紹一下嗎? |
Powered by 單片機(jī)教程網(wǎng)