搜索
bottom↓
回复: 348

STM32直接驱动3.5寸 320*480高分屏 通过FATFS读取SD卡TXT文档和BMP32/24/16位图(源码

  [复制链接]

出0入0汤圆

发表于 2010-8-19 00:29:18 | 显示全部楼层 |阅读模式
源码工程 版本IAR5.3:

源码工程 版本IAR5.3ourdev_576004.rar(文件大小:1.61M) (原文件名:STM32驱动9481读取BMP和TXT.rar)

存放于SD卡的320X480高清图片,有美女哦~!

320X480高清图片,有美女哦~!ourdev_576005.rar(文件大小:5.16M) (原文件名:320X480.rar)
/****************************************************************************************************

演示功能:1.通过FATFS文件系统方式读取SD卡上的.TXT格式小说内容,显示于320*480高清TFT上  
          2.通过FATFS文件系统方式读取SD卡上的.BMP格式图片显示于TFT,简易数码相框。  

/****************************************************************************************************/

其中的 SD卡操作函数,BMP解码函数,如果做这块的网友未解决的话可以下载源码来参考一下。

代码使用如有问题,可以联系我~呵呵!


/*************************************************无图无真相,上清晰图片,呵呵~!***************************************************/

OUR DEV欢迎您~!支持开源~! (原文件名:nEO_IMG_nEO_IMG_3.jpg)


(原文件名:nEO_IMG_nEO_IMG_4.jpg)


读取SD上的小说文件显示,高分屏非常精细~! (原文件名:nEO_IMG_nEO_IMG_8.jpg)


超薄TFT展示,漂亮~! (原文件名:nEO_IMG_nEO_IMG_2.jpg)


有美女哦,呵呵~! (原文件名:nEO_IMG_nEO_IMG_14.jpg)


(原文件名:nEO_IMG_nEO_IMG_17.jpg)


(原文件名:nEO_IMG_nEO_IMG_12.jpg)


(原文件名:nEO_IMG_nEO_IMG_13.jpg)


(原文件名:nEO_IMG_nEO_IMG_16.jpg)


(原文件名:nEO_IMG_nEO_IMG_11.jpg)


(原文件名:nEO_IMG_nEO_IMG_5.jpg)


小广告,请支持,呵呵~! (原文件名:nEO_IMG_nEO_IMG_18.jpg)





/*****************************************************************************************************************************/


这款3.5寸高分屏TFT 及相关说明资料原帖有介绍:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4194737&bbs_page_no=1&bbs_id=9999



其中的 SD卡操作函数,BMP解码函数,如果做这块的网友未解决的话可以下载源码来参考一下。

代码使用如有问题,可以联系我~呵呵!

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2010-8-19 00:37:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-19 02:25:51 | 显示全部楼层
好看好看
半夜来顶顶

出0入0汤圆

发表于 2010-8-19 05:55:14 | 显示全部楼层
不错啊。

出0入0汤圆

发表于 2010-8-19 07:10:16 | 显示全部楼层
此乃好帖!

出0入0汤圆

发表于 2010-8-19 07:27:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-19 16:00:05 | 显示全部楼层
顶顶

出0入0汤圆

发表于 2010-8-19 17:31:05 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-19 18:11:45 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-19 19:00:41 | 显示全部楼层
顶啊

出0入0汤圆

发表于 2010-8-19 19:05:27 | 显示全部楼层
有人能修改成FSMC 驱动的吗  ???

出0入0汤圆

发表于 2010-8-19 19:34:00 | 显示全部楼层

出0入0汤圆

发表于 2010-8-19 19:34:02 | 显示全部楼层
太攒劲了.

出0入0汤圆

发表于 2010-8-19 20:53:10 | 显示全部楼层
mark mark

出0入0汤圆

发表于 2010-8-19 20:56:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-19 21:05:55 | 显示全部楼层
关心刷屏速度

出0入0汤圆

 楼主| 发表于 2010-8-19 21:27:28 | 显示全部楼层
回复【15楼】msdy
-----------------------------------------------------------------------

刷屏速度慢,呵呵。SD读取一张500K左右的图片从屏幕顶部显示至底部大概需要2S,不知道大家觉得这个速度怎样。
受制于SD读取速度和TFT数据传输速度。

正考虑换MCU  带FSMC总线的才是王道啊~!

出0入0汤圆

 楼主| 发表于 2010-8-19 21:31:38 | 显示全部楼层
庆祝一下,终于拿Cool了,哈哈~!
谢谢啊莫,谢谢论坛,我会继续努力~!
支持开源,支持阿莫~!

出0入0汤圆

发表于 2010-8-19 21:39:56 | 显示全部楼层
不知道这个屏的背光led 每个的推荐电流值是多少啊? 怕高了影响寿命。

出0入0汤圆

发表于 2010-8-19 22:32:47 | 显示全部楼层

出0入0汤圆

发表于 2010-8-19 23:22:59 | 显示全部楼层
我用ZNFAT实现了TXT格式的小说阅读,但是当小说里有数字或字母是便会出错,请问高手怎么处理这个。

出0入0汤圆

发表于 2010-8-19 23:29:17 | 显示全部楼层
记号,很不错的范例,以后会用到谢谢分享

出0入0汤圆

发表于 2010-8-19 23:39:50 | 显示全部楼层
谢谢分享

出0入0汤圆

 楼主| 发表于 2010-8-19 23:46:58 | 显示全部楼层
回复【20楼】chenao
我用znfat实现了txt格式的小说阅读,但是当小说里有数字或字母是便会出错,请问高手怎么处理这个。
-----------------------------------------------------------------------

你用的函数应该是只对中文做了处理,而数字和字母的处理与中文有所不同哦,如果是显示乱码的话就应该是这个问题了;
还有显示小说要注意一下字符越界问题,没作处理的话有些字符可能显示在行末成了半字,
这些处理代码上面的参考程序都有处理的,不过代码写得比较粗糙,我不是专门搞技术的,也是初学,还请见谅,呵呵~!

出0入0汤圆

 楼主| 发表于 2010-8-19 23:54:21 | 显示全部楼层
单片机制作电子书上下翻页功能的实现--------思路(来源网上)


电子书要用到滚屏,我在写lcd底层驱动的时候就开始研究ili9325如何能实现滚屏,可惜ili9325的0x6a这个寄存器和0x61寄存器所描述的滚屏 只能实现一次滚,第2次滚的的时候就失效了,再把滚屏禁止 原来的数据又回来了,弄了好久 滚屏这块我还是没弄懂。最后我只能每次翻一页,每次重新刷数据。还有一个问题是这样的,翻页问题。因为一个文档里可以有英文、汉字、特殊符号(ascii里 小于32的那些)这样一屏显示多少数据是不固定的,有可能是540 也有可能是530 或者更少,所以每次翻页文件指针移动的多少都不固定。向下翻页的时候很简单,只要记录上一屏给lcd上显示了几个数据,然后下翻的时候只要把文件指针向后移动多少就行了。但向上翻页时怎么办?必须要知道 上上一屏的数据是从哪个文件指针开始读的,这就要做记录。我开了一个20 长度的unsigned long型数据来存储当然这只能支持向上翻18页,其实这块完全可以根据要读的txt文档的大小来计算出最坏情况下需要的数据长度,然后用malloc动态分配出这么长的内存单元来做记录(这要保证 启动代码里分配了足够大的heap,因为malloc申请的内存来源于堆)。




/******************************************************************************************************************/
这个思路很不错的,后续需要添加功能的朋友可以按这个思路试试,
还有,
不要忘了完成后发帖跟大家分享一下哦,呵呵~!

出0入0汤圆

发表于 2010-8-20 01:47:27 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-20 10:25:35 | 显示全部楼层
回复【23楼】fq1888

回复【20楼】chenao  
我用znfat实现了txt格式的小说阅读,但是当小说里有数字或字母是便会出错,请问高手怎么处理这个。
-----------------------------------------------------------------------
你用的函数应该是只对中文做了处理,而数字和字母的处理与中文有所不同哦,如果是显示乱码的话就应该是这个问题了;
还有显示小说要注意一下字符越界问题,没作处理的话有些字符可能显示在行末成了半字,
这些处理代码上面的参考程序都有处理的,不过代码写得比较粗糙,我不是专门搞技术的,也是初学,还请见谅,呵呵~!
-----------------------------------------------------------------------



楼主你用的ILI9481 的 手册能传上来吗?

你的液晶初始化部分 E4  F3  F7  F0  这些命令哪里的?
我在ILI9481手册里怎么没看到这些命令??

出0入0汤圆

 楼主| 发表于 2010-8-20 10:57:43 | 显示全部楼层
回复【26楼】RENMA
-----------------------------------------------------------------------

手册都是一样的,并非我用的和给大家所用的有所不同。
液晶初始化部分 E4  F3  F7  F0  这些命令是多余部分,可删除不影响使用的。

出0入0汤圆

发表于 2010-8-20 11:42:38 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-20 13:07:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-20 13:10:10 | 显示全部楼层
回复【16楼】fq1888
回复【15楼】msdy  
-----------------------------------------------------------------------
刷屏速度慢,呵呵。sd读取一张500k左右的图片从屏幕顶部显示至底部大概需要2s,不知道大家觉得这个速度怎样。
受制于sd读取速度和tft数据传输速度。
正考虑换mcu  带fsmc总线的才是王道啊~!
-----------------------------------------------------------------------

FCMS驱动失败了

出0入0汤圆

发表于 2010-8-20 13:10:31 | 显示全部楼层
回复【16楼】fq1888
回复【15楼】msdy  
-----------------------------------------------------------------------
刷屏速度慢,呵呵。sd读取一张500k左右的图片从屏幕顶部显示至底部大概需要2s,不知道大家觉得这个速度怎样。
受制于sd读取速度和tft数据传输速度。
正考虑换mcu  带fsmc总线的才是王道啊~!
-----------------------------------------------------------------------

FCMS驱动失败了

出0入0汤圆

发表于 2010-8-20 15:36:41 | 显示全部楼层
回复【20楼】chenao  
-----------------------------------------------------------------------

20楼的兄弟 你用的znfat 怎么移植 我的是STM32F103ZET6的板子 我用znfat试了好多次编译不出错了 就是不能运行 不出结果,我想看看你是怎么写的 我以发一份给我吗 互相学习 我的邮箱gzm0391@163.com 后来我用bozi的移植 现在可以读取bmp上面的图片了

出0入0汤圆

发表于 2010-8-20 15:43:12 | 显示全部楼层
有用FSMC驱动成功的吗?

我这里驱动不成功

出0入0汤圆

 楼主| 发表于 2010-8-20 15:53:25 | 显示全部楼层
回复【32楼】gzm0391
-----------------------------------------------------------------------

直接移植FATFS 更快更高效,呵呵。文件系统我没研究,直接移植一下就可以使用了,网上也有很多教程~!

出0入0汤圆

发表于 2010-8-20 16:25:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-20 23:43:25 | 显示全部楼层
向高手请教:在读取sd卡中的txt文件时,读不出空隔,用WINHEX软件查看多个空隔也只占两个字节

出0入0汤圆

发表于 2010-8-20 23:45:19 | 显示全部楼层
向高手请教:在读取sd卡中的txt文件时,读不出空隔,用WINHEX软件查看,多个空隔也只占两个字节,怎样写空隔出来?

出0入0汤圆

 楼主| 发表于 2010-8-20 23:56:42 | 显示全部楼层
回复【37楼】chenao
向高手请教:在读取sd卡中的txt文件时,读不出空隔,用winhex软件查看,多个空隔也只占两个字节,怎样写空隔出来?
-----------------------------------------------------------------------

是不是程序中把空格当做换行符、回车符处理掉了?

出0入0汤圆

发表于 2010-8-21 05:57:04 | 显示全部楼层
FSMC驱动很简单,设置好端口地址后,只要像读写RAM一样一样操作就可以了,用了你就不想再用软件模拟了

出0入0汤圆

发表于 2010-8-21 08:34:09 | 显示全部楼层
好东西

出0入0汤圆

发表于 2010-8-21 08:45:01 | 显示全部楼层
回复【39楼】njchenmin
fsmc驱动很简单,设置好端口地址后,只要像读写ram一样一样操作就可以了,用了你就不想再用软件模拟了
-----------------------------------------------------------------------

你用FSMC驱动这个成功了?

出0入0汤圆

发表于 2010-8-21 10:11:24 | 显示全部楼层
楼主是个好人

出0入0汤圆

 楼主| 发表于 2010-8-21 11:15:34 | 显示全部楼层
回复【41楼】RENMA
-----------------------------------------------------------------------

回复【41楼】RENMA
回复【39楼】njchenmin  
fsmc驱动很简单,设置好端口地址后,只要像读写ram一样一样操作就可以了,用了你就不想再用软件模拟了
-----------------------------------------------------------------------
你用fsmc驱动这个成功了?  
-----------------------------------------------------------------------

搞好FSMC总线驱动的朋友可以发程序分享一下,方便大家,呵呵~!

出0入0汤圆

发表于 2010-8-21 11:25:46 | 显示全部楼层
回复【43楼】fq1888
回复【41楼】renma  
-----------------------------------------------------------------------
回复【41楼】renma  
回复【39楼】njchenmin   
fsmc驱动很简单,设置好端口地址后,只要像读写ram一样一样操作就可以了,用了你就不想再用软件模拟了  
-----------------------------------------------------------------------  
你用fsmc驱动这个成功了?   
-----------------------------------------------------------------------
搞好fsmc总线驱动的朋友可以发程序分享一下,方便大家,呵呵~!
-----------------------------------------------------------------------

我用FSMC总线驱动的时候,清屏只显示一条短线,不明白为什么

出0入0汤圆

发表于 2010-8-21 11:26:42 | 显示全部楼层
重启后,每次短线的长度还不一致


。。。。崩溃

搞一天了

出0入0汤圆

 楼主| 发表于 2010-8-21 15:33:53 | 显示全部楼层
回复【45楼】Mini_mimi
-----------------------------------------------------------------------

论坛里有个朋友说怀疑FSMC总线速度太快了,屏速度跟不上,后证实与屏无关。尝试初始化后加个延时看看。

出0入0汤圆

发表于 2010-8-21 15:57:32 | 显示全部楼层
楼主,我想请教个问题:用fsmc驱动tft(SPFD5420A),快速单色刷屏的时候有明显的斜线,这个到底是什么原因呢?这个问题困扰了我很久,不知道该怎么解决,还望不吝赐教。

出0入0汤圆

发表于 2010-8-21 16:05:57 | 显示全部楼层
我使用了两种驱动器HX8347和ILI9325 用103VET6   A16脚接RS信号,为了提高速度,能用宏就用宏,
我觉得驱动器都差不多,只要底层驱动对了就行,驱动如下:

lcddev.h
#ifndef __LCDDEV_H__
#define __LCDDEV_H__

#define HX8347  1        
#define LCD_REG        ((vu16*)0x60000000)
#define LCD_RAM        ((vu16*)0x60020000)      //A16接到RS输出

/* LCD Control pins */
#define CtrlPin_NCS    GPIO_Pin_2   /* PB.02 */
#define CtrlPin_RS     GPIO_Pin_7   /* PD.07 */
#define CtrlPin_NWR    GPIO_Pin_15  /* PD.15 */

#define Lcd_LightPin   GPIO_Pin_0   /* PB.00 */
#define nRstPin        GPIO_Pin_1   /* PB.01 */
#define RsPin          GPIO_Pin_11  /* PD.11 */

/* LCD color */
#define White          0xFFFF
#define Black          0x0000
#define Grey           0xF7DE
#define Blue           0x001F
#define Blue2          0x051F
#define Red            0xF800
#define Magenta        0xF81F
#define Green          0x07E0
#define Cyan           0x7FFF
#define Yellow         0xFFE0

/* Exported macro ------------------------------------------------------------*/

#define Lcd_Light_ON   (*((volatile unsigned long *) 0x40010C14) = Lcd_LightPin) //输出低时背光LED亮
#define Lcd_Light_OFF  (*((volatile unsigned long *) 0x40010C10) = Lcd_LightPin)

#define LCD_RST_1 (*((volatile unsigned long *) 0x40010C10) |= nRstPin)  //Set_Rst
#define LCD_RST_0 (*((volatile unsigned long *) 0x40010C14) |= nRstPin)   //Clr_Rst


#define LCD_WriteCMD(idat) *LCD_REG = idat
#define LCD_WriteRAM(idat) *LCD_RAM = idat
//#define LCD_ReadRAM() {*LCD_REG = 0x0022; return (*LCD_RAM);}
#define LCD_WriteRAM_Prepare()  *LCD_REG = 0x0022
#define LCD_WriteReg(iadd,idata) {*LCD_REG = iadd;*LCD_RAM = idata;}
//#define LCD_ReadReg(iadd) {*LCD_REG = iadd;  return (vu16)(*LCD_RAM);}
#ifndef HX8347
#define LCD_SetCursor(Xpos,Ypos) {LCD_WriteReg(0x0020, Xpos);LCD_WriteReg(0x0021, Ypos);}
#endif
#define lcd_write_point(x,y,irgb) {LCD_SetCursor(x,y);LCD_WriteCMD(0x0022);LCD_WriteRAM(irgb);}

void LCD_CtrlLinesConfig(void);
void LCD_FSMCConfig(void);
u16 LCD_ReadReg(u8 iadd);
u16 LCD_ReadRAM(void);
u16 lcd_read_point(u16 x, u16 y);
void lcd_init(void);
void LCD_SetCursor(unsigned int x1,unsigned int y1);
/*
void LCD_WriteCMD(u8 idat);
void LCD_WriteReg(u8 iadd, u16 idat);
void LCD_WriteRAM_Prepare(void);
void LCD_WriteRAM(u16 idat);
void LCD_SetCursor(u16 Xpos, u16 Ypos);
void lcd_write_point(u16 x, u16 y, u16 irgb);
*/

#endif


lcddev.c
#include "stm32f10x_lib.h"
#include "lcddev.h"
#include "LCDConf.h"


/*******************************************************************************
* Function Name  : LCD_CtrlLinesConfig
* Description    : Configures LCD Control lines (FSMC Pins) in alternate function
                   Push-Pull mode.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void LCD_CtrlLinesConfig(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;

  /* Enable FSMC, GPIOD, GPIOE, GPIOF, GPIOG and AFIO clocks */
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
                         RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |
                         RCC_APB2Periph_GPIOE |
                         RCC_APB2Periph_AFIO, ENABLE);

  /* Set PD.00(D2), PD.01(D3), PD.04(NOE), PD.05(NWE), PD.08(D13), PD.09(D14),
     PD.10(D15), PD.14(D0), PD.15(D1) as alternate  (增加PD.07 作为NE1  PD.11  作为 RS)
     function push pull */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7 |
                                GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_14 | GPIO_Pin_11 |       //
                                GPIO_Pin_15;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOD, &GPIO_InitStructure);

  /* Set PE.07(D4), PE.08(D5), PE.09(D6), PE.10(D7), PE.11(D8), PE.12(D9), PE.13(D10),
     PE.14(D11), PE.15(D12) as alternate function push pull */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 |
                                GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 |
                                GPIO_Pin_15;
  GPIO_Init(GPIOE, &GPIO_InitStructure);

  /* Set PB.00(EN_LED) EN_LED =0 LIGHT BACKLED,PB.01(LCD_RES) */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
  
}

