搜索
bottom↓
回复: 82

花里挑花—最终挑中了CVI

  [复制链接]

出0入0汤圆

发表于 2013-10-22 02:40:15 | 显示全部楼层 |阅读模式
所谓的花里挑花,也即一直选型的——上位机软件开发,从VB到VC++,在到C++Builder,在到QT,再到LabView等等,最后选中了CVI(LabWindows/CVI),感觉良好,所以大家都懂得。因为是刚开始,所以好多知识点可能还做的不到位,望各位高手别拍砖,而是多多指教,先谢。

由于自己爱好和出书的缘故,必须的搞定上位机的开发,所以先来个2小时的成果,望能和大家共勉。

                                           说明:界面有点丑,没夜月狼丑,望包涵哈!



先介绍一下,所谓下位机是MGMC-V1.0实验板,核心器件:单片机+LM75A温度传感器,实时采集当前温度,并通过串口打印到PC机上,最后结合自己编写的上位机软件,演示效果如上,说明此时温度也不高(18.125)啊。其实自己也想睡在被窝里,可是既然选择了这条路,没有退路,所以必须得搞起,呵呵。。。

最后来上整个上位机的源码,该源码自己当然能理解,也会写,但是还没真正吃透,因为才学了2个小时嘛,所以望理解,不过相信自己很快就能搞定,之后再给大家详细的注释和说明,若喜欢请等待,若不喜欢,请轻轻的走开,不要带走一点点“孤独”,也不要留下一丝丝“恶意”。

/* =============================================================== */

#include <rs232.h>
#include <ansi_c.h>
#include "sample5.h"

static int panelHandle;
int ComSelect=0;
int status;
char info[513]; // 字符型数组,用于存放发送、接收的字符串

int CVIFUNC DimObject(int stat) //设置页面控件状态,stat=0表示串口关闭,1串口打开
{
    SetCtrlAttribute(panelHandle,PANEL_COMSELECT,ATTR_DIMMED ,stat);
    SetCtrlAttribute(panelHandle,PANEL_BTLSELECT,ATTR_DIMMED ,stat);
    SetCtrlAttribute(panelHandle,PANEL_JYSELECT,ATTR_DIMMED ,stat);
    SetCtrlAttribute(panelHandle,PANEL_LONGSELECT,ATTR_DIMMED ,stat);
    SetCtrlAttribute(panelHandle,PANEL_STOPSELECT,ATTR_DIMMED ,stat);  
    SetCtrlAttribute(panelHandle,PANEL_OPEN_COM,ATTR_DIMMED ,stat);
    SetCtrlAttribute(panelHandle,PANEL_CLOSE_COM,ATTR_DIMMED ,!stat);
    SetCtrlAttribute(panelHandle,PANEL_SEND,ATTR_DIMMED ,!stat);
    SetCtrlAttribute(panelHandle,PANEL_CLEARSEND,ATTR_DIMMED ,!stat);
    SetCtrlAttribute(panelHandle,PANEL_RECIEVE,ATTR_DIMMED ,!stat);
    SetCtrlAttribute(panelHandle,PANEL_CLEARRECIVE,ATTR_DIMMED ,!stat);
    return 0;
}

int main (int argc, char *argv[])
{
    if (InitCVIRTE (0, argv, 0) == 0)
        return -1;  
    if ((panelHandle = LoadPanel (0, "sample5.uir", PANEL)) < 0)
        return -1;
    DimObject(0);
    DisplayPanel (panelHandle);
    RunUserInterface ();
    return 0;
}
/* **********************************************
* 发送数据函数(回调函数)
********************************************** */
int CVICALLBACK Send (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
    switch (event)
    {
        case EVENT_COMMIT:
            if(!ComSelect) return -1;
            GetCtrlVal(PANEL,PANEL_SENDTEXT,info);   // 从发送文本框中获取发送信息文本,并存于info数组中
            status=ComWrt(ComSelect,info,strlen(info)); // 向串口ComSelect发送数组info中的字符串,并返回字节数!
            if(status != strlen(info))
                MessagePopup("错误","Send data failed!");   // 如果发送的与发送框中的字符不相等,则弹出错误对话框
        break;
    }
    return 0;
}

