stm32f1在lcd12864液晶上画点及画圆代码
时间: 2024-02-19 10:57:22 浏览: 185
好的,下面给出在STM32F1上液晶屏上画点及画圆的代码。
首先是画点的代码:
```c
void LCD_DrawPoint(uint8_t x, uint8_t y, uint8_t color)
{
uint8_t row, col, tmp;
row = x / 8;
col = 63 - y;
tmp = 0x80 >> (y % 8);
if (color == 0)
{
LCD_RAM[row][col] &= ~tmp;
}
else
{
LCD_RAM[row][col] |= tmp;
}
}
```
该函数接收三个参数,分别为要绘制的点的横坐标、纵坐标及颜色。其中,颜色为0表示黑色,1表示白色。该函数主要实现了将指定位置的像素点设置为指定颜色值。
接下来是画圆的代码:
```c
void LCD_DrawCircle(uint8_t x0, uint8_t y0, uint8_t r, uint8_t color)
{
int8_t x, y;
int16_t d;
x = 0;
y = r;
d = 3 - (r << 1);
while (x <= y)
{
LCD_DrawPoint(x0 + x, y0 + y, color);
LCD_DrawPoint(x0 + x, y0 - y, color);
LCD_DrawPoint(x0 - x, y0 + y, color);
LCD_DrawPoint(x0 - x, y0 - y, color);
LCD_DrawPoint(x0 + y, y0 + x, color);
LCD_DrawPoint(x0 + y, y0 - x, color);
LCD_DrawPoint(x0 - y, y0 + x, color);
LCD_DrawPoint(x0 - y, y0 - x, color);
if (d < 0)
{
d += (x << 2) + 6;
}
else
{
d += ((x - y) << 2) + 10;
y--;
}
x++;
}
}
```
该函数接收四个参数,分别为圆心的横坐标、纵坐标、半径及颜色。其中,颜色为0表示黑色,1表示白色。该函数主要实现了利用Bresenham画圆算法,绘制出指定位置、半径及颜色的圆形。
以上便是在STM32F1上液晶屏上画点及画圆的代码,希望对你有所帮助。
阅读全文