中级会员
- 积分
- 283
- 金钱
- 283
- 注册时间
- 2018-6-30
- 在线时间
- 42 小时
|
发表于 2018-9-10 09:01:38
|
显示全部楼层
本帖最后由 shiyikuangxia 于 2018-9-10 09:22 编辑
上位机我用的是VB6.0写的,我发现 VC和VB很相似,但我没用过VC
大致就是设置通信控件的串口收到120个数据后,产生ONCOM事件(相当于中断),然后读取缓冲区数据并计算坐标然后画线,程序比较简单画图部分程序如下:
'画方格网
For i = 0 To 40 Step 1 '画横线
y1 = 100 + i * 200
Picture1.Line (60, y1)-Step(10240, 0), QBColor(6) '黄色
Next i
For i = 1 To 52 Step 1 '画竖线
x1 = 60 + i * 200
Picture1.Line (x1, 100)-Step(0, 8000), QBColor(6) '黄色
Next i
Picture1.Line (60, 4100)-(10500, 4100), QBColor(9) '原点至X轴终点 蓝色
Picture1.Line -Step(-150, -40), QBColor(9) '箭头
Picture1.Line (10500, 8100)-Step(--150, 40), QBColor(9) '箭头
Picture1.Line (60, 8100)-(60, 0), QBColor(9) 'Y轴最下端至最上端终点
Picture1.Line -Step(-40, 100), QBColor(9) '箭头
Picture1.Line (60, 0)-Step(40, 100), QBColor(9) '箭头
'写横坐标
Picture1.PSet (10150, 3900)
Picture1.Print "t "
Picture1.PSet (10120, 4080)
Picture1.Print "(ms)"
'写纵坐标
Picture1.PSet (100, 0)
Picture1.Print "V "
'画波形
For i = 0 To (ll - 1)
VV1 = inbuff(i)
X(i) = x0 + i * 100
y(i) = y0 - 4000 * VV1 / 256
X(i + 1) = x0 + (i + 1) * 100
VV2 = inbuff(i + 1)
y(i + 1) = y0 - 4000 * VV2 / 256
Picture1.DrawWidth = 2
Picture1.Line (X(i), y(i))-(X(i + 1), y(i + 1)), QBColor(11) '青色
Next i
strHex = " "
前提是会控制串口,收到数据,这部分内容可网上搜一下“VB串口通信”
这是接收界面,和一般的串口助手类似
|
-
|