极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: apachectl

Arduino只用一根信号线驱动Usart-GPU串口液晶屏

[复制链接]
 楼主| 发表于 2014-9-29 14:55:54 | 显示全部楼层
hubertdong 发表于 2014-9-28 18:59
我买的是2.8寸的,试了一下,画横线400个点,不能正常工作,不知何故?

串口屏是需要经过封装的,串口本身速度不快,封装后显示会很快,比如,在哪显示一串汉字,这个就很快;用串口控制画点就很慢,串口屏接收数据也有缓存区,并不能无限制的发,缓冲区1K,也就是说,发送1K以内的命令就必须带一个0d 0a,让命令执行,超过了1K,命令失效;
整体来说,不经过封装,直接画点的话,不如直接却动TFT屏,没必要过串口
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-29 14:56:37 | 显示全部楼层
本帖最后由 apachectl 于 2014-9-29 14:58 编辑
hubertdong 发表于 2014-9-28 21:06
有时发出的命令没有执行,如:CLS(0);


需要足够的延时,一般200~300ms, 发送的命令可以很长,1K以内,都不需要0d 0a ,最后来个0d 0a ,一下就执行了,这样速度又快,延时又小;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-29 15:01:32 | 显示全部楼层
Super169 发表于 2014-9-28 21:10
唔該哂, 我都明白將頁面分成固定同變化更新既部份, 可以減少每次要更新既部份.

但係如果有個 monitor, ...

