一、实训内容
1、软件:Linux基础指令 C++ QT
2、初始结果出来后,主动联系导师发送邮箱推荐自己。
硬件:STM32F103RCT6
主频(运行速度):72MHZ=七千两百万次
1、MCU开发方式
常见的MCU三种开发方式:寄存器 标准库 HAL库(运行速度慢)
开发难度:由高到低
运行速度:有高到底,因为封装不同,HAL库底层还是寄存器
2、实训软件
实训软件:
1、编辑软件:VM ubuntu16.04 QT keil5
2、下载软件:串口下载软件
3、下载驱动:CH340
二、常见的操作系统
1、windows
2、linux
linux开源:底层逻辑和程序公开,安全
3、二者区别:
1>windows采用不同的盘符
2>linux无盘符,有两个目录,root根目录(底层逻辑不可改动),home目录提供为用户使用,可以自行修改,不会影响系统的正常运行
三、LINUX常见指令
1、指令操作环境
1、终端:人机交互的平台
2、终端基础操作
1、打开终端:
鼠标:鼠标右击,打开终端
快捷键:ctrl+alt+t
2、关闭终端
1、鼠标:点击关闭
2、快捷键:ctrl+shift+w
3、放大终端:crtl+shift+“+”
4、缩小终端:crtl+“-”
5、终端提示符的含义:
1、@没有任何意义,就是一个分隔符
2、linux:计算机名:没意义也是分隔符
3、~:普通用户的家目录:/home/用户名/
4、$:普通用户的标志符
5、#:管理员用户的标志符
6、常用指令
1、插入:pwd:打印当前所在的路径
2、展开文件夹:ls
红色:压缩文件 白色:普通文件 绿色:可执行文件 蓝色:
3、创建文件夹:mkdir
格式:路径/文件夹名 如果没有路径则默认为当前路径
4、删除目录:rmdir(只能删除空文件夹,所以先切换目录,删除最里面的文件夹)
5、删除指令:rm (rm:只能删除文件,但是后面加一个-rf则可以强制删除,r删除目录,f强制删除)
6、创建文件:
touch:只创建不打开
gedit:创建并打开(crtl+q 退出)
cat:显示当前内容到终端
7、编译指令:gcc xx.c 生成的都是 a.out,为了避免重复,完善为:gcc xx.c -o 加名字
8、执行二进制文件(可执行文件): ./没有空格加可执行文件
9、切换用户 su 用户名
10、复制文件
cp+文件名+路径
. :当前目录 .. : 上一级目录
路径:1、相对路径(从当前所处路径描述) 2、绝对路径(从根目录路径开始描述)
11、压缩和解压
1、 tar -cvf 06.tar 06133
2、 tar -xvf 16.tar
3、操作系统的分类
1、桌面版:
2、服务器版本:后台操作win+r;和终端
四、C与C++联系
1、C语言在C++都适用
2、C语言源文件.c结尾,而C++以.cpp结尾
3、C语言头文件.h结尾,c++也一样,也能用.hpp
4、Linux编辑工具:1、C:gcc 2、C++:g++
C++:iostream:输入输出数据流
240*340
五、仿真软件
左边为L1,中间L2,右边为L3,000~111:0~7;压着为1,否则为0
1、011以及以下为左偏1,2,3
2、100以及以上为右偏4,5,6
六、QT上位机
1、项目介绍
1、.pro为插件
2、重进后中文变成乱码,在工具选项当中的显示找到disply file coding勾选后按编码重现加载,然后再点击按编码保存
2、面向过程与面向对象
1、C语言面向过程(偏于实现过程的逻辑),其他都是面向对象(代码对谁实现的)
面向对象举例:冰箱(自己打开)、大象(自己进冰箱)、冰箱(自己关闭)
3、数据类型
1、整数型 int 四个字节(64位)
2、单精度浮点型(小数点后前五位) float 四个字节
3、双精度浮点型(16-25位) double 八个字节
4、字符型 char 一个字节
5、布尔型 bool 判断true或者false
6、有符号数:signed int int uint32_t uint64_t
7、无符号数:unsigned int uint8_t(后面无符号字数的别称):unsigned char
命名空间
1、作用:防止变量与函数的重命名,数据操作更加安全
2、定义:namespace 空间名{
成员函数;
成员变量;
成员类;
}
3、引用(&):给变量起别名
注意:1、引用不能为空;2、引用一旦赋值就不允许改变了
4、string
5、类和对象
1>类:一类事物的描述
2>对象:类的具体化
class 类名{
修饰词:
成员函数;
成员变量;
成员类;};
其中修饰词包含三个:
1、public:共有权限(类内类外可以使用)
2、protected:保护权限(成员可以在类外使用,类外:子类或者友元函数)
3、private:私有权限(只能类内以及友元函数可以使用)
友元函数:解决类外访问类内私有成员的问题
6、构造函数与析构函数
1>构造函数:类名()执行:对象被定义时,构造函数自动执行
类名加括号为构造函数,不能改变
2>析构函数:~类()执行:对象被释放时(运行到return0时被释放),析构函数自动执行
7、this指针
8、继承:
1、基类:父类
2、派生类:子类 定义: class 派生类名 :修饰词 基类{};
public:只能继承基类里的公有成员
protected:可以继承公有和保护成员,并且继承的成员自动转化为派生类的保护成员
private:可以继承公有和私有成员,并且继承的成员自动转化为派生类的私有成员
9、重载
1、类里的成员函数形参不一样,哪怕函数名一样,也被认为是两个函数,在使用过程中,可根据最后输入的参数来判断选择使用哪一个
10、开辟与释放空间
1、开辟:new malloc(C)
2、释放:delete free(C)
11、多态
1、派生类继承的成员函数与自身定义的的成员函数一样,这种现象叫做多态
4、信号与槽
槽:事件发生后产生的函数
信号:按键触发时产生的信号
1、手动与自动:
自动:UI界面自动生成的
手动:connect