An open API service indexing awesome lists of open source software.

https://github.com/paparazz1/qtprojects


https://github.com/paparazz1/qtprojects

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

包含文件:

* main.cpp

* Serial.cpp

* Serial.h

* README.md

需要的头文件

>iostream
>
>sstream
>
>TCHAR.h
>
>stdlib.h
>
>stdio.h
>
>windows.h
>
>process.h
>
>string.h

visual studio 2015/2017都有这些头文件,把文件包含到一个工程即可

代码说明:

打开串口通讯,需要先定义一个`CSerial`变量

然后调用类内的`OpenSerialPort()`函数

我在`main.cpp`中已经编写了一个`serialInit()`函数

已经定义了端口号,波特率,数据位,结束位等的数据,亲测可以用在我自己的板子上

调用该函数即可

然后在类内有两个函数可以用到的

一个是`SendChar()`用来向串口传递一个字符变量

另一个是`ChangeSpeed()`用来向串口传递一个整型变量,我已经定义了该变量的值的范围在$[9,49]$,因为我在板子中控制速度时,就是这个范围

可以自行将该范围扩大到$[0,100]$便于使用

还有一个读取串口的操作

我写了一个多线程用来同步读取串口

当串口有数据进来的时候,自动就会读取数据

在`Serial.cpp`文件中的函数`CommProc(LPVOID LaParam)`

里面有一句注释`//Update Window Data Here Using buf`

可以在这个位置加入对你GUI显示的改动

buf变量是一个字符数组,里面包含了从串口中读取到的数据

串口过来的数据有可能有些复杂

格式是

先是一个字符常量'a'

后来是三个长度为4个长度的浮点变量(包括小数点),只有一个小数位,有前导零

如$02.1$,$10.5$

表示的是三个维度的线加速度(顺序为XYZ)(单位是 g$m/s^2$ )

后来是一个字符常量'w'

后来同理,也是三个长度为4个长度的浮点变量(包括小数点),只有一个小数位,有前导零

表示三个维度的角速度(单位是度每秒)

后来是一个字符常量'g'

同理,三个浮点数

表示的是三个姿态角(单位是度)

然后是一个字符常量'T'

最后是一个浮点数,表示的是温度(单位是摄氏度)

前面的前导字符常量是为了区分后面的数据到底是对应什么类型的数据