STM32F1 通过LCD画一个法国国旗和德国国旗

开发板资料里面自带一个填充的函数,但函数中颜色是变的,我们稍加改动就行。

实验代码如下 

#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);  //法国
	} 
}

实验结果: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值