本帖最后由 znfc2 于 2014-11-29 17:30 编辑
前言: 最近做项目需要用到能够看波形的上位机软件,突然想起2012年自己写过的” 虚拟示波器_beta1.7”,效果如下图所示: 当时是参加第七届全国大学生飞思卡尔杯智能汽车竞赛,为了调电机控制PID参数,需要一个软件能够展现速度变化趋势,响应速度什么的。有个大概叫scope V2 的软件很不错,但是不注册就只能固定9600波特。注册失败+灰色按钮克星失败,然后就有些心塞~_~。 于是为了提高比格,就自己写了个。用的传说中的”极品工业控件”+”visual basic”。由于当时创新实验室对于智能车这块基本还是一穷二白的状态,算法、机械、硬件、上位机都不成熟,然后我就疯狂瞎写了一把各种算法各种软件。。。以前写的串口波形软件勉强能用,主要问题是不稳定,细节没有完善,实时性不够高。 后来2013年的时候发现了匿名四轴,宣称超高波特率,超强实时性,细节优化也不错,于是抱着试试看的心态体验了一把。。。广告做完了,开始动真格的!
第一步:移植我提供的代码到你的目标机(一般是MCU)的IDE(MDK,IAR,CW,Eclips…..)中。 |+WAVE |----wave.c |----wave.h 如果这个不会添加,那么烧年烧女要加油呀! 注意wave.h 的头和尾,这是eclipse自动生成的,其他IDE可能有所不同。 #ifndef WAVE_H_ #define WAVE_H_ #endif /* WAVE_H_ */ 然后改下关键函数,根据自己的hardware platform修改即可,(不会改别问我~_~) - /**************************向物理串口发一个字节**********************************
- ******************************************************************************/
- __inline unsigned char UART_Putc(unsigned char data)
- {
- uart_send1(UART_1,data);
- return data;
- }
复制代码
改好了我们就可以开始调用了。在你想调用的C文件顶部加上一句: #include "wave.h"(如果IDE找不到,可以改IDE配置或者改成"..\WAVE\wave.h"试试) 我提供一个简单的调用例子: - Void main(void)
- {
- USART_Configuration(); //系统初始化
- printf(" hello!\r\n"); //测试串口
- while(1)
- {
- delay_1ms(2); //发送间隔(最小间隔与很多因素有关,省略一万字)
- Uart1_Send_AF(100-i,i+100,i,i*2,i/2,100*sin(3.141592*(180-i)/180),0,0);
- //sin函数不同的IDE可能不同。
- send_wave();
- }
- }
复制代码
然后我们编译一把,没报错的话,下位机部分我们就搞定了。
第二步:上位机设置 双击ANO_Tech匿名四轴上位机v2.3.exe,跳出蓝色界面单击x,于是进入主界面。 1:在基本功能中,设置好串口号和波特率,其他默认即可 2:在高级收码中,打开“数据校验”“数据显示” “功能帧显示”,再点击“打开串口”和开启界面下方的“高级收码”。 于是进入高级收码界面,就会收到类似这样的数据:(注意换行) - 88AF1C 0083 01C1 012C 0063 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 28
- 88AF1C 0063 01BA 012E 0045 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 E5
- 88AF1C 0055 01C2 0131 0038 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 D5
- 。。。。。。
复制代码
3:然后关掉“数据显示”“功能帧显示”, 开启界面下方的“飞控波形”。再进入波形显示界面,然后你应该能看到波形了。如下图 4:按F12获得帮助,F9设置波形颜色粗细背景色等。。。 5:看前六路即可,后两路自己摸索功能吧。。。 2014-11-29
|