• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32F746-Disco试用5-画图

shaoziyang 2015-11-23 浏览量:3394

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;
    }
}



注:画圆、椭圆的函数像素不能超过屏幕,否则程序会停止运行。


运行效果:


完整例子:


0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:2

  • 前面的例子把DrwaRect的参数看错了,应该是Xpos, Ypos, Width, Height,而不是x1,y1,x2,y2这样两个顶点的座标。


    修正后的程序:

相关问题

问题达人换一批

STM32F746-Disco试用5-画图