一.背景: 自从接触单片机编程以来,由于工作上的需要,不可避免的时常会接手别人的代码,但常常由于上一位同事的编码随意性有点大,导致可读性非常的差,有时候不得不完全舍弃原有代码,推倒重来,无形中增加了工作量,浪费了宝贵的开发时间.因而也越来越觉着规范的代码才是提高工作效率的重要保证,不仅仅是为了别人,也为自己的日后维护带来十足便利. 因此本文即挑某一个方面:下位机多个".c, .h"文件的相互包含及排版做一个记录,提示自己,也为新加入的朋友们做个参考. 二.正文: 以我现在正在开发的电源…
今天在写qt时,遇到了两个类相互包含的问题,类A要用到类B,类B要用到类A. 类A:a.h #ifndef A_H #define A_H #include <b.h> class A { public: A(); }; #endif // A_H a.cpp #include "a.h" A::A() { B b; } 类B:b.h #ifndef B_H #define B_H #include <a.h> class B { public: B(); };…
"希望是一个美好的东西! 希望, 这能自己给自己,否则只有无尽的痛苦和迷茫!"---Frank 假设你写了两个类A和B,如果在A.h中有 #include<B.h>;   同时,在B.h中有#include<A.h>,则会报错!即使你在头文件中使用了 #ifndef xxx #define xxx ....... #endif…
1)h文件作用 1 方便开发:包含一些文件需要的共同的常量,结构,类型定义,函数,变量申明: 2 提供接口:对一个软件包来说可以提供一个给外界的接口(例如: stdio.h). 2)h文件里应该有什么     常量,结构,类型定义,函数,变量申明. 3)h文件不应该有什么     变量定义, 函数定义. 4)extern问题     对于变量需要extern:     对于函数不需要因为函数的缺省状态是extern的.如果一个函数要改变为只在文件内可见,加static. 5)include包含问…
linux下保存下位机输出的串口信息为文件 1.stty -F /dev/ttyUSB0 raw (转换成raw模式) 2.stty -F /dev/ttyUSB0 speed 115200 (设置波特率) 3.cat /dev/ttyUSB0 > serial.txt & (启动后台程序保存文件)…
先模拟控制小乌龟 新建cmd_node.ccpp文件: #include"ros/ros.h" #include"geometry_msgs/Twist.h" //包含geometry_msgs::Twist消息头文件 #include <stdlib.h> #include<stdlib.h> int main(int argc, char **argv) { ros::init(argc, argv, "cmd_node&quo…
就不说怎么组装了吧,一把辛酸泪.说程序,因为这有两把辛酸泪……一把给下位机的C代码一把为了VB.NET的图像处理……不过就上上一篇说的,它们可以正确运行了,并且今天克服了Arduino上电过程中步进电机没事瞎转悠的困难. 其实上位机和下位机的功能界定非常清晰:上位机解释图片为指令,下位机解释上位机指令为硬件动作——就俩步进和一个激光器.当然,如果有读卡器模块,完全可以把命令写成文件实现脱机打印.总体框架就是这样,那么下位机要实现的具体功能有哪些呢? 1.串口通讯:接收指令和发送请求.既然是通讯,…
这里我主要说一下如何做一个USB下位机,这里主要分3部分:1.建立工程:2.添加报文描述符:3.数据的传输.这里就不讲USB的理论知识了,有想要了解的自行百度一下就可以了. 建立工程:工程建立参考:https://www.cnblogs.com/libra13179/p/7193375.html 1.首先打开USB 2.接着把USB设置为下图HID模式 3.选择外部时钟 4.配置时钟树 5.配置USB设置 下面的USB设置就有点讲究了, 6.确认后,生成代码 添加报文描述符: 这里只是建立了一个…
STM32 使用Cubemx 建一个USB(HID)设备下位机,实现数据收发  本文转载自 https://www.cnblogs.com/xingboy/p/9913963.html 这里我主要说一下如何做一个USB下位机,这里主要分3部分:1.建立工程:2.添加报文描述符:3.数据的传输.这里就不讲USB的理论知识了,有想要了解的自行百度一下就可以了. 建立工程:工程建立参考:https://www.cnblogs.com/libra13179/p/7193375.html 1.首先打开US…
拿到任务之后首先分成了几个部分: 1.绘图.学习了GDI+ 2.图片保存. 3.将图片转换成byte[].由于使用Socket通信,只能传输byte[]数据,所以这一步是向下位机传输的关键. 相应地,编程实现了下面几个功能: 1.使用GDI+画图并保存为bmp格式的图片.画图部分是书上的例子,只增加了保存的相应代码. public partial class Form1 : Form { Bitmap bitmap; Font myFont = , FontStyle.Bold);//定义字符串…