ataScope v1.0 特性
https://blog.csdn.net/weixin_30517001/article/details/95282357

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

使用步骤
1、把DataScope_DP文件夹,放到对应的工程目录里面,然后在工程中,添加c文件,同时,添加h文件的路径到工程中;
2、使用的时候,必须要注意一个内容,就是数据的大端和小端模式。怎么知道呢?可以百度,或者测试得到,登下说下如何测试;
3、使用程序;
4、打开软件,对应的波特率和串口,选中对应的通道。看下有没有曲线出来,没有的话,就改变下大端模式和小端模式的程序,两个只能二选一。串口程序正确的前提下,这个模式非常重要。不同编译环境有所区别。一定要注意。

头文件的内容解读:

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

extern unsigned char DataScope_OutPut_Buffer[42]; //待发送帧数据缓冲区
void DataScope_Get_Channel_Data(float Data,unsigned char Channel); // 写通道数据至 待发送帧数据缓冲区
unsigned char DataScope_Data_Generate(unsigned char Channel_Number); //发送帧数据生成函数
库文件(v1.0)的ROM和RAM占用情况参考

226 bytes of CODE memory ( At Cortex-M3 )
44 bytes of DATA memory ( At Cortex-M3 )
使用系统提供的库文件将会占用系统226个字节存储空间以及44个随机存储空间。

库c文件的内容

库文件说明

函数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,要发送的通道数目。

//函数说明:将单精度浮点数据转成4字节数据并存入指定地址
//附加说明:用户无需直接操作此函数
//target:目标单精度数据
//buf:待写入数组
//beg:指定从数组第几个元素开始写入
//函数无返回

函数3,extern void Float2Byte(float *target,unsigned char *buf,unsigned char beg)

这个将浮点数转变为4个字节,因为float类型是4个字节,用指针访问,要特别注意大端模式和小端模式,如果单片机的模式不一样,曲线就不一样。

extern void Float2Byte(float *target,unsigned char *buf,unsigned char beg)
{
unsigned char point;
point = (unsigned char
)target; //得到float的地址

// buf[beg] = point[0];
// buf[beg+1] = point[1];
// buf[beg+2] = point[2];
// buf[beg+3] = point[3];

 buf[beg+3]   = point[0];
buf[beg+2] = point[1];
buf[beg+1] = point[2];
buf[beg+0] = point[3];

}

DataScope v1.0 串口虚拟示波器使用_单精度

使用实例:发送一个浮点数,在通道1中,绘图曲线

DataScope v1.0 串口虚拟示波器使用_单精度_02


			DataScope_Get_Channel_Data((float)MAX6675_Temp , 1 );//将数据放到通道中
          Send_Count = DataScope_Data_Generate(1); //产生对应的格式
			
          for( i = 0 ; i < Send_Count; i++) 
          {
						   while(TI!=0);  
							UART_Send_Byte(DataScope_OutPut_Buffer[i]);//一个一个字节发送
            
          }
						delay_tms(1000);

DataScope v1.0 串口虚拟示波器使用_单精度_03
DataScope v1.0 串口虚拟示波器使用_单精度_04
得到曲线,有助于PID学习。