我明白了,基本上可以理解为,调试使用;
确实有vfd 以及  OLED的固定字符屏这么整,TFT的少.....
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-29 15:07:42 | 显示全部楼层
hubertdong 发表于 2014-9-28 21:07
为了方便,我构建了一个类似C语言的画图语句,如:
void line1(int x0,int y0,int x1,int y1,int c)
{    ...


问题是没有,不过说起来,这样用还不如直接驱动TFT,最右println() 时,需要加延时,这样封装成函数会导致显示慢,须作整体协调,参见:

http://pan.baidu.com/share/link?shareid=2710107915&uk=3204894695


这里面的程序,看如何绘制的吧
回复 支持 反对

使用道具 举报

发表于 2014-9-29 16:32:58 | 显示全部楼层
我在用呢,我选来选去,还是这款屏幕最贴心   
回复 支持 反对

使用道具 举报

发表于 2014-9-29 17:23:14 | 显示全部楼层
刚刚看到 LZ 说 "新版本在内测...", 正想问问是否会有 SDK 之类的资料, 让我可以自行开发所需的功能.

回到淘宝购买的网页, 找不到有关资料, 但看到一个 UsartGpu焊接文档.docx, 下载回来看看, 吓了一跳.

请问在网上卖到的, 是已焊接好的, 还是要跟 说明的做, 自行焊接?

如果要自行焊接的话, 我的一片肯定要报销了.  以下的排线, 我肯定搅不好.


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-30 13:26:41 | 显示全部楼层
Super169 发表于 2014-9-29 17:23
刚刚看到 LZ 说 "新版本在内测...", 正想问问是否会有 SDK 之类的资料, 让我可以自行开发所需的功能.

回 ...

早期产品内测时出了一批散件,现在都是成熟产品,全部成品,经过全面检测的
回复 支持 反对

使用道具 举报

发表于 2014-10-2 18:40:46 | 显示全部楼层
一个画X、Y轴对数坐标程序,请批评指正!
[pre lang="arduino" line="1" file="画对数坐标"]
//画线函数
void line1(int x0,int y0,int x1,int y1,int c)
{   Serial.print("PL(");
    Serial.print(x0);Serial.print(",");
    Serial.print(y0);Serial.print(",");
    Serial.print(x1);Serial.print(",");
    Serial.print(y1);Serial.print(",");
    Serial.print(c);
    Serial.print(");");
}
//画X、Y对数坐标
void H_xy()
{       int i,j,k,lk;
        int y0,y1,kx,ky;
        int qx=25,R_x=385,qy=0,bottom_y=220,H_y;
  
        ky=3;
        kx=4;
        lk=(R_x-qx)/kx;
        H_y=(bottom_y-qy)/ky;
  for(i=0;i<=kx;i++)  line1(qx+lk*i,qy,qx+lk*i,bottom_y,7);
  for(i=0;i<ky;i++) {
             for(j=1;j<=10;j++){
                y1=bottom_y-(i+log10(j))*H_y;
                line1(qx,y1,R_x,y1,7);
               }
               }
  for(i=0;i<ky;i++){ y1=bottom_y-i*H_y; line1(qx,y1,R_x,y1,4);  }
  delay(200);

  Serial.println();
  Serial.print("DS16(10,210,'1',15);");
  Serial.print("DS16(5,140,'10',15);");
delay(300);
  Serial.print("DS16(0,65,'100',15);");
  Serial.print("DS16(5,0,'1k',15);");
}
[/code]
回复 支持 反对

使用道具 举报

发表于 2014-10-2 18:42:53 | 显示全部楼层
我觉得有点不简洁,请高手指点!
回复 支持 反对

使用道具 举报

发表于 2014-10-4 02:07:07 | 显示全部楼层
因为中港通关问题, 由於没使用顺丰的关系, 9 月 16 日买的东西, 今天晚上终於拿到手了.

板子有点小家, 连接的针脚没焊上, 亦没有开孔, 直接焊到手指上去, 感觉不太安全...
就连那不值钱的针脚也没送, 如果手上没针脚的话, 真的大问题了.

焊好後测试,想看看版本资料....SN:I5CA34E9E FN:1C14 RC:400X240 V0.9b B0713
再到网上看 ( http://stm32.sinaapp.com/gpu.html ), 2014-08-05 发布了 V1.0b 的版本才支援 2400,4800,9600,19200,38400,57600,115200,256000 的串口波特率.
我是 9 月 16 日买的, 为何还是旧的版本?
一买回来就要刷了, 有点不爽......  刷机後, 变成了 SN:I5CA34E9E FN:1C14 RC:400X240 V1.0a B0805

简单测试了一会, 速度上真的不错, 比我现在用的 TFT 快得多, 但就要重新自建一个库去简化操作了.  
而且, 价钱也价贵了不少, 如果价格可以回落30%左右, 相信更加吸引.

另一个问题是 GpuMaker 虽然有个英文名字, 但还是简体的...我又要出乱码了, 用了 AppLocale 也不行.
没法了, 在国内买东西, 这点要接受的.  未知是否有全英文的版本?  如果有的话, 就太好了.

另一个大问题, 是更改字型的问题, 亦是我想问的问题.  
因为我主要是用英文数字及符号就够了, 但原本的字库, DS24 或以上的并不齐全.
当我尝试更改某个字型後, 如果再生成一次, 就会把所有字型再抽样一次.
由於某些字型在我的电脑中没有, 结果变成四方砖了.  而且, 中文字的部份, 因为内码不同, 24或以上的全变了.
结果, 就连示范的画面也出错了.

请问是否有方法只更新某一个行的字型呢?
回复 支持 反对

使用道具 举报

发表于 2014-10-7 10:33:14 | 显示全部楼层
用DS18B20测温、显示程序:
#include "DS18B20_S.h"
#include"d:\ccc\arduino1\Udemo\hz1.c"
//DS18B20(byte pin)  连接管脚
//传感器设定为10位模式,每次转换时间<187.5ms,如果需要12位模式,请修改库文件of ds.set(0x7F);
DS18B20_S  ds(9);//pin9
void setup() {
  Serial.begin(115200);
   while (!Serial) {  }
        Serial.println("CLS(0);");
       delay(200);
}
void loop() {
  ds.start();//开始测量(所有传感器)
  delay(200);//2根线连接模式
  float a=ds.get();
  if(a>200){ //CRC 校验错误
   // Serial.println("CRC error");
     Serial.println("");
           }
  else{  
    //Serial.println(a);  
    Serial.print("SBC(1);");
    Serial.print("DS48(7,100,'");Serial.print(hz[5]);Serial.print("',4);");   
    Serial.print("DS48(125,100,'");Serial.print(a,2);Serial.print("',4);");
    Serial.print("DS48(245,100,'");Serial.print(hz[6]);Serial.println("',4);");
  delay(300);   
  }
}
回复 支持 反对

使用道具 举报

发表于 2014-10-7 10:59:59 | 显示全部楼层
用DS18B20测温,显示

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2014-10-7 11:01:06 | 显示全部楼层
电池电压测量用的LTC2400,未贴上来。
回复 支持 反对

使用道具 举报

发表于 2014-10-7 23:31:09 | 显示全部楼层
hubertdong 发表于 2014-10-7 11:01
电池电压测量用的LTC2400,未贴上来。

请还是把电池的程序贴上来吧,学习下,谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-8 13:11:49 | 显示全部楼层
本帖最后由 apachectl 于 2014-10-8 13:14 编辑
Super169 发表于 2014-10-4 02:07
因为中港通关问题, 由於没使用顺丰的关系, 9 月 16 日买的东西, 今天晚上终於拿到手了.

板子有点小家, 连 ...


生产周期很长,烧写程序和MEM需要几天,PCB生产需要2周,贴片厂排队2周,回来焊屏,测试,粘,测试,装袋;生产也需要1~2周,因此程序写入肯定是老版本的,版本更新速度肯定比生产快;
用于产品,量大的话,价格肯定比零售低,这个价格肯定有竞争力;
内码和英文字体问题,由于设计只考虑的中国大陆方面的GB2312,因此海外习惯会有些问题,将来海外用户多了,可以扩展方案或出海外专用版
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 05:29 , Processed in 0.044308 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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