STM32F746-Disco带有一个480x272分辨率的屏幕,可以非常方便的在这个液晶屏上画图。
在Mbed中,已经为这个液晶屏做好了一个对象,我们只要调用它,就可以非常方便的画出各种图形。
首先,需要包含头文件LCD_DISCO_F746NG.h
#include "LCD_DISCO_F746NG.h"
然后,定义一个lcd变量。
LCD_DISCO_F746NG lcd;
现在你就可以开始画图了,如:
lcd.SetTextColor 设置文字或图形颜色
lcd.SetBackColor 设置背景颜色
lcd.Clear 清屏
lcd.DrawRect 画矩形
lcd.DrawCircle 画圆
lcd.DrawEllipse 画椭圆
lcd.DisplayStringAt 显示文字
下面的程序先显示了两行文字,然后随机画矩形。
#include "mbed.h"
#include "LCD_DISCO_F746NG.h"
#define WIDTH 468
#define HEIGHT 260
LCD_DISCO_F746NG lcd;
DigitalOut led1(LED1);
uint16_t cnt;
int main()
{
led1 = 1;
lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"MBED EXAMPLE", CENTER_MODE);
lcd.SetTextColor(LCD_COLOR_WHITE);
lcd.SetBackColor(0);
lcd.DisplayStringAt(0, LINE(8), (uint8_t *)"ICKEY.cn", CENTER_MODE);
lcd.SetTextColor(LCD_COLOR_RED);
lcd.DrawRect(10, 10, WIDTH - 10, HEIGHT - 10);
lcd.SetTextColor(LCD_COLOR_GREEN);
lcd.DrawCircle(200, 100, 100);
wait(1);
while(1)
{
lcd.SetTextColor(rand());
lcd.DrawRect(rand()%WIDTH, rand()%HEIGHT, rand()%WIDTH, rand()%HEIGHT);
cnt++;
if(cnt > 300)
{
cnt = 0;
lcd.Clear(rand());
}
wait(0.1);
led1 = !led1;
}
}
注:画圆、椭圆的函数像素不能超过屏幕,否则程序会停止运行。
运行效果:
完整例子:
|