DataScope v1.0 特性

1、无需安装,启动即用;2、支持同时刷新多达10个通道的单精度浮点型数据;3、支持多种格式的通道数据导入、导出及回放;4、支持全屏浏览;5、支持图表数据统计、测量及缩放;6、支持蓝牙适配器;7、支持各通道独立刷新;8、支持3D轨迹显示;9、3D立方体显示;10、航空仪表;11、灵活可屏蔽的快捷键支持。

---软件下载见原网站---

准备工作

在使用时我们要先引入头文件“ #include "DataScope_DP.h" ”,这个头文件中定义了我们需要用的2个函数和一个数组,分别是:

extern unsigned char DataScope_OutPut_Buffer[];       //待发送帧数据缓冲区
void DataScope_Get_Channel_Data(float Data,unsigned char Channel); // 写通道数据至 待发送帧数据缓冲区
unsigned char DataScope_Data_Generate(unsigned char Channel_Number); //发送帧数据生成函数

库文件(v1.0)的ROM和RAM占用情况参考

 bytes of CODE memory ( At Cortex-M3 )
bytes of DATA memory ( At Cortex-M3 )

使用系统提供的库文件将会占用系统226个字节存储空间以及44个随机存储空间。

库文件说明

函数1:void DataScope_Get_Channel_Data(float Data,unsigned char Channel);

函数无返回值。

功能:将制定通道的待发送的单精度浮点数据转化为字节数据,存储在 DataScope_OutPut_Buffer[42](待发送帧数据缓冲区)

参数: Channel 单字节无符号整形,识别范围 1-10,制定本次数据的通道。

Data:单精度浮点型,传递待转换的浮点数据

函数2:DataScope_Data_Generate(unsigned char Channel_Number)

返回一个单字节无符号整形。返串口需要发送的字节数目,返回0表示本次转换失败。

功能:返回制定通道个数的要发送的帧数据,并存放至 DataScope_OutPut_Buffer。

Channel_Number:单字节无符号整形,识别范围 1-10,要发送的通道数目。

下面是软件的设置者给出的截图:

实验过程

目的:在单片机端随机生成0-20之间的数据,通过USART串口进行传输,在上位机软件(DataScope)中进行显示波形。

软件打开如图所示:

我们可以在软件的下面选择打开制定串口:这里是端口10。

我们现在重要的是程序的配置

对于随机函数,我采取的是C语言中的rand()函数,为了得到对应区间的数,我使用rand()/100000000。此处我只使用了通道1进行显示。

现在我们分析数据传输及解析的过程,整个过程分三部分:

1、数据输入:

DataScope_Get_Channel_Data( rand()/ ,  ); 

实现的是将数据写入通道,这里选择的是通道1,如果选择多个通道,可以写成如下形式:

DataScope_Get_Channel_Data( 1.0 ,  );  //将数据 1.0  写入通道 1
DataScope_Get_Channel_Data( 2.0 , ); //将数据 2.0 写入通道 2
DataScope_Get_Channel_Data( 3.0 , ); //将数据 3.0 写入通道 3
DataScope_Get_Channel_Data( 4.0 , ); //将数据 4.0 写入通道 4
DataScope_Get_Channel_Data( 5.0 , ); //将数据 5.0 写入通道 5
DataScope_Get_Channel_Data( 6.0 , ); //将数据 6.0 写入通道 6
DataScope_Get_Channel_Data( 7.0 , ); //将数据 7.0 写入通道 7
DataScope_Get_Channel_Data( 8.0 , ); //将数据 8.0 写入通道 8
DataScope_Get_Channel_Data( 9.0 , ); //将数据 9.0 写入通道 9
DataScope_Get_Channel_Data( 10.0 , ); //将数据 10.0 写入通道 10

2、数据转换(转换为上位机可以理解的数据格式):

Send_Count = DataScope_Data_Generate(); 

实现 生成1个通道的 格式化帧数据,返回帧数据长度,如果上一步你选择了10个通道,则写成:

Send_Count = DataScope_Data_Generate(); 

3、传输数据到电脑(上位机):

for( i =  ; i < Send_Count; i++)
{
while((USART1->SR&0X40)==);
USART1->DR = DataScope_OutPut_Buffer[i];
}
Delay(0xFFFFFF);

其中for( i = 0 ; i < Send_Count; i++)语句实现数据的循环发送,直至第二步中生成的所有数据发送完成。USART1->DR = DataScope_OutPut_Buffer[i];语句是丢一个数据出去;Delay(0xFFFFFF);是发送完一次转换的数据之后进行简单的延时等待。至于延时函数,我们使用的是简单的如下程序:

void Delay(__IO uint32_t nCount)
{
for(; nCount != ; nCount--);
}

现在发送配置就完成了,main()函数的全部内容是:

int main(void)
{
unsigned char i;
unsigned char Send_Count;
int x=;
USART1_Config();
NVIC_Configuration();
while(){
DataScope_Get_Channel_Data( rand()/ , );
Send_Count = DataScope_Data_Generate();
for( i = ; i < Send_Count; i++)
{
while((USART1->SR&0X40)==);
  USART1->DR = DataScope_OutPut_Buffer[i];
}
Delay(0xFFFFFF);
}
}

实验结果

实验现象如下:右上角显示实时的数据值。

我们可以对波形图的显示方式进行设置,默认是显示图形的当前一部分,接下来来超出屏幕的将看不见,我们可以设置成刷新(显示完一屏之后清空再显示),移动(波形滑动,总显示最新部分),设置如下所示:

软件下载见原网站

选自:http://www.ciast.net/post/20151224.html CIAST.NET

DataScope v1.0 多功能串口虚拟示波器使用介绍的更多相关文章

  1. hasura graphql-engine v1.0.0-alpha30 功能试用

    hasura graphql-engine v1.0.0-alpha30 有好多新的功能的添加 环境准备 docker-compose 文件 version: '3.6' services: post ...

  2. Jlink使用技巧之J-Scope虚拟示波器功能

    J-Link简介 J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器.简单地说,是给一个JTAG协议转换盒.其连接到计算机用的是USB接口,而到目标板内部用的还是jtag协议. ...

  3. MySQL与MariaDB核心特性比较详细版v1.0(覆盖mysql 8.0/mariadb 10.3,包括优化、功能及维护)

    注:本文严禁任何形式的转载,原文使用word编写,为了大家阅读方便,提供pdf版下载. MySQL与MariaDB主要特性比较详细版v1.0(不含HA).pdf 链接:https://pan.baid ...

  4. MingQQ v1.0高仿版开源了,使用WebQQ协议实现了QQ客户端基本的聊天功能...

    MingQQ v1.0高仿版开源了,使用WebQQ协议实现了QQ客户端基本的聊天功能... MingQQ目前支持的功能如下:1.支持普通方式登录.验证码方式登录.注销.保持在线.改变在线状态.2.支持 ...

  5. hasura graphql-engine v1.0.0-alpha25 的几个方便功能

    hasura graphql-engine 是一个很不错的graphql 引擎,但是我们的数据模型经常可能会有变动, 但是以前的版本对于这些的处理,官方的方式是删除元数据,重启server,都不是很好 ...

  6. 学霸系统UI项目功能说明书 v1.0版本

    发布人员:软件工程实践小队. 发布内容:学霸系统UI项目说明书. 版本:学霸v1.0版本. 学霸系统UI项目说明书 v1.0版本分为以下部分: Part 1:用户须知: Part 2:功能实现: Pa ...

  7. hasura graphql-engine v1.0.0-alpha30 版本新功能介绍

    hasura graphql-engine v1.0.0-alpha30 发布了,以下为一些变动的简单说明 破坏性的变动 order_by 中的desc 从 desc nulls last 修改为 d ...

  8. hasura graphql-engine v1.0.0-alpha26 版本新功能试用

      hasura graphql-engine v1.0.0-alpha26 已经发布了,有好多新的变动,测试使用docker 环境,同时pg 数据库使用了citus citus 是一个方便扩展的pg ...

  9. hasura graphql-engine v1.0.0-alpha26 版本新功能

    hasura 发布了graphql-engine v1.0.0-alpha26 版本,有一些破坏的变动,以及方便的新特性 破坏性变动 order_by 从 order_by: id_asc 为 ord ...

随机推荐

  1. Redis数据类型:Hashes、Geo操作指令

    Redis数据类型:Hashes.Geo操作指令 Hashes常用操作指令 Redis Hashes是一个键值对的映射表,最对能存储2^32-1(约40亿)个键值对. HSET HGET HSET:将 ...

  2. 转 jvisualvm 工具使用 https://www.cnblogs.com/kongzhongqijing/articles/3625340.html

    VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带(java启动时不需要特定参数,监控工具在bin/jvisualvm.exe). https:// ...

  3. JAVA总结--java基本语法

    static :静态的~ static :静态变量.静态方法: 被修饰的成员变量或者方法独立于该类的任何对象,只要该类被加载,被修饰的成员变量或者方法就存在并可以使用.  用public修饰的stat ...

  4. Oracle-第一篇一些调优技巧

    1.查询 1>通过提示,使用索引. 2>使用/*+parallel*/并行查询 3>查看执行计划,调整sql语句或者优化表结构 4>避免使用“*”号 2.表设计:partiti ...

  5. POJ-2456.Aggressivecows.(二分求解最大化最小值)

    本题大意:在坐标轴上有n个点,现在打算在这n个点上建立c个牛棚,由于牛对厂主的分配方式表示很不满意,它很暴躁,所以它会攻击离它很近的牛来获得快感,这件事让厂主大大知道了,他怎么可能容忍?所以他决定有策 ...

  6. vue2.0 watch里面的 deep和immediate作用

    deep,默认值是 false,代表是否深度监听.immediate:true代表如果在 wacth 里声明了之后,就会立即先去执行里面的handler方法,如果为 false就跟我们以前的效果一样, ...

  7. jvm学习(2)JVM内存说明

    前言 一.类方法 类方法是静态方法,前面需要有static修饰符修饰.类方法内不能涉及有关变量的内容1.不能调用类的对象方法2.不能引用对象变量3.类方法不能被重写(覆盖)4.类方法不能使用super ...

  8. dp(传球)

    https://ac.nowcoder.com/acm/contest/1126/B 链接:https://ac.nowcoder.com/acm/contest/1126/B来源:牛客网 上体育课的 ...

  9. Python库指南

    Python库指南 1.time模块 作用:time模块是一个时间模块,与datetime模块它提供的功能是更加接近于操作系统层面. 应用场景:平时用的比较多的时间戳,等时间方面的操作,在爬虫方面经常 ...

  10. VirtualStringTree常用类和属性

    重要的类:TBaseVirtualTree = class(TCustomControl)TCustomVirtualStringTree = class(TBaseVirtualTree)TVirt ...