/*******************************************************************************
* Function Name  : LCD_FSMCConfig
* Description    : Configures the Parallel interface (FSMC) for LCD(Parallel mode)
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void LCD_FSMCConfig(void)
{
  FSMC_NORSRAMInitTypeDef  FSMC_NORSRAMInitStructure;
  FSMC_NORSRAMTimingInitTypeDef  p;

/*-- FSMC Configuration ------------------------------------------------------*/
  /* FSMC_Bank1_NORSRAM1 timing configuration */
  p.FSMC_AddressSetupTime = 1;
  p.FSMC_AddressHoldTime = 0;
  p.FSMC_DataSetupTime = 5;     //(5为参考值) (试过3一样稳定) 此处只会减少一些送数据的时间,但可能会有数据出错的可能,至今未发现
  p.FSMC_BusTurnAroundDuration = 0;
  p.FSMC_CLKDivision = 0;
  p.FSMC_DataLatency = 0;
  p.FSMC_AccessMode = FSMC_AccessMode_B;    //FSMC_AccessMode_B

  /* FSMC_Bank1_NORSRAM1 configured as follows:
        - Data/Address MUX = Disable
        - Memory Type = SRAM
        - Data Width = 16bit
        - Write Operation = Enable
        - Extended Mode = Disable
        - Asynchronous Wait = Disable */
  FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
  FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
  FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;
  FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
  FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
  FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
  FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
  FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
  FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
  FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
  FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
  FSMC_NORSRAMInitStructure.FSMC_AsyncWait = FSMC_AsyncWait_Disable;
  FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
  FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
  FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;

  FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);  

  /* Enable FSMC_Bank1_NORSRAM1 */
  FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);
}

