查看: 14339|回复: 22

我的5110画图库--Nokia 5110液晶屏实现画点、画线、画矩形、...

  [复制链接]
  • TA的每日心情
    无聊
    2016-12-20 15:08
  • 签到天数: 510 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2012-10-12 22:23:23 | 显示全部楼层 |阅读模式
    分享到:
    最近花了好多时间终于完成了5110液晶屏的画图函数库,完善了画图的基本函数,有画点,画直线,画折线,画矩形,画圆和贴图的基本功能。函数库提供了使用缓冲区和不使用缓冲区的函数,可以根据需要灵活使用。单片机使用的是stm32,但是我的做了宏定义,非常容易移植到其他单片机上,具体情况在代码注释中应该介绍的蛮详细的(注释花了我不少时间整理哦)。   在画图的算法上,我画直线采用了Bresenham算法,画圆是用的中点画圆法,不过我稍微改了一些,没有使用浮点数,还有在一些乘法计算时采用移位代替,这两点都使画图速度大大加快了。
      闲话少说,先上图吧!
    DSC00881_副本.jpg DSC00878_副本.jpg DSC00879_副本.jpg DSC00880_副本.jpg
    再看看我的头文件都提供的哪些函数吧(个人觉得还是蛮多的):
      LCD5110.h
    1. #ifndef _LCD5110_H_
    2. #define _LCD5110_H_

    3. /*--------修改本文件 <5110端口和引脚宏定义> 可以改变单片机引脚连线-------------*/
    4. /*----------如果要移植到其他单片机上只需再修改本文件的<5110引脚动-------------*/
    5. /*------------作宏定义>和LCD5110.c文件中LcdPortInit函数对单片机--------------*/
    6. /*--------------引脚的初始化,5110的VCC为3V时或显示不清时可以---------------*/
    7. /*-------------------修改LCD5110.c中LcdInit函数的配置----------------------*/

    8. #include "stm32f0xx.h"
    9. #include "stm32f0xx_gpio.h"
    10. #include "Delay.h"
    11. #include "Font6_8.h"
    12. #include "Icon10_8.h"
    13. #include "Font8_16.h"
    14. #include "Font16_16.h"
    15. #include "Bitmap.h"


    16. /*------保留下面这句表示使用buf,注释掉表示不使用buf-----*/
    17. #define USE_BUF
    18. /*------保留上面这句表示使用buf,注释掉表示不使用buf-----*/

    19. #define u8                 unsigned char
    20. #define u16         unsigned short

    21. typedef struct
    22. {
    23.         u8 x;
    24.         u8 y;
    25. }point;

    26. /*------5110屏幕尺寸和功能宏定义------*/
    27. #define DATA        1                                                                                                                                //数据
    28. #define CMD 0                                                                                                                                        //命令
    29. #define LCD_X        84                                                                                                                        //液晶屏横坐标宽度
    30. #define LCD_ROW LCD_X                                                                                                        //液晶屏列宽度
    31. #define LCD_Y        48                                                                                                                        //液晶屏纵坐标高度
    32. #define LCD_COLUMN LCD_Y / 8                                                                        //液晶屏行高度
    33. #define LCD_AREA LCD_X * LCD_Y                                                                //液晶屏面积
    34. #define LCD_AREA_BYTE LCD_COLUMN * LCD_ROW                //液晶屏字节容量

    35. /*------位宏定义--------*/
    36. #define BIT0         0x00000001
    37. #define BIT1         0x00000002
    38. #define BIT2         0x00000004
    39. #define BIT3         0x00000008
    40. #define BIT4         0x00000010
    41. #define BIT5         0x00000020
    42. #define BIT6         0x00000040
    43. #define BIT7         0x00000080
    44. #define BIT8         0x00000100
    45. #define BIT9         0x00000200
    46. #define BIT10 0x00000400
    47. #define BIT11 0x00000800
    48. #define BIT12 0x00001000
    49. #define BIT13 0x00002000
    50. #define BIT14 0x00004000
    51. #define BIT15 0x00008000

    52. /*------5110端口和引脚宏定义--------*/

    53. #define LCD5110_PORT         GPIOB                                        //5110所在端口
    54. #define LCD_SCLK_BIT         BIT3                                        //SCLK端口位
    55. #define LCD_SDIN_BIT         BIT4                                        //SDIN端口位
    56. #define LCD_DC_BIT                  BIT5                                        //DC端口位
    57. #define LCD_SCE_BIT                BIT6                                        //SCE端口位
    58. #define LCD_REST_BIT         BIT7                                        //REST端口位


    59. /*------5110引脚动作宏定义-----------*/
    60. #define LCD_SCLK_H        LCD5110_PORT->BSRR = LCD_SCLK_BIT                //SCLK置1       
    61. #define LCD_SCLK_L  LCD5110_PORT->BRR  = LCD_SCLK_BIT                //SCLK置0

    62. #define LCD_SDIN_H        LCD5110_PORT->BSRR = LCD_SDIN_BIT
    63. #define LCD_SDIN_L  LCD5110_PORT->BRR  = LCD_SDIN_BIT

    64. #define LCD_DC_H                LCD5110_PORT->BSRR = LCD_DC_BIT
    65. #define LCD_DC_L          LCD5110_PORT->BRR  = LCD_DC_BIT

    66. #define LCD_SCE_H                LCD5110_PORT->BSRR = LCD_SCE_BIT
    67. #define LCD_SCE_L          LCD5110_PORT->BRR  = LCD_SCE_BIT

    68. #define LCD_REST_H        LCD5110_PORT->BSRR = LCD_REST_BIT
    69. #define LCD_REST_L  LCD5110_PORT->BRR  = LCD_REST_BIT

    70. #define RCC_LCD5110_PORT         RCC_AHBENR_GPIOAEN << (((uint32_t)LCD5110_PORT-(uint32_t)GPIOA) >> 10)                        //5110 RCC使能

    71. /*--------------------------------------------------------------------------------------------------------------*/
    72. /*-------函数分不使用buf和使用buf,不使用buf最快,但是行不是任意坐标,是在5110本身的行的基础上定义的;----------*/
    73. /*-------画的图案的高度必须是8的倍数,而且图案不能相或来进行叠加。使用buf的话不论是写字还是画图都没有-----------*/
    74. /*-------坐标限制,图案宽度和高度也没有限制,而且可以进行图案和字符的叠加。使用buf的函数分两类,一类------------*/
    75. /*-------是只对buf操作,大部分以tobuf,ofbuf,buf结尾比如PutChartoBuf、PutCircletoBuf、ClearBuf,这一类-----------*/
    76. /*-------函数操作完后需要调用Refresh、RefreshAll这两个函数将buf的变化刷新到5110上,较灵活,可以通过减-----------*/
    77. /*-------少刷新次数来加快画图速度。另一种是对buf操作后自动将结果刷新到5110上,大部分以buf开头,如BufPutChar-----*/
    78. /*-------、BufPutHanzi等,还有画点画线画圆函数PutLine、PutRect等。----------------------------------------------*/

    79. /////////////////////////////////////////////////////////////////////////////////////////////////////
    80. /////*                                以下为不使用缓冲区写字画图的相关函数                                *//////
    81. //*--------------------------------------------------------*//
    82. /////////////////////////////////////////////////////////////////////////////////////////////////////


    83. //*******                                以下是基本操作和初始化函数                                *****//

    84. /*----------初始化5110-----------*/
    85. void InitLcd(void);
    86. /*-------清空整个5110屏幕--------*/
    87. void LcdClearAll(void);
    88. /*---设置5110行和列坐标----*/
    89. void SetXY(u8 row,u8 column);

    90. //******                                以下是高度为8的各种操作函数                                *******//
    91. //**                        包括6*8字符和字符串,6*8符号,10*8图标                          **//
    92. //--every row contains 14 characters,there are 6 rows (font = 6 * 8)--//
    93.                 //-----------------           row                  ---------------------//
    94.                 //0 1 2 3 4 5 6 7 8 9 10 11 12 13//                column = 0
    95.                 //0 1 2 3 4 5 6 7 8 9 10 11 12 13//                column = 1
    96.                 //0 1 2 3 4 5 6 7 8 9 10 11 12 13//                column = 2
    97.                 //0 1 2 3 4 5 6 7 8 9 10 11 12 13//                column = 3
    98.                 //0 1 2 3 4 5 6 7 8 9 10 11 12 13//                column = 4
    99.                 //0 1 2 3 4 5 6 7 8 9 10 11 12 13//                column = 5
    100. //-------------------------------------------------------//

    101. /*---直接写一个ASCII字符(6*8)到5110(不需要坐标,紧跟上个字符或图标)---*/
    102. void WriteChar(u8 value);
    103. /*---直接写一个ASCII字符(6*8)到5110---*/
    104. void PutChar(u8 value,u8 column,u8 row);
    105. /*---直接写一个字符串(6*8)到5110(不需要坐标,紧跟上个字符或图标)---*/
    106. void WriteStr(char * str);
    107. /*--直接写一个字符串(6*8)到5110--*/
    108. void PutStr(char * str,u8 column,u8 row);
    109. /*---画sign(6*8)(不需要坐标,紧跟上个字符或图标)---*/
    110. void WriteSign(char * sign);
    111. /*----画sign(6*8)----*/
    112. void PutSign(char * sign,u8 column,u8 row);
    113. /*---画Icon(10*8)(不需要坐标,紧跟上个字符或图标)---*/
    114. void WriteIcon(char * icon);
    115. /*--画Icon(10*8),row(0~74)--*/
    116. void PutIcon(char * icon,u8 column,u8 row);

    117. //********                                以下是高度为16的各种操作函数                                *******//
    118. //**                                包括8*16字符和字符串,16*16汉字                           **//
    119. //--every row contains 10 characters,there are 3 rows (font = 8 * 16)--//
    120. //-----------       row       ------------//
    121.                 //0 1 2 3 ... 81 82 83//        column = 0
    122.                 //0 1 2 3 ... 81 82 83//
    123.                 //0 1 2 3 ... 81 82 83//        column = 1
    124.                 //0 1 2 3 ... 81 82 83//
    125.                 //0 1 2 3 ... 81 82 83//        column = 2
    126.                 //0 1 2 3 ... 81 82 83//
    127. //-----------------------------------------//

    128. /*-----直接写一个ASCII字符(8*16)到5110------*/
    129. void PutWideChar(u8 value,u8 column,u8 row);
    130. /*--直接写一个字符串(6*8)到5110,自动换行,row(0~76)--*/
    131. void PutWideStr(char * str,u8 column,u8 row);

    132. //--every row contains 5 characters,there are 3 rows (font = 16 * 16)--//
    133. //----------      row       --------------//
    134.                 //0 1 2 3 ... 81 82 83//        column = 0
    135.                 //0 1 2 3 ... 81 82 83//
    136.                 //0 1 2 3 ... 81 82 83//        column = 1
    137.                 //0 1 2 3 ... 81 82 83//
    138.                 //0 1 2 3 ... 81 82 83//        column = 2
    139.                 //0 1 2 3 ... 81 82 83//
    140. //----------------------------------------//

    141. /*-----直接写一个汉字(16*16)到5110------*/
    142. void PutHanzi(char Hanzi[],u8 column,u8 row);
    143. /*--写一串汉字(16*16),自动换行,row(0~58)--*/
    144. void PutHanziStr(char Hanzi[],u8 column,u8 row,u8 num);

    145. //********                                以下是画图的各种操作函数                                *********//
    146. //**                                  包括84*48,高度为8的倍数的图片                       **//
    147. //---------------           x                  ----------------------//
    148.                 //0 1 2 3 4 5 6 7 8 9 10 11 12 13//                y = 0
    149.                 //0 1 2 3 4 5 6 7 8 9 10 11 12 13//                y = 1
    150.                 //0 1 2 3 4 5 6 7 8 9 10 11 12 13//                y = 2
    151.                 //0 1 2 3 4 5 6 7 8 9 10 11 12 13//                y = 3
    152.                 //0 1 2 3 4 5 6 7 8 9 10 11 12 13//                y = 4
    153.                 //0 1 2 3 4 5 6 7 8 9 10 11 12 13//                y = 5
    154. //-----------------------------------------------//

    155. /*---画picture(84*48),全屏---*/
    156. void DrawPicture(char bitmap[]);
    157. /*---画picture(高度必须是8的倍数)---*/
    158. void DrawBmp(char bitmap[],u8 x,u8 y,u8 width,u8 height);

    159. #ifdef USE_BUF        /*USE_BUF*/

    160. /////////////////////////////////////////////////////////////////////////////////////////////////////
    161. /////*                                以下为使用缓冲区写字画图的相关函数                                *//////
    162. //*-------------以下坐标统一为两种----------------*//
    163. /////////////////////////////////////////////////////////////////////////////////////////////////////
    164. //----------------------           x                  ------------------------//
    165.                 //0 1 2 3 4 5 ...78 79 80 81 82 83//                y = 0
    166.                 //0 1 2 3 4 5 ...78 79 80 81 82 83//                y = 1
    167.                 //0 1 2 3 4 5 ...78 79 80 81 82 83//                y = 2
    168.                 //                                                        .
    169.                 //                                                        .
    170.                 //                                                        .
    171.                 //0 1 2 3 4 5 ...78 79 80 81 82 83//                y = 45
    172.                 //0 1 2 3 4 5 ...78 79 80 81 82 83//                y = 46
    173.                 //0 1 2 3 4 5 ...78 79 80 81 82 83//                y = 47
    174. //--------------------------------------------------------//
    175. //-------------------          row                  ------------------------//
    176.                 //0 1 2 3 4 5 ...78 79 80 81 82 83//                column = 0
    177.                 //0 1 2 3 4 5 ...78 79 80 81 82 83//                column = 1
    178.                 //0 1 2 3 4 5 ...78 79 80 81 82 83//                column = 2
    179.                 //0 1 2 3 4 5 ...78 79 80 81 82 83//                column = 3
    180.                 //0 1 2 3 4 5 ...78 79 80 81 82 83//                column = 4
    181.                 //0 1 2 3 4 5 ...78 79 80 81 82 83//                column = 5
    182. //------------------------------------------------------//

    183. ///////*------------------------------------------*////////
    184. //*********                                以下为刷新,清除等基本操作函数                        *********//
    185. ///////*------------------------------------------*////////

    186. /*-----设置缓冲区指针坐标-------*/
    187. void SetBufPtr(u8 x,u8 y);
    188. /*----将整个缓冲区刷新到5110上-----*/
    189. void RefreshAll(void);
    190. /*-------将缓冲区指定区域刷新到5110对应区域-------*/
    191. void Refresh(u8 x,u8 y,u8 width,u8 height);
    192. /*------清空整个缓冲区-------*/
    193. void ClearAllBuf(void);
    194. /*------清空整个缓冲区并刷新5110------*/
    195. void BufClearAll(void);
    196. /*-------清空缓冲区指定区域-------*/
    197. void ClearBuf(u8 x,u8 y,u8 width,u8 height);
    198. /*-------清空缓冲区指定区域并刷新------*/
    199. void BufClear(u8 x,u8 y,u8 width,u8 height);

    200. ///////*------------------------------------------*////////
    201. //*********                                以下为写字符,汉字函数                                *********//
    202. ///////*------------------------------------------*////////


    203. //******        以下字符高度均为8              ******//

    204. /*-------写一个ASCII字符(6*8)到缓冲区(不需要坐标,紧跟上个字符)--------*/
    205. void WriteChartoBuf(u8 value);
    206. /*--------通过缓冲区写一个ASCII字符(6*8)到5110(不需要坐标,紧跟上个字符)--------*/
    207. void BufWriteChar(u8 value);
    208. /*----写一个ASCII字符(6*8)到缓冲区-----*/
    209. void PutChartoBuf(u8 value,u8 x,u8 y);
    210. /*----通过缓冲区写一个ASCII字符(6*8)到5110-----*/
    211. void BufPutChar(u8 value,u8 x,u8 y);
    212. /*------写一个字符串(高度8)到缓冲区(不需要坐标,紧跟上个字符)-----*/
    213. u8 WriteStrtoBuf(char * str);
    214. /*----通过缓冲区写一个字符串(高度8)到5110(不需要坐标,紧跟上个字符)----*/
    215. u8 BufWriteStr(char * str);
    216. /*-----写一个字符串(高度8)到缓冲区------*/
    217. u8 PutStrtoBuf(char * str,u8 x,u8 y);
    218. /*------通过缓冲区写一个字符串(高度8)到5110------*/
    219. u8 BufPutStr(char * str,u8 x,u8 y);

    220. //*******        以下字符汉字高度均为16          ********//

    221. /*------写一个ASCII字符(8*16)到缓冲区------*/
    222. void PutWideChartoBuf(u8 value,u8 x,u8 y);
    223. /*----通过缓冲区写一个ASCII字符(8*16)到5110------*/
    224. void BufPutWideChar(u8 value,u8 x,u8 y);
    225. /*-----写一个字符串(高度16)到缓冲区------*/
    226. u8 PutWideStrtoBuf(char * str,u8 x,u8 y);
    227. /*------通过缓冲区写字符串(高度16)到5110------*/
    228. u8 BufPutWideStr(char *str,u8 x,u8 y);
    229. /*-----写一个汉字(16*16)到缓冲区------*/
    230. void PutHanzitoBuf(char Hanzi[],u8 x,u8 y);
    231. /*-----通过缓冲区写一个汉字(16*16)到5110-------*/
    232. void BufPutHanzi(char Hanzi[],u8 x,u8 y);
    233. /*-------写一串汉字(高度16)到缓冲区(num为汉字个数)-------*/
    234. u8 PutHanziStrtoBuf(char Hanzi[],u8 x,u8 y,u8 num);
    235. /*-----通过缓冲区写一串汉字(高度16)到5110(num为汉字个数)------*/
    236. u8 BufPutHanziStr(char Hanzi[],u8 x,u8 y,u8 num);

    237. //*********    以下为画点,线,折线,矩形,圆,bmp图片函数      *********//

    238. /*------画一个点到缓冲区-------*/
    239. void PutPointtoBuf(u8 x,u8 y);
    240. /*------通过缓冲区画一个点到5110------*/
    241. void PutPoint(u8 x,u8 y);
    242. /*------画一条线到缓冲区--------*/               
    243. void PutLinetoBuf(u8 x1,u8 y1,u8 x2,u8 y2);
    244. /*-----通过缓冲区画一条线到5110-------*/       
    245. void PutLine(u8 x1,u8 y1,u8 x2,u8 y2);
    246. /*--画折线到缓冲区(p为折线各个节点,line_num为折线的线段数目)--*/
    247. void PutPolylinetoBuf(point *p,u8 line_num);
    248. /*--通过缓冲区画折线到5110(p为折线各个节点,line_num为折线的线段数目)--*/
    249. void PutPolyline(point *p,u8 line_num);
    250. /*---------画矩形到缓冲区--------*/
    251. void PutRecttoBuf(u8 x,u8 y,u8 width,u8 height);
    252. /*--------通过缓冲区画矩形到5110--------*/
    253. void PutRect(u8 x,u8 y,u8 width,u8 height);
    254. /*--------画圆到缓冲区--------*/
    255. void PutCircletoBuf(u8 center_x,u8 center_y,u8 r);
    256. /*--------通过缓冲区画圆到5110--------*/
    257. void PutCircle(u8 center_x,u8 center_y,u8 r);
    258. /*----画一个图片到缓冲区-----*/
    259. void DrawBmptoBuf(char bitmap[],u8 x,u8 y,u8 width,u8 height);
    260. /*-----通过缓冲区画一个图片到5110------*/
    261. void BufDrawBmp(char bitmap[],u8 x,u8 y,u8 width,u8 height);

    262. #endif /*USE_BUF*/

    263. #endif /*LCD5110_H*/
    复制代码
    下面是产生这四个图的主函数,看下很容易就知道函数的使用方法:
    1. #include "stm32f0xx.h"
    2. #include "LCD5110.h"

    3. extern u8 lcd_buf[LCD_X][LCD_Y];

    4. int main(void)
    5. {
    6.         u16 i;
    7.         point p[4];       
    8.        
    9.         p[0].x = 41;
    10.         p[0].y = 1;
    11.         p[1].x = 80;
    12.         p[1].y = 30;
    13.         p[2].x = 49;
    14.         p[2].y = 40;
    15.         p[3].x = 41;
    16.         p[3].y = 1;
    17.        
    18.         InitLcd();

    19. lab:
    20.        
    21. /*-------不使用buf画图和写字,速度最快,省内存----------------*/
    22.         for(i = 0;i < 6;i++)
    23.                 PutIcon((char*)(icon + i),i,0);
    24.         SetXY(13,0);
    25.         for(i = 0;i < 7;i++)
    26.                 WriteIcon((char*)(icon + 15 + i));
    27.         PutHanziStr((char*)Hanzi,2,15,4);
    28.         PutStr("oh my god",2,3);
    29.        
    30.         Delayms(2000);
    31.         BufClearAll();

    32. /*--------使用buf画图和写字(每一次操作自动刷新,速度最慢)----------*/
    33.         BufDrawBmp((char *)girl,0,0,45,48);
    34.         BufPutStr("hello",47,5);
    35.         BufPutStr("ming",49,15);
    36.         PutRect(42,3,40,22);
    37.         BufPutHanzi((char *)(Hanzi+4*32),44,30);
    38.         BufPutHanzi((char *)(Hanzi+4*32),60,30);
    39.         BufPutWideChar('!',76,30);
    40.                
    41.         Delayms(2000);
    42.         BufClearAll();
    43.        
    44. /*--------使用buf画图和写字(全部画完后一次性手动刷新,速度较快)----------*/
    45.         DrawBmptoBuf((char *)(icon+16),62,37,10,8);
    46.         DrawBmptoBuf((char *)(icon+16),22,25,10,8);
    47.         DrawBmptoBuf((char *)(icon+17),55,18,10,8);
    48.         DrawBmptoBuf((char *)(icon+17),12,36,10,8);
    49.         PutCircletoBuf(3,20,1);
    50.         PutCircletoBuf(8,20,2);
    51.         PutCircletoBuf(30,20,18);
    52.         PutLinetoBuf(4,2,44,43);
    53.         PutLinetoBuf(68,16,50,38);
    54.         PutPolylinetoBuf(p,3);
    55.         PutRecttoBuf(0,33,28,12);
    56.         PutStrtoBuf("ming",0,8);
    57.         RefreshAll();
    58.                
    59.         Delayms(2000);
    60.         BufClearAll();
    61.        
    62. /*---------混合使用buf函数和不用buf函数----------------*/
    63.         BufDrawBmp((char*)SFEFlameBubble,0,0,84,48);
    64.         PutStr("ming",2,1);
    65.         BufClear(30,8,5,3);
    66.        
    67.         Delayms(2000);
    68.         BufClearAll();
    69.        
    70.         goto lab;
    71. }
    复制代码
    最后是整个工程,里面还有完整的6*8、8*16的ASCII字符库,大量的符号和图片库。
    stm32 Nokia 5110液晶屏画点、画线、画矩形、画圆.zip (574.7 KB, 下载次数: 412)
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2016-12-20 15:08
  • 签到天数: 510 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2012-10-12 22:53:43 | 显示全部楼层
    wyzamazon 发表于 2012-10-12 22:35
    不错  顶起

    呵呵,希望多多提建议,好进一步完善
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-11-4 19:13
  • 签到天数: 281 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2012-10-12 23:40:55 | 显示全部楼层
    很好啊,这个真不错,注释很全。收藏起来,有时间试试
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2016-12-20 15:08
  • 签到天数: 510 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2012-10-13 00:09:06 | 显示全部楼层
    小鸟愤怒 发表于 2012-10-12 23:40
    很好啊,这个真不错,注释很全。收藏起来,有时间试试

    注释是自己花了蛮久写的,应该是比较全了,不过算法的具体原理就应该先了解下才看得懂
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-11-4 08:32
  • 签到天数: 773 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2012-10-13 20:06:50 | 显示全部楼层
    很好啊,这个真不错
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-8-25 12:42
  • 签到天数: 692 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2012-10-13 21:23:35 | 显示全部楼层
    楼主在这上面应该花了不少时间,呵呵,这个对于液晶屏操作的初学者来说是非常珍贵的资料,感谢楼主的无私奉献!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2016-12-20 15:08
  • 签到天数: 510 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2012-10-13 22:50:42 | 显示全部楼层
    fengye5340 发表于 2012-10-13 21:23
    楼主在这上面应该花了不少时间,呵呵,这个对于液晶屏操作的初学者来说是非常珍贵的资料,感谢楼主的无私奉 ...

    是花了不少时间,去年用nios实现了写字和画图,但因为没有用buf画不了线,圆,今年有了个stm32,学习的同时扩展了功能
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2016-12-20 15:08
  • 签到天数: 510 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2012-10-13 22:52:23 | 显示全部楼层
    powerdruy 发表于 2012-10-13 22:49
    楼主近期一直在玩这个吧,看出来挺费心思的

    是啊,接下来准备做成一个示波器
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-8-25 12:42
  • 签到天数: 692 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2012-10-14 16:10:13 | 显示全部楼层
    涉及的东西确实不少啊,期待楼主的分享!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2014-8-19 19:33
  • 签到天数: 67 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2014-6-6 21:59:09 | 显示全部楼层
    good job
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-5-29 19:35 , Processed in 0.203306 second(s), 33 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.