OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5679|回复: 10

STM32 TFTLCD屏幕显示问题

[复制链接]

4

主题

9

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2019-2-9
在线时间
8 小时
发表于 2019-4-22 14:26:18 | 显示全部楼层 |阅读模式
3金钱
使用的是ALIENTEK LCD2.8寸屏。看图,在红色的上出现了很多蓝色背景小点,人太笨,c一点不会,看了几遍原子哥的视频,都是懵懵懂懂,后来我就直接模仿直接写了,现在出现了一个问题,我想做一个圆形的指针钟,画外形的时候我我画了5个圆心一样,半径逐次加1的圆,但是在圆上面出现了很多蓝色背景的点。        问题:
               ①、我认为的问题是我这样画圆并不是每一个点都画到了,所以出现了这种情况,不过我不确定我说的对不对我在想可不可以修改画圆函数,让线变粗,如果可以,能否提示下,多谢了。
               ②、有没有好的办法画钟的刻度?我像我这样画也可以慢慢调可以画好,但是就是太慢了,有没有快的方法画刻度。如果可以,是否能告知,多谢了。



代码:
  画圆函数:
void LCD_Draw_Circle(u16 x0,u16 y0,u8 r)
{
        int a,b;
        int di;
        a=0;b=r;          
        di=3-(r<<1);           
        while(a<=b)
        {
                LCD_DrawPoint(x0+a,y0-b);             //5
                LCD_DrawPoint(x0+b,y0-a);             //0           
                LCD_DrawPoint(x0+b,y0+a);             //4               
                LCD_DrawPoint(x0+a,y0+b);             //6
                LCD_DrawPoint(x0-a,y0+b);             //1      
                LCD_DrawPoint(x0-b,y0+a);            
                LCD_DrawPoint(x0-a,y0-b);             //2            
                  LCD_DrawPoint(x0-b,y0-a);             //7                     
                a++;//使用Bresenham算法画圆
                if(di<0)di +=4*a+6;          
                else
                {
                        di+=10+4*(a-b);   
                        b--;
                }                                                     
        }
}

main函数:
#include "stm32f10x.h"
#include "led.h"
#include "delay.h"
#include "lcd.h"
#include "usart.h"
void init();
int main(void)
{
        u8 lcd_id[12];
        delay_init();
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  uart_init(115200);       
        LED_Init();
  LCD_Init();        //
        POINT_COLOR=RED;       
        sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);
        init();
   while(1)
                 {
                   GPIO_SetBits(GPIOB,GPIO_Pin_5);
       GPIO_SetBits(GPIOE,GPIO_Pin_5);
                         delay_ms(500);       
                   GPIO_ResetBits(GPIOB,GPIO_Pin_5);
       GPIO_ResetBits(GPIOE,GPIO_Pin_5);
       delay_ms(500);                                   
                 }
}

void init()
{
                          LCD_Clear(BLUE);
                    POINT_COLOR=RED;                                 
        LCD_Draw_Circle(120,80,75);
        LCD_Draw_Circle(120,80,76);
        LCD_Draw_Circle(120,80,77);
        LCD_Draw_Circle(120,80,78);
        LCD_Draw_Circle(120,80,79);
                          LCD_Draw_Circle(120,80,2);
                          LCD_DrawLine(119,80,119,38);
                          LCD_DrawLine(120,80,120,38);
                          LCD_DrawLine(121,80,121,38);
                          LCD_DrawLine(120,79,155,79);
                          LCD_DrawLine(120,80,155,80);
                          LCD_DrawLine(120,81,155,81);                         
                         
                          LCD_DrawLine(119,1,119,15);
                          LCD_DrawLine(120,1,120,15);
                          LCD_DrawLine(121,1,121,15);
                          LCD_ShowNum(114,18,12,2,16);
                         
                          LCD_DrawLine(119,155,119,145);
                          LCD_DrawLine(120,155,120,145);
                          LCD_DrawLine(121,155,121,145);
                          LCD_ShowNum(117,128,6,1,16);                         
                         
                          LCD_DrawLine(42,79,55,79);
                          LCD_DrawLine(42,80,55,80);
                          LCD_DrawLine(42,81,55,81);
                          LCD_ShowNum(58,72,9,1,16);                               
                         
                          LCD_DrawLine(198,79,185,79);
                          LCD_DrawLine(198,80,185,80);
                          LCD_DrawLine(198,81,185,81);
                          LCD_ShowNum(175,72,3,1,16);

                          LCD_DrawLine(150,12,145,20);
                          LCD_DrawLine(151,13,146,21);
                          LCD_DrawLine(152,14,147,22);                               
}

红色圆圈有蓝色小点,照得不是很清楚

红色圆圈有蓝色小点,照得不是很清楚

最佳答案

查看完整内容[请看2#楼]

你做表盘,可以参考下我们综合实验的画圆算法,也是做了表盘的。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-4-22 14:26:19 | 显示全部楼层
你做表盘,可以参考下我们综合实验的画圆算法,也是做了表盘的。
回复

使用道具 举报

4

主题

9

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2019-2-9
在线时间
8 小时
 楼主| 发表于 2019-4-23 15:48:35 | 显示全部楼层
正点原子 发表于 2019-4-23 02:06
你做表盘,可以参考下我们综合实验的画圆算法,也是做了表盘的。

嗯嗯,我去看看,那刻度呢?我这样不断的设点修改,弄好一个钟的模型要花好久时间呢,是否这个刻度也在综合测试实验里面有?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-4-24 01:59:05 | 显示全部楼层
wenlin1214 发表于 2019-4-23 15:48
嗯嗯,我去看看,那刻度呢?我这样不断的设点修改,弄好一个钟的模型要花好久时间呢,是否这个刻度也在综 ...

有的
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

5

主题

129

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
432
金钱
432
注册时间
2020-5-8
在线时间
66 小时
发表于 2020-7-2 00:41:05 | 显示全部楼层
谢谢分享
回复

使用道具 举报

5

主题

129

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
432
金钱
432
注册时间
2020-5-8
在线时间
66 小时
发表于 2020-7-6 23:00:32 | 显示全部楼层
谢谢分享
回复

使用道具 举报

5

主题

129

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
432
金钱
432
注册时间
2020-5-8
在线时间
66 小时
发表于 2020-7-6 23:14:42 | 显示全部楼层
谢谢分享
回复

使用道具 举报

5

主题

129

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
432
金钱
432
注册时间
2020-5-8
在线时间
66 小时
发表于 2020-7-6 23:15:11 | 显示全部楼层
谢谢分享
回复

使用道具 举报

5

主题

129

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
432
金钱
432
注册时间
2020-5-8
在线时间
66 小时
发表于 2020-7-7 00:27:13 | 显示全部楼层
正点原子 发表于 2019-4-22 14:26
你做表盘,可以参考下我们综合实验的画圆算法,也是做了表盘的。

原子哥,屏幕显示教程里有么?
回复

使用道具 举报

5

主题

129

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
432
金钱
432
注册时间
2020-5-8
在线时间
66 小时
发表于 2020-7-7 00:27:45 | 显示全部楼层
画法是怎么来的?、
回复

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
156
金钱
156
注册时间
2019-6-30
在线时间
58 小时
发表于 2020-10-17 19:49:16 | 显示全部楼层
watgestrwegrgsegr
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 07:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表