实验一、Visual
Scope使用体验
1、引言:
小车已经快到手了,趁着时机预热一下。VisualScope是一款示波器上位机软件,作用是将串口通信的数据按照一定的协议,进行4组数据的识别、在软件界面上显示波形。由于楼主以前并没有在实验平台上调试PI代码,今天突然想自己手头上并没有示波器,所以对这软件起了很大的兴趣。
2、软件介绍:
VisualScope其实是一款非免费的软件,没破解前不能配置串口,只能是COM1、9600的默认配置。注册(破 解)后可以自由配置。软件本身支持四通道的数据。这是一款绿色软件,软件主体只有一个文件,其大小为2.15MB,config.dat是配置文件(串口配置信息关闭程序后仍然保存,应该就是存在这文件中)。
3、实验过程:
本次实验所需:配置好Uart的单片机、Uart转Usb模块一块。安装了Uart转usb驱动的PC机。
哼哼,图中MCU板子为新唐Nuvoton的Nutiny-EVB-M451,+ PL2302 USB转串。
3.1、单片机调试:
首先肯定是先配置好单片机的Uart,主要代码:
unsigned short CRC_CHECK(unsigned char *Buf, unsigned char CRC_CNT)
{
unsigned short CRC_Temp;
unsigned char i,j;
CRC_Temp = 0xffff;
for (i=0;i>1 ) ^ 0xa001;
else
CRC_Temp = CRC_Temp >> 1;
}
}
return(CRC_Temp);
}
void VisualScope_Output(float data1 ,float data2 ,float data3 ,float data4)
{
int temp[4] = {0};
unsigned int temp1[4] = {0};
uint8_t databuf[10] = {0};
unsigned char i;
unsigned short CRC16 = 0;
temp[0] = (int)data1;
temp[1] = (int)data2;
temp[2] = (int)data3;
temp[3] = (int)data4;
temp1[0] = (unsigned int)temp[0] ;
temp1[1] = (unsigned int)temp[1];
temp1[2] = (unsigned int)temp[2];
temp1[3] = (unsigned int)temp[3];
for(i=0;i<4;i++)
{
databuf[i*2] = (unsigned char)(temp1[i]%256);
databuf[i*2+1] = (unsigned char)(temp1[i]/256);
}
CRC16 = CRC_CHECK(databuf,8);
databuf[8] = CRC16%256; databuf[9] = CRC16/256;
UART_Write(UART0,databuf,10); /*这行代码按照不同的单片机自行修改,作用是往UART0发送10个数据,数据存放到databuf*/
}
以上两个函数C语言的适用于所有拥有uart的单片机的,移植时候只要修改UART_write这个函数就OK。
另外在main函数的死循环之前,计算得到了4组数据用于软件评估。
for(i=0;i<2000;i++)
{
datach1 = 1000*sin((float)2*PI*i/2000);
datach2 = 800*sin((float)2*PI*i/1000);
datach3 = 600*sin((float)2*PI*i/500);
datach4 = i;
VisualScope_Output(datach1,datach2,datach3,datach4);
}
while(1);
datach1顾名思义,通道1的数据。Ch1-3都是正弦波,ch4为斜坡函数。代码编好了。之后就是VisualScope软件配置了。
3.2、VisualScope软件配置
首先是串口配置。
现在很多串口软件都可以自动识别可用的串口。如免费的软件Tera Term。(记得还是开源的。)
配置过程:
1 菜单Setup -> Communication Protocol -> CRC16
2 菜单Setup -> Communication Setup 中,选择Comm No.,我实验时是COM11,Bard rate为115200(跟单片机初始化的波特率一样)
3 点RUN
如无意外,就可以看到下图所示的波形了。不过要知道,软件看起来是先在RAM中初始化了四组数据,数据有多大,软件界面波形就有多长。。。显示的新数据的波形都在波形最后面哦。
本人对用串口调试PID参数并不熟悉,不过体验了VisualScope显示波形的快乐,在没有示波器的情况下,如果单片机还存在ADC电路,就可以将电气量转换为数字量传输到上位机用该软件配合调试了。
其实,若有无线转串口模块,就可以在电脑上面调试,这是一个很好的选择。预计这个实验以后会做到!