u16 LCD_ReadReg(u8 iadd)
{
  *LCD_REG = iadd;
  return (*LCD_RAM);
}

u16 LCD_ReadRAM(void)
{       
        *LCD_REG = 0x0022;
    return (*LCD_RAM);
}

u16 lcd_read_point(u16 x, u16 y)
{
  LCD_SetCursor(x,y);
  return (LCD_ReadReg(0x0022));
}

void lcd_fill(u16 x, u16 y, u16 x_wide, u16 y_height, u16 srgb)
{
       
        u32 index = 0;
  
    LCD_SetCursor(0x00, 0x00); //y_heightx_wide

    LCD_WriteRAM_Prepare();

    for(index = 0; index < x_wide*y_height/2; index++)  //分开写供测试写点的方式
    {
      *LCD_RAM = srgb;
    }
    for(index = 0; index < x_wide*y_height/2; index++)
    {
      *LCD_RAM = srgb;
    }
}

#ifndef  HX8347

void lcd_init()
{
        u16 temp=0,i;
       
/* Configure the LCD Control pins --------------------------------------------*/
  LCD_CtrlLinesConfig();

/* Configure the FSMC Parallel interface -------------------------------------*/
  LCD_FSMCConfig();
  
  Lcd_Light_OFF;
  LCD_RST_1;
  for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
  LCD_RST_0;
  for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
  //Delay(50); /* delay 500 ms */
  LCD_RST_1;
  for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
  //Delay(5); /* delay 50 ms */

  //while(1){
/* Start Initial Sequence ----------------------------------------------------*/
  LCD_WriteReg(0x00E5,  0x78f0); /* Set the internal vcore voltage */
  temp = LCD_ReadReg(0xE5);
  LCD_WriteReg(0x0000,  0x0001); /* Start internal OSC. */
  temp = LCD_ReadReg(0);
  LCD_WriteReg(0x0001,  0x0100); /* set SS and SM bit */
  LCD_WriteReg(0x0002,  0x0700); /* set 1 line inversion */
  LCD_WriteReg(0x0003,  0x1030); /* set GRAM write direction and BGR=1. */
  temp = LCD_ReadReg(3);
  LCD_WriteReg(0x0004,  0x0000); /* Resize register */
  LCD_WriteReg(0x0008,  0x0207); /* set the back porch and front porch */
  LCD_WriteReg(0x0009,  0x0000); /* set non-display area refresh cycle ISC[3:0] */
  LCD_WriteReg(0x000A, 0x0000); /* FMARK function */
  LCD_WriteReg(0x000C, 0x0000); /* RGB interface setting */
  LCD_WriteReg(0x000D, 0x0000); /* Frame marker Position */
  LCD_WriteReg(0x000F, 0x0000); /* RGB interface polarity */
  for(i=50000;i>0;i--);for(i=50000;i>0;i--);
  //Delayus(1);
  //}
/* Power On sequence ---------------------------------------------------------*/
  LCD_WriteReg(0x0010, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
  LCD_WriteReg(0x0011, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */
  LCD_WriteReg(0x0012, 0x0000); /* VREG1OUT voltage */
  LCD_WriteReg(0x0013, 0x0000); /* VDV[4:0] for VCOM amplitude */
  LCD_WriteReg(0x0007, 0x0001);  //*********
  for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
  for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
  //Delay(20);                 /* Dis-charge capacitor power voltage (200ms) */
  LCD_WriteReg(0x0010, 0x1090); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
  LCD_WriteReg(0x0011, 0x0227); /* DC1[2:0], DC0[2:0], VC[2:0] */
  for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
  //Delay(5);                  /* Delay 50 ms */
  LCD_WriteReg(0x0012, 0x001f); /* VREG1OUT voltage */
  for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
  //Delay(5);                  /* Delay 50 ms */
  LCD_WriteReg(0x0013, 0x1500); /* VDV[4:0] for VCOM amplitude */
  LCD_WriteReg(0x0029, 0x0027); /* VCM[4:0] for VCOMH */
  LCD_WriteReg(0x002B, 0x000d);
  for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
  //Delay(5);                  /* Delay 50 ms */
  LCD_WriteReg(0x0020, 0x0000); /* GRAM horizontal Address */
  LCD_WriteReg(0x0021, 0x0000); /* GRAM Vertical Address */

/* Adjust the Gamma Curve ----------------------------------------------------*/
  LCD_WriteReg(0x0030, 0x0000);
  LCD_WriteReg(0x0031, 0x0707);
  LCD_WriteReg(0x0032, 0x0307);
  LCD_WriteReg(0x0035, 0x0200);
  LCD_WriteReg(0x0036, 0x0008);
  LCD_WriteReg(0x0037, 0x0004);
  LCD_WriteReg(0x0038, 0x0000);
  LCD_WriteReg(0x0039, 0x0707);
  LCD_WriteReg(0x003C, 0x0002);
  LCD_WriteReg(0x003D, 0x1d04);
  
/* Set GRAM area -------------------------------------------------------------*/
  LCD_WriteReg(0x0050, 0x0000); /* Horizontal GRAM Start Address */
  LCD_WriteReg(0x0051, 0x00EF); /* Horizontal GRAM End Address */
  LCD_WriteReg(0x0052, 0x0000); /* Vertical GRAM Start Address */
  LCD_WriteReg(0x0053, 0x013f); /* Vertical GRAM End Address */

  LCD_WriteReg(0x0060, 0xa700); /* Gate Scan Line */
  LCD_WriteReg(0x0061, 0x0001); /* NDL,VLE, REV  此处设置默认为0 此时背景BLACK 这背景为白色 */
  LCD_WriteReg(0x006A, 0x0000); /* set scrolling line */

/* Partial Display Control ---------------------------------------------------*/
  LCD_WriteReg(0x0080, 0x0000);
  LCD_WriteReg(0x0081, 0x0000);
  LCD_WriteReg(0x0082, 0x0000);
  LCD_WriteReg(0x0083, 0x0000);
  LCD_WriteReg(0x0084, 0x0000);
  LCD_WriteReg(0x0085, 0x0000);

/* Panel Control -------------------------------------------------------------*/
  LCD_WriteReg(0x0090, 0x0010);
  LCD_WriteReg(0x0092, 0x0600);
  LCD_WriteReg(0x0093, 0x0003);
  LCD_WriteReg(0x0095, 0x0110);
  LCD_WriteReg(0x0097, 0x0000);
  LCD_WriteReg(0x0098, 0x0000);

  /* Set GRAM write direction and BGR = 1 */
  /* I/D=01 (Horizontal : increment, Vertical : decrement) */
  /* AM=1 (address is updated in vertical writing direction) */
  LCD_WriteReg(0x0003, 0x1030); //0x1018

  LCD_WriteReg(0x0007, 0x0133); /* 262K color and display ON */  
  
  temp++;
  
  Lcd_Light_ON;
       
        //clear
  lcd_fill(0, 0, LCD_XSIZE, LCD_YSIZE, Green);
}

#else

void LCD_SetCursor(unsigned int x1,unsigned int y1)
{
        //LCD_WriteReg(0x0002,x1>>8);           // Column address start2
        LCD_WriteReg(0x0003,x1);           // Column address start1
        //LCD_WriteReg(0x0004,0);           // Column address end2
        //LCD_WriteReg(0x0005,0XEF);           // Column address end1
        LCD_WriteReg(0x0006,y1>>8);           // Row address start2
        LCD_WriteReg(0x0007,y1);           // Row address start1
    //LCD_WriteReg(0x0008,1);           // Row address end2
        //LCD_WriteReg(0x0009,0X3F);           // Row address end1
    //LCD_WriteCMD(0x0022);                 

}

void lcd_init()
{
        u16 temp=0,i;
       
/* Configure the LCD Control pins --------------------------------------------*/
  LCD_CtrlLinesConfig();

/* Configure the FSMC Parallel interface -------------------------------------*/
  LCD_FSMCConfig();
  
  Lcd_Light_OFF;
  LCD_RST_1;
  for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
  LCD_RST_0;
  for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
  //Delay(50); /* delay 500 ms */
  LCD_RST_1;
  for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
  //Delay(5); /* delay 50 ms */

  //while(1){
   //  VENDOR   
        LCD_WriteReg(0x0046,0x00A4);
        LCD_WriteReg(0x0047,0x0053);
        LCD_WriteReg(0x0048,0x0000);
        LCD_WriteReg(0x0049,0x0044);
        LCD_WriteReg(0x004a,0x0004);
        LCD_WriteReg(0x004b,0x0067);
        LCD_WriteReg(0x004c,0x0033);
        LCD_WriteReg(0x004d,0x0077);
        LCD_WriteReg(0x004e,0x0012);
        LCD_WriteReg(0x004f,0x004C);
        LCD_WriteReg(0x0050,0x0046);
        LCD_WriteReg(0x0051,0x0044);
          
          //240x320 window setting
    LCD_WriteReg(0x0002,0x0000); // Column address start2
        LCD_WriteReg(0x0003,0x0000); // Column address start1
        LCD_WriteReg(0x0004,0x0000); // Column address end2
        LCD_WriteReg(0x0005,0x00ef); // Column address end1
    LCD_WriteReg(0x0006,0x0000); // Row address start2
        LCD_WriteReg(0x0007,0x0000); // Row address start1
        LCD_WriteReg(0x0008,0x0001); // Row address end2
        LCD_WriteReg(0x0009,0x003f); // Row address end1
  
  // Display Setting
        LCD_WriteReg(0x0001,0x0006); // IDMON=0, INVON=1, NORON=1, PTLON=0
        LCD_WriteReg(0x0016,0x00C8); // MY=0, MX=0, MV=0, ML=1, BGR=0, TEON=0   0048
        LCD_WriteReg(0x0023,0x0095); // N_DC=1001 0101
        LCD_WriteReg(0x0024,0x0095); // PI_DC=1001 0101
        LCD_WriteReg(0x0025,0x00FF); // I_DC=1111 1111
       
        LCD_WriteReg(0x0027,0x0002); // N_BP=0000 0010
        LCD_WriteReg(0x0028,0x0002); // N_FP=0000 0010
        LCD_WriteReg(0x0029,0x0002); // PI_BP=0000 0010
        LCD_WriteReg(0x002a,0x0002); // PI_FP=0000 0010
        LCD_WriteReg(0x002C,0x0002); // I_BP=0000 0010
        LCD_WriteReg(0x002d,0x0002); // I_FP=0000 0010
       
        LCD_WriteReg(0x003a,0x0001); // N_RTN=0000, N_NW=001    0001
        LCD_WriteReg(0x003b,0x0000); // P_RTN=0000, P_NW=001
        LCD_WriteReg(0x003c,0x00f0); // I_RTN=1111, I_NW=000
        LCD_WriteReg(0x003d,0x0000); // DIV=00
        for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
        LCD_WriteReg(0x0035,0x0038); // EQS=38h
        LCD_WriteReg(0x0036,0x0078); // EQP=78h
        LCD_WriteReg(0x003E,0x0038); // SON=38h
        LCD_WriteReg(0x0040,0x000F); // GDON=0Fh
        LCD_WriteReg(0x0041,0x00F0); // GDOFF
       
        // Power Supply Setting
        LCD_WriteReg(0x0019,0x0049); // CADJ=0100, CUADJ=100, OSD_EN=1 ,60Hz
        LCD_WriteReg(0x0093,0x000F); // RADJ=1111, 100%
        for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
        LCD_WriteReg(0x0020,0x0040); // BT=0100
        LCD_WriteReg(0x001D,0x0007); // VC1=111   0007
        LCD_WriteReg(0x001E,0x0000); // VC3=000
        LCD_WriteReg(0x001F,0x0004); // VRH=0011
       
        //VCOM SETTING
        LCD_WriteReg(0x0044,0x004D); // VCM=101 0000  4D
        LCD_WriteReg(0x0045,0x000E); // VDV=1 0001   0011
        for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
        LCD_WriteReg(0x001C,0x0004); // AP=100
        for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
    for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
       
        LCD_WriteReg(0x001B,0x0018); // GASENB=0, PON=0, DK=1, XDK=0, VLCD_TRI=0, STB=0
        for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
        LCD_WriteReg(0x001B,0x0010); // GASENB=0, PON=1, DK=0, XDK=0, VLCD_TRI=0, STB=0
        for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
        LCD_WriteReg(0x0043,0x0080); //set VCOMG=1
        for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
        for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
        // Display ON Setting
        LCD_WriteReg(0x0090,0x007F); // SAP=0111 1111
        LCD_WriteReg(0x0026,0x0004); //GON=0, DTE=0, D=01
        for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
        LCD_WriteReg(0x0026,0x0024); //GON=1, DTE=0, D=01
        LCD_WriteReg(0x0026,0x002C); //GON=1, DTE=0, D=11
        for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);for(i=50000;i>0;i--);
        LCD_WriteReg(0x0026,0x003C); //GON=1, DTE=1, D=11
       
        // INTERNAL REGISTER SETTING
        LCD_WriteReg(0x0057,0x0002); // TEST_Mode=1: into TEST mode
        LCD_WriteReg(0x0095,0x0001); // SET DISPLAY CLOCK AND PUMPING CLOCK TO SYNCHRONIZE
        LCD_WriteReg(0x0057,0x0000); // TEST_Mode=0: exit TEST mode
        //LCD_WriteReg(0x0021,0x0000);
        //main_Write_COM(0x0022);  
    LCD_WriteCMD(0x0022);
  /* Set GRAM write direction and BGR = 1 */
  /* I/D=01 (Horizontal : increment, Vertical : decrement) */
  /* AM=1 (address is updated in vertical writing direction) */
  //LCD_WriteReg(0x0003, 0x1030); //0x1018

  //LCD_WriteReg(0x0007, 0x0133); /* 262K color and display ON */  
  
  temp++;
  
  Lcd_Light_ON;
       
        //clear
  lcd_fill(0, 0, LCD_XSIZE, LCD_YSIZE, Blue);
}

#endif

出0入0汤圆

发表于 2010-8-21 16:13:44 | 显示全部楼层
以上的刷屏速度应该在几十毫秒,具体没测试我,周一去单位测试一下。
正在学习UCGUI,希望各位高手指教。好像国内没有什么资料可以参考,里面怎么多函数,搞得我一头雾水,不知道谁有做好的界面给我参考一下。

出0入0汤圆

 楼主| 发表于 2010-8-21 17:42:48 | 显示全部楼层
回复【49楼】njchenmin
以上的刷屏速度应该在几十毫秒,具体没测试我,周一去单位测试一下。
正在学习ucgui,希望各位高手指教。好像国内没有什么资料可以参考,里面怎么多函数,搞得我一头雾水,不知道谁有做好的界面给我参考一下。
-----------------------------------------------------------------------

网上可以找到UCGUI的使用文档啊,中文的,26章那个,呵呵。

出0入0汤圆

发表于 2010-8-21 19:40:30 | 显示全部楼层
回复【49楼】njchenmin
以上的刷屏速度应该在几十毫秒,具体没测试我,周一去单位测试一下。
正在学习ucgui,希望各位高手指教。好像国内没有什么资料可以参考,里面怎么多函数,搞得我一头雾水,不知道谁有做好的界面给我参考一下。
-----------------------------------------------------------------------

刷屏的速度如何测试的?


怎么知道一秒能刷多少屏?

出0入0汤圆

发表于 2010-8-21 20:10:10 | 显示全部楼层
这个只能用惊艳来形容。

出0入0汤圆

发表于 2010-8-21 23:05:48 | 显示全部楼层
关注!!!

出0入0汤圆

发表于 2010-8-22 08:45:52 | 显示全部楼层
用示波器看输出一整屏数据所需要的时间,每刷一次延时一段时间,用一个死循环就可以看了

网上那个ucGUI看了,还是有一些不太明白,还是再摸索一下吧。

出0入0汤圆

 楼主| 发表于 2010-8-22 16:09:58 | 显示全部楼层
回复【54楼】njchenmin
-----------------------------------------------------------------------

用示波器测,这方法不错~!

出0入0汤圆

发表于 2010-8-22 16:41:32 | 显示全部楼层
很好 做个记号。

出0入0汤圆

发表于 2010-8-23 09:34:53 | 显示全部楼层
32楼的兄弟,不知你移植成功没有,我现在用手机上的不能发送,如果你要的话我要过两天才能给你。

出0入0汤圆

 楼主| 发表于 2010-8-24 19:11:31 | 显示全部楼层
回复【57楼】chenao
32楼的兄弟,不知你移植成功没有,我现在用手机上的不能发送,如果你要的话我要过两天才能给你。
-----------------------------------------------------------------------

直接发到论坛吧,方便网友大家参考,呵呵。

支持开源~!

出0入0汤圆

发表于 2010-8-24 23:14:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-24 23:16:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-24 23:28:17 | 显示全部楼层
看起来非常不错哦

出0入0汤圆

发表于 2010-8-25 08:10:38 | 显示全部楼层
液晶似乎不错哦!

出0入0汤圆

发表于 2010-8-26 21:36:40 | 显示全部楼层
mark!
谢谢楼主!

出0入0汤圆

发表于 2010-9-1 10:47:53 | 显示全部楼层
这个屏写什么命令可以旋转变成横屏啦,现在的驱动是竖屏

出0入0汤圆

发表于 2010-9-1 11:04:15 | 显示全部楼层
不错,先记号了!

出0入0汤圆

发表于 2010-9-1 13:12:21 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-1 13:29:10 | 显示全部楼层
不错,mark

出0入0汤圆

发表于 2010-9-1 13:49:54 | 显示全部楼层
这个需要Mark下

出0入0汤圆

发表于 2010-9-2 14:05:37 | 显示全部楼层
这不是仿IPHONE界面嘛?

出0入0汤圆

 楼主| 发表于 2010-9-2 22:54:48 | 显示全部楼层
回复【69楼】huasoft
   这不是仿iphone界面嘛?
-----------------------------------------------------------------------

IPHONE手机平魔分辨率也是320*480,图片演示是仅仅一张图片,并非在跑Iphone系统,呵呵。要体现的是这片屏的高分辨率。

出0入0汤圆

 楼主| 发表于 2010-9-3 22:22:12 | 显示全部楼层
回复【64楼】lab1224
这个屏写什么命令可以旋转变成横屏啦,现在的驱动是竖屏
-----------------------------------------------------------------------

这个查看一下ILI9481驱动IC的资料就知道了,我们提供了完善的开发资料的。

出0入0汤圆

发表于 2010-9-4 18:25:23 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-4 22:51:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-6 14:22:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-10 22:35:02 | 显示全部楼层
有用C8051F单片机驱动成功的吗?可否交流下

出0入0汤圆

发表于 2010-9-10 23:17:47 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2010-9-11 20:27:23 | 显示全部楼层
回复【75楼】lyon_beihua
有用c8051f单片机驱动成功的吗?可否交流下
-----------------------------------------------------------------------

你的程序肯定是延时不对,已通过旺旺为您解决问题,呵呵。有时间的话把程序共享一下吧,方便大家~!

出0入0汤圆

发表于 2010-9-11 21:40:46 | 显示全部楼层
记号~~不错~~

出0入0汤圆

发表于 2010-9-12 10:03:27 | 显示全部楼层
能到阳光下看看效果否?
另关了背光还能用否?

出0入0汤圆

发表于 2010-9-12 11:00:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-15 10:54:44 | 显示全部楼层
mack

出0入0汤圆

发表于 2010-9-15 13:09:11 | 显示全部楼层
不错,顶一下

出0入0汤圆

发表于 2010-9-15 14:11:14 | 显示全部楼层
好贴要留名!!!

出0入0汤圆

发表于 2010-9-15 14:26:48 | 显示全部楼层
牛X!

出0入0汤圆

发表于 2010-9-15 14:53:12 | 显示全部楼层
这么好啊

出0入0汤圆

发表于 2010-9-15 16:12:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-16 00:36:51 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-16 20:28:05 | 显示全部楼层
不错不错

出0入0汤圆

发表于 2010-9-20 16:10:17 | 显示全部楼层
回复【88楼】zsw3979
-----------------------------------------------------------------------

哪位朋友找到这个配套的触摸屏了

出0入0汤圆

发表于 2010-9-26 20:49:38 | 显示全部楼层
MARK

出0入0汤圆

 楼主| 发表于 2010-10-10 09:09:33 | 显示全部楼层
回复【90楼】mick
mark
-----------------------------------------------------------------------

此款新到1000PCS,长期稳定供货。

排线比原来的款加长了一倍,更方便产品定位安装。

出0入0汤圆

发表于 2010-10-15 11:01:23 | 显示全部楼层
能配上触摸屏 就更好了啊

出0入0汤圆

发表于 2010-10-15 11:08:19 | 显示全部楼层
好东西,MARK!

出0入0汤圆

发表于 2010-10-16 10:41:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-16 12:05:32 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-16 18:20:19 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-17 21:00:50 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-17 22:20:57 | 显示全部楼层
不错,标记一下

出0入0汤圆

发表于 2010-10-18 06:00:49 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 12:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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