开发板资料里面自带一个填充的函数,但函数中颜色是变的,我们稍加改动就行。
实验代码如下
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"
void Color_Fill(u16 sx, u16 sy, u16 ex, u16 ey, u16 color)
{
u16 height, width;
u16 i, j;
width = ex - sx + 1; //得到填充的宽度
height = ey - sy + 1; //高度
for (i = 0; i < height; i++)
{
LCD_SetCursor(sx, sy + i); //设置光标位置
LCD_WriteRAM_Prepare(); //开始写入GRAM
for (j = 0; j < width; j++)
{
LCD->LCD_RAM=color; //写入数据
}
}
}
int main(void)
{
u8 lcd_id[12]; //存放LCD ID字符串
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
LED_Init(); //LED端口初始化
LCD_Init();
POINT_COLOR=RED;
sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);//将LCD ID打印到lcd_id数组。
while(1)
{
/*Color_Fill(0, 0, 165, 800,BLACK);
Color_Fill(165, 0, 330, 800,RED);
Color_Fill(330, 0, 510, 800,YELLOW);*/ //德国
Color_Fill(0, 0, 500, 266,RED);
Color_Fill(0, 266, 500, 533,WHITE);
Color_Fill(0, 533, 500, 800,BLUE); //法国
}
}
实验结果: