彩色做出来了。STM32F407单片机驱动VGA显示器 - STM32/8 http://www.51hei.com/bbs/dpj-218615-1.html |
这个有点意思,比较有特色哈!! |
哈哈,以前见过别人屏幕上弹出一堆黑底的字来,当时还迷惑不解,今天算是解惑了![]() |
这个,网上有库,类型还比较多,感觉用不上 |
您好,如何显示一张彩图呢? |
可以提供下源码吗 |
STM32F1系也能点亮VGA, 666 ,能方原理图和源码出来吗? |
我们选择800×600 @ 56Hz的原因是因为像素时钟; 输出分辨率使用36MHz像素时钟,周期是72MHz的倍数(STM32的频率), 因为我们需要使用SPI产生像素信号,可以把STM32的频率经过SPI预分频得到18MHz的像素时钟, 然后将每一个像素点绘制两次,具体方法是当在水平方向800像素点时输出一个信号像素, SPI 的 MOSI信号保持低电平或者高电平两倍的时间(相比于之前绘制一个点的时间)。 帧缓冲区是一个52×200字节的数组。每一行有50*8=400个像素(每一个bit是一个像素), 剩下的两个字节(52-50)模拟每一行的消隐间隔。 水平同步 水平同步信号( horizontal synchronism signal)和后延时间(back porch time)由TIM1定时器产生的通道1和2产生,TIM1定时器产生的通道1连接到PA8。 H-SYNC也就是TIM1定时器的通道1将会产生水平同步信号给显示器。 H-BACKPORCH也就是TIM1定时器的通道2,计算水平同步时间的和以及后延时间, 这个定时器产生一个中断用于触发DMA开始通过SPI发送像素的请求。 帧缓冲里面的每一行都会重复这样的过程, 垂直同步 TIM2定时器用于产生垂直同步信号,但是实在从机模式下。 TIM2计算主机(TIM1)产生的H-SYNC脉冲数。 TIM2的通道2通过PA1输出V-SYNC信号。 TIM2的通道3将会触发一个中断当定时器的计数器达到V-SYNC的和垂直后沿时间。 这个中断会设置一个变量表明正在扫描一个有效帧并且DMA可以开始发送像素到屏幕了。 像素发生器 像素由SPI的MOSI(PA7)产生。 定时器TIM1的通道2产生一个中断用于使能DMA TX请求向SPI发送数据。 DMA将会从帧缓冲区读取一行并且将数据放到SPI的DR寄存器。 DMA被设置用来在一行信号被发送之后产生一个中断,行号是递增的。 因为我们将每一行发送了三次,我们在中断中将计数加1。 当三行数据被发送出去,我们将DMA指针指向下一行的帧缓冲。 当所有的行被发送出去,DMA被禁止直到下一个有效单的帧中断发生(TIM2通道3)。 |
好厉害的样子,能再具体介绍一下吗? |