int CVICALLBACK Recieve (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
    switch (event)
    {
        case EVENT_COMMIT:
            if(!ComSelect) return -1;
            SetComTime(ComSelect,1.0);
            status=ComRd (ComSelect,info,GetInQLen(ComSelect));  //接收
            if(status<=0)
            {
                MessagePopup("错误","Read data failed!");
                break;
            }
            //将接收信息写入文本框
            info[status]='\0';
            SetCtrlVal(PANEL,PANEL_RECIVETEXT,info);
            //SetActiveCtrl(PANEL,PANEL_RECIVETEXT); // 考虑中!
        break;
    }
    return 0;
}

int CVICALLBACK Quit (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
    switch (event)
    {
        case EVENT_COMMIT:
            if(ComSelect)
            {
                CloseCom(ComSelect);
                ComSelect=0;
                DimObject(0);
            }
            QuitUserInterface (0);
        break;
    }
    return 0;
}

int CVICALLBACK ComOpen (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
    int comValue,btlValue,jhValue,longValue,stopValue;
    switch (event)
    {
        case EVENT_COMMIT:
            GetCtrlVal(PANEL,PANEL_COMSELECT,&comValue);     //选择串口
            GetCtrlVal(PANEL,PANEL_BTLSELECT,&btlValue);          //选择波特率
            GetCtrlVal(PANEL,PANEL_JYSELECT,&jhValue);              //选择奇偶校验
            GetCtrlVal(PANEL,PANEL_LONGSELECT,&longValue);  //选择数据位
            GetCtrlVal(PANEL,PANEL_STOPSELECT,&stopValue);   //选择停止位
            //设置和打开串口
            status=OpenComConfig(comValue,"",btlValue,jhValue,
                longValue,stopValue,512,512);
            if(status!=0)
            {
                MessagePopup("Error","config failed!");
                return 0;
            }
            SetCTSMode(comValue,LWRS_HWHANDSHAKE_OFF);
            FlushInQ(comValue);             //清空输入和输出缓冲区
            FlushOutQ(comValue);
            ComSelect=comValue;
            DimObject(1);
            break;
    }
    return 0;
}

int CVICALLBACK ComClose (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
    switch (event)
    {
        case EVENT_COMMIT:
            CloseCom(ComSelect);
            ComSelect=0;
            DimObject(0);
            break;
    }
    return 0;
}

int CVICALLBACK ClearTextBox (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
    switch (event)
    {
        case EVENT_COMMIT:
            if(control==PANEL_CLEARRECIVE)
                ResetTextBox(PANEL,PANEL_RECIVETEXT,"\0");//清空接收文本框
            else
                ResetTextBox(PANEL,PANEL_SENDTEXT,"\0");//清空发送文本框      
            break;
    }
    return 0;
}
演示完毕,一点“滚蛋”和一把实验板电源开关,上位机软件、实验板、自己统统睡觉,因为时间不早了啊(午夜2:40),大家都累了,晚安、好梦。。。

本帖子中包含更多资源

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

x

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

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2013-10-22 07:08:54 | 显示全部楼层
CVI还是很好用的。

出0入0汤圆

发表于 2013-10-22 08:06:20 来自手机 | 显示全部楼层
花钱买的核心底层库当然不错了。

出0入0汤圆

发表于 2013-10-22 08:18:23 | 显示全部楼层
界面显示中文,但没见程序里定义有中文,怎么做到的?

出0入0汤圆

发表于 2013-10-22 08:33:21 | 显示全部楼层
我正准备Qt+Python

出0入0汤圆

发表于 2013-10-22 09:23:50 | 显示全部楼层
Firman 发表于 2013-10-22 08:18
界面显示中文,但没见程序里定义有中文,怎么做到的?

控件的名称可以设置成中文。程序里调用的是空间的ID

出0入0汤圆

发表于 2013-10-22 09:26:03 | 显示全部楼层
又发现好东西了~

出0入0汤圆

发表于 2013-10-22 09:30:36 | 显示全部楼层
做东西很快,可惜NI对他的支持不是很好啊。。

出0入90汤圆

发表于 2013-10-22 10:23:35 | 显示全部楼层
也在挑上位机,能不能共享一下和谐版的?

出0入0汤圆

发表于 2013-10-22 10:24:44 | 显示全部楼层
CVI上手快,做出漂亮界面比较容易,比较适合电工(像我这样的懒人,总是不想去研究C++,C#,等等)。
补充:主要是很容易拿出东东!

出0入0汤圆

发表于 2013-10-22 11:02:14 | 显示全部楼层
用了CVI3年多了,对于熟悉c的人来说非常好用

出0入0汤圆

发表于 2013-10-22 11:46:50 | 显示全部楼层
leey 发表于 2013-10-22 09:23
控件的名称可以设置成中文。程序里调用的是空间的ID

"当前温度"总要在程序里定义吧?没看到哦.

出0入0汤圆

发表于 2013-10-22 12:41:23 | 显示全部楼层
这个不错,不过 一直在用labview 用好了 也是一样

出0入55汤圆

发表于 2013-10-22 12:46:54 | 显示全部楼层
界面?我觉得可以用hge,二维游戏引擎。还有各种效果,动画。哈

出0入0汤圆

发表于 2013-10-22 13:01:44 | 显示全部楼层
cvi不错的 呵呵 特别是算法之类的有现成的

出0入296汤圆

发表于 2013-10-22 16:15:14 | 显示全部楼层
非常感谢分享!!!我看前面说用过CVI的人很多,有没有谁可以拿出自己的
界面出来炫耀下的?

出0入0汤圆

发表于 2013-10-22 17:02:22 | 显示全部楼层
aammoo 发表于 2013-10-22 10:23
也在挑上位机,能不能共享一下和谐版的?

同求和谐版

出0入4汤圆

发表于 2013-10-22 18:34:17 | 显示全部楼层
发布的时候要不要安装和授权的? labview好像每一台客户程序电脑都要licence。

出0入0汤圆

发表于 2013-10-22 18:39:33 | 显示全部楼层
我还是老老实实的用vc吧,熟悉了在搞个c#,然后,两者结合,呵呵

出0入0汤圆

发表于 2013-10-22 20:17:11 | 显示全部楼层
界面太丑。和VC6不用第三方做出来差不多。和C#比,太丑了。

出0入98汤圆

发表于 2013-10-22 20:37:25 | 显示全部楼层
和Labview有什么区别?

特别想知道

出0入0汤圆

发表于 2013-10-22 20:52:17 | 显示全部楼层
我传一些自己找到的用CVI做的界面吧,自己做的实在太丑拿不出手

出0入0汤圆

发表于 2013-10-22 20:54:00 | 显示全部楼层

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2013-10-22 20:55:26 | 显示全部楼层
图片均来自网络。那个播放器界面据说是用CVI做的,不过我不是很相信,确实很漂亮、

出0入0汤圆

发表于 2013-10-22 21:02:06 | 显示全部楼层

自己学着做了一个串口小助手,只实现了基本的功能,没有什么实用价值。

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2013-10-22 21:02:39 | 显示全部楼层

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2013-10-22 21:09:42 | 显示全部楼层
aammoo 发表于 2013-10-22 10:23
也在挑上位机,能不能共享一下和谐版的?

可以啊,完了我共享,给你地址,呵呵

出0入98汤圆

发表于 2013-10-22 21:13:15 | 显示全部楼层
leey 发表于 2013-10-22 20:55
图片均来自网络。那个播放器界面据说是用CVI做的,不过我不是很相信,确实很漂亮、 ...

请问怎么知道这个是用CVI做的 而不是labview直接生成的EXE文件呢?

出0入0汤圆

发表于 2013-10-22 21:16:32 | 显示全部楼层
本帖最后由 leey 于 2013-10-22 21:21 编辑
rclong 发表于 2013-10-22 21:13
请问怎么知道这个是用CVI做的 而不是labview直接生成的EXE文件呢?


是有几个labview的界面,不过labview能做出来的效果CVI一样也可以。其中有些配色效果我还专门尝试了下,确实可以做出来。

出0入0汤圆

发表于 2013-10-24 10:50:37 | 显示全部楼层
在用C#,缺点就是不能到处移植。好处多啊,微软就是好用。

出0入4汤圆

发表于 2013-10-24 12:45:01 | 显示全部楼层
C#就是 弄的有点麻烦,。net 3.5很多xp sp3下不能够安装做出来都么发运行,还是老实用vc6了

出0入0汤圆

发表于 2013-10-24 12:59:50 | 显示全部楼层
容易整的开发工具,一般都有个缺点……编译出来的东西要么很庞大,要么比较难让客户直接使用……
比较头疼那些C#,.net的“作品”,一双击安装就提示需要xxx版本的framework,搞得我的电脑现在都有5个版本的.net framework了,眼睁睁看着C盘从一开始装好系统和EDA工具的6G膨胀到现在的38G……

不知这个CVI编译出来的exe文件体积如何?能否拷贝到一台只装有干净XP的电脑直接运行?

出0入0汤圆

发表于 2013-10-24 13:39:50 | 显示全部楼层
CVI的串口不知道怎样?响应速度快吗?
LABVIEW串口太慢,100ms才响应过。
我用VC6,20MS.不停通讯,9600,没任何问题。
LABVIEW,间隔短,串口通讯不行。

一台电脑带50个设备,通过RS232.LABVIEW感觉太慢了。

出0入147汤圆

发表于 2013-10-24 13:45:00 | 显示全部楼层
奉送一个NI全系列全版本软件序列号生成及激活器,试了各版本Labview,MultiSim,CVI都能完美激活。

本帖子中包含更多资源

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

x

出0入147汤圆

发表于 2013-10-24 13:47:54 | 显示全部楼层
hqgboy 发表于 2013-10-24 13:39
CVI的串口不知道怎样?响应速度快吗?
LABVIEW串口太慢,100ms才响应过。
我用VC6,20MS.不停通讯,9600, ...

一直在用Labview做串口上位机,没有这个问题啊,即使是115200波特率也能实时接收,不过就是占用内存比较大,在做数组操作时需要注意,不然时间长容易卡死。

出0入14汤圆

发表于 2013-10-24 13:50:30 | 显示全部楼层
dreampet 发表于 2013-10-24 13:45
奉送一个NI全系列全版本软件序列号生成及激活器,试了各版本Labview,MultiSim,CVI都能完美激活。
...

thnaks 正好可以试试NI的LABVIEW

出0入0汤圆

发表于 2013-10-24 16:47:26 | 显示全部楼层
dreampet 发表于 2013-10-24 13:47
一直在用Labview做串口上位机,没有这个问题啊,即使是115200波特率也能实时接收,不过就是占用内存比较 ...

115200 .你试试每20ms,通讯一次,字节长度20个字节。。。

出0入0汤圆

发表于 2013-10-24 16:49:17 | 显示全部楼层
dreampet 发表于 2013-10-24 13:47
一直在用Labview做串口上位机,没有这个问题啊,即使是115200波特率也能实时接收,不过就是占用内存比较 ...

你找个板子,连上串口。
PC用LABVIEW编的串口程序,设定20ms发送一次,每次20个字节。。。
可以试试,是否能处理过?

出0入147汤圆

发表于 2013-10-24 21:48:47 | 显示全部楼层
hqgboy 发表于 2013-10-24 16:49
你找个板子,连上串口。
PC用LABVIEW编的串口程序,设定20ms发送一次,每次20个字节。。。
可以试试,是 ...

你提出这个看起来很极端的问题,只能说明你对LabVIEW的应用还处在把数据流都放在一个while循环里面的阶段,如果你对LabVIEW的队列、信号量、事件等特性有所了解,能画出多个while循环协同工作的程序框图的话,就不会有这种困扰了

出0入0汤圆

发表于 2013-10-25 08:24:35 | 显示全部楼层
dreampet 发表于 2013-10-24 21:48
你提出这个看起来很极端的问题,只能说明你对LabVIEW的应用还处在把数据流都放在一个while循环里面的阶段 ...

呵呵。也许你说的对。
我不知道你用的串口是否通讯很频繁?
不过你可以试试。
看看结果。

出0入0汤圆

发表于 2013-10-25 09:21:14 来自手机 | 显示全部楼层
hqgboy 发表于 2013-10-25 08:24
呵呵。也许你说的对。
我不知道你用的串口是否通讯很频繁?
不过你可以试试。

不用试,这个不是编程语言的问题而是运用的问题。

出0入0汤圆

发表于 2013-10-25 10:06:45 | 显示全部楼层
ddqq 发表于 2013-10-25 09:21
不用试,这个不是编程语言的问题而是运用的问题。

好的,多谢。

出0入0汤圆

发表于 2013-10-25 10:22:22 | 显示全部楼层
有cvi资料的论坛比较少,http://www.vihome.com.cn/bbs/算是比较大的了,学习资料也比较多,就是更新很少,这里面有软件下载

出0入0汤圆

发表于 2013-10-25 10:25:32 | 显示全部楼层
mhw 发表于 2013-10-24 12:59
容易整的开发工具,一般都有个缺点……编译出来的东西要么很庞大,要么比较难让客户直接使用……
比较头疼 ...

cvi编译的软件不是很大,应该说还是很小的(也需是我的程序太简单了),可以直接拷贝使用的,当然需要同时拷贝运行库!
运行库的需要与你的程序使用了那些有关,就是全带上也不到,20,30M的样子!

出0入0汤圆

发表于 2013-10-25 10:33:43 | 显示全部楼层
jackielau 发表于 2013-10-25 10:25
cvi编译的软件不是很大,应该说还是很小的(也需是我的程序太简单了),可以直接拷贝使用的,当然需要同 ...

看来还是VC好很多……
普通小工具之类的几十到几百KB(编译使用共享DLL,如果是静态库体积会大一些),绿色文件,拷贝到别人的电脑就能用
(其实也是需要运行库支持的,但是windows已经自带了)

出0入0汤圆

发表于 2013-10-29 11:04:25 | 显示全部楼层
mhw 发表于 2013-10-25 10:33
看来还是VC好很多……
普通小工具之类的几十到几百KB(编译使用共享DLL,如果是静态库体积会大一些),绿 ...

windows自带有好处也有坏处,有的计算机库不全,问出问题
如果自带好了,再说现在几十M的东西不算大了,以前用软盘的时候几百K就不小了

出0入0汤圆

发表于 2013-10-29 11:12:18 | 显示全部楼层
电工学C#很容易的,先了解其核心思维,再找几个出名的软件包学一下,基本可以入门

出0入4汤圆

发表于 2013-10-29 12:44:08 | 显示全部楼层
LABVIEW CVI KEY

出0入0汤圆

发表于 2013-11-30 00:18:50 | 显示全部楼层
bailao99 发表于 2013-10-22 10:24
CVI上手快,做出漂亮界面比较容易,比较适合电工(像我这样的懒人,总是不想去研究C++,C#,等等)。
补充: ...

做界面很容易?刚刚用半天,上手容易。但还是觉得界面不好做。

出0入0汤圆

发表于 2013-11-30 09:32:33 | 显示全部楼层
能不能推荐个cvi入门实例,了解下。

出0入0汤圆

发表于 2013-11-30 11:06:06 | 显示全部楼层
tragedy 发表于 2013-11-30 00:18
做界面很容易?刚刚用半天,上手容易。但还是觉得界面不好做。

教程还是要过一遍的,最近做了个测试治具的界面,还有一个stm32 usb HID的上位机软件,比较快,不过资料较少,深入做可能会有麻烦

出0入17汤圆

发表于 2013-11-30 11:16:34 | 显示全部楼层
mark!备用!

出0入0汤圆

发表于 2013-11-30 12:38:41 | 显示全部楼层

python是正解。

出110入109汤圆

发表于 2013-11-30 13:25:38 | 显示全部楼层
顶一个。界面好花,Labview做出来的,都是类似的?

出0入0汤圆

发表于 2013-11-30 13:30:39 | 显示全部楼层
这玩意随便选一个搞搞就OK了,没啥好选的,都那样

出0入0汤圆

 楼主| 发表于 2013-12-19 00:18:24 | 显示全部楼层
看了大家都很感兴趣啊,呵呵

出0入0汤圆

发表于 2014-1-7 12:38:41 | 显示全部楼层
mark,正准备学呢

出0入224汤圆

发表于 2014-1-7 12:43:22 | 显示全部楼层
Firman 发表于 2013-10-22 11:46
"当前温度"总要在程序里定义吧?没看到哦.

串口接收也是可以的嘛...

出0入0汤圆

发表于 2014-5-23 15:07:05 | 显示全部楼层

我只想说,真TMD漂亮

出0入0汤圆

发表于 2014-9-26 17:49:12 | 显示全部楼层
mark,正准备学

出0入0汤圆

发表于 2014-9-26 19:45:29 | 显示全部楼层
07年接触,用过几年,发现功能很受限

出0入0汤圆

发表于 2014-9-26 20:41:58 | 显示全部楼层
好东西呀

出30入0汤圆

发表于 2014-9-28 22:34:55 | 显示全部楼层
2个小时就能弄到这样,非常非常的厉害了

出0入0汤圆

发表于 2014-9-30 10:11:03 | 显示全部楼层
CVI 做的界面不好看。

出0入0汤圆

发表于 2014-9-30 13:10:39 | 显示全部楼层
楼主的界面好黄啊,呵呵                       

出0入0汤圆

发表于 2014-9-30 15:42:04 | 显示全部楼层
这个不错

出0入0汤圆

发表于 2014-9-30 18:27:00 | 显示全部楼层
厉害,加油

出0入0汤圆

发表于 2014-9-30 19:26:30 | 显示全部楼层
CVI挺好用的 ,用过一阵子。现在改用gcc了

出0入0汤圆

发表于 2014-10-1 22:08:22 | 显示全部楼层
收藏一下

出0入0汤圆

发表于 2014-10-1 22:19:30 | 显示全部楼层
那几张网络图片,真不错。
不知道用啥控件的。

出0入0汤圆

发表于 2014-10-2 09:15:58 | 显示全部楼层
不懂CVI

出50入8汤圆

发表于 2014-10-3 10:47:17 | 显示全部楼层
mhw 发表于 2013-10-25 10:33
看来还是VC好很多……
普通小工具之类的几十到几百KB(编译使用共享DLL,如果是静态库体积会大一些),绿 ...

要这样比的话把DLL体积一起算才公平

出0入0汤圆

发表于 2015-8-21 17:23:46 | 显示全部楼层
CVI确实不错的

出0入0汤圆

发表于 2015-8-21 20:41:31 | 显示全部楼层
用过一阵,后来荒废了。。。

出0入0汤圆

发表于 2015-8-21 20:53:17 | 显示全部楼层
不错了,收藏了

出0入0汤圆

 楼主| 发表于 2015-9-2 09:57:33 | 显示全部楼层
yick 发表于 2015-8-21 20:53
不错了,收藏了

出0入0汤圆

发表于 2015-9-2 10:23:29 | 显示全部楼层
CVI挺强大的   不过NI不怎么推  可能是利益关系吧  主推labview

出0入0汤圆

发表于 2015-9-6 13:10:31 | 显示全部楼层
之前也花了很多时间在这上面,我感觉还是不错的,不过如果 NI 能开源出来的话,用的人会多起来的吧。

出0入0汤圆

发表于 2015-9-28 15:39:03 | 显示全部楼层
mhw 发表于 2013-10-24 12:59
容易整的开发工具,一般都有个缺点……编译出来的东西要么很庞大,要么比较难让客户直接使用……
比较头疼 ...

可以只装  .net4.5呀,都是向后兼容的

出0入0汤圆

发表于 2016-6-4 08:15:57 | 显示全部楼层
现在哪个版本的cvi好用呢

出0入0汤圆

发表于 2017-3-24 17:09:33 | 显示全部楼层
好东西,谢谢。。。。。

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-3-29 20:53

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

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