qt:tcp通信工具(Server端) 1.说明使用qt写一个类似网上常见的网络调试工具。此篇为Server端。Client端在上一篇。2.基本流程新建QTcpServer对象,为其newConnection信号写槽函数。此为新的Client连接信号,在其对应槽函数里使用nextPendingConnection方法获取Client对象,并为Client添加readyRead(读数据),disconnected(断开连接)两个信号写槽函数。开始监听使用Server的listen方法,停止监听使用Server的close..
qt:tcp通信工具(Client篇) 1.说明使用qt写一个类似网上常见的网络调试工具。此篇为Client端。下一遍再写Server端。2.基本流程Client端相对简单:创建QTcpSocket对象,为对象的readyRead,error,connected(可选)分别写槽函数,以处理读数据,错误,连接成功三个事件。连接使用对象的connectToHost方法,断开使用disconnectFromHost方法。程序不做编码转换处理,因为之前的几遍文字已经做过,不再赘述。3.代码这是mainwindow.cpp文
qt:写一个串口助手 1.界面布局这是一个常见的串口助手布局。要说有什么不常见,大概就是发送可以选择编码方式:GBK/UTF82.要点没什么难度,就是水磨工夫,一点点写。容易错处的地方都写在代码注释里。3.代码下面是 mainwindow.cpp 文件。#include "mainwindow.h"#include "ui_mainwindow.h"#include <qdebug.h>QSerialPort *serial;MainWindow::MainWindow(Q.
qt:字符串与hex转换器 1.布局2.代码#include "widget.h"#include "ui_widget.h"#include <QtDebug>Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this);}Widget::~Widget(){ delete ui;}void Widget::on_btn2hex_.
RISC-V架构单片机GD32VF103:IAP功能 自从传闻ARM要出售给美国公式,本人内心的不安全感促使我寻找ARM架构单片机的替代产品。网上问了写网友,有推荐GD32VF103,于是花了些时间了解这个系列的MCU,发现其实也还行,这个MCU跟GD32F103很像,RAM, ROM,外设,封装都差不多。虽说开发环境有些不太熟,不过花些心思,也能凑合使用,至少,比51单片机好用多了。因为官方Firmware没有IAP方面的内容,所有这篇文章专门讲讲此单片机如何进行IAP,毕竟实际工作应用中会经常使用。1.开发环境。我使用的IDE是Nuclei S
C#游戏《坦克大战》--主程序 今天和女朋友分手,写一段技术博客以平静心态。1.统计信息用于主界面显示各种信息 //统计 public struct t_statistics { public int generateenemyNum; //生成敌人数量 public int destroyenemyNum; //已经摧毁的敌人数量 public int GetcurrenemyNum() //
C#游戏《坦克大战》--坦克 1.坦克相关信息这里的各种类型,使用struct而不是enum,避免后面强制转换。 //子弹信息 public struct t_bulletinfo { public int idx;//链表中的顺序号 public int dir;//当前方向 public t_bulletinfo(int i, int d) { this.idx = i; this.dir
C#游戏《坦克大战》--地图 疫情期间无聊,用C#写了个游戏《坦克大战》。1.概述程序主要包括地图部分,坦克部分,和碰撞检测部分。本章只写地图部分。2.地图系统地图包括底图和上面的地形元素,比如草地(减缓速度),土墙(容易击破),河流(能通过子弹但阻碍坦克)等。而且允许自定义各种地形。3.重点地图系统的重要功能是绘图,并保存地图元素,以便主程序进行碰撞判断。1.可以加载图片当作底图,也可以随机生成。2.绘制元素,或擦除元素并恢复原来的地图内容。3.需要保存工具,下次打开程序还能继续使用。
C# MandelBrot分形图绘制 一。代码注:这里为了制造多个渲染效果使用委托类来当作函数指针使用。 private static Random rn = new Random(); private delegate UInt32 _dg_GetUint32Color(int i); private const int mb_iteration = 24; //迭代次数限制 private static _dg_GetUint32Color[] _m.
Cortex-M0模仿位带操作使用 Cortex-M3/M4有位带区(BIT-BAND),可以进行位带操作,而Cortex-M0是没有此功能区域的。必须说明一点,BIT-BAND的本质可以说是空间换时间。是为追求速度而设置的功能。像STM32F0XX这些Cortex-M0系列的MCU,如果追求速度,还是老老实实操作BSRR/BRR这类专门的寄存器。如果不介意速度损失,单纯想做出类似"位带"操作(比如:PAout(0)= 0,...
STM32:SPI驱动ADXL345 ADXL345为3轴数字加速度计。支持SPI或I2C访问。网上例子大多是I2C,这里使用4线SPI。一、遇过的坑调试过程花了几个小时,遇到一些小坑。1.开始的时候,无论如何都无法读取芯片ID。这可是最基础的一步啊,SPI,I2C都试过。无奈之下,对照原理图与手册的管脚说明,发现Vs接到地了。其实这个管脚要接电源电压。老实说,一看名字还以为要接地,毕竟一般IC接地脚名字为Vss。让硬件工...
STM32:FSMC驱动TFTLCD(2) 上一篇文章写了ST7789的基本驱动代码,但是没有实现具体的绘图代码。这里加上。1.代码头文件#ifndef __BSP_LCD_H#define __BSP_LCD_H#include "lcd_drv.h"/* RGB565: 高位至低位排列, RRRR RGGG GGGB BBBB*/#define RGB(R,G,B) (((R >...
STM32:FSMC驱动TFTLCD(ST7789) 最近项目使用STM32F407驱动tft彩屏,屏幕的内部驱动芯片为ST7789V,这个IC网上资料不多。废话不说,直接上完整驱动代码。1.代码/**************************************************************************************************** 模块名称 : TFT液晶显示...
STM32:I2S驱动WM8978 最近项目中使用STM32F4驱动音频IC:WM8978。WM8978为DAC+ADC芯片,本身并不具备编解码的功能,一方面,可通过I2S接口接收PCM数据,转为模拟信号输出,此为DAC过程,即放音;一方面,可接收模拟信号转为数字信号,通过I2S接口传输给MCU,此为ADC过程,即录音。WM8978还使用I2C接口配置其工作参数,比如音量,EQ,3D环绕等。WM8978本身可直连1W/8欧的小喇...
nodemcu:使用lua开发esp8266 一、LuaLua是一种轻量级的嵌入式脚本语言。由于它消耗资源小,本身是使用标准c语言开发的,所以也比较合适移植进各种单片机中,用来替代ini,xml这类配置文件,甚至json,并且更加灵活,功能更强。官网:http://www.lua.org二、nodemcu官方解释:nodemcu是超简单的物联网开发平台。直白地说,就是esp8266刷入了lua解析器,可通过Lua脚本控制esp...
LUA移植至STM32全记录 之前使用nodemcu时萌发了一直Lua至STM32的想法。后来项目需要,便花了2天移植。 Lua移植大约需要67K的rom,所以STM32F103C8无法使用,至少得103CB才行。1. 官网下载源文件http://www.lua.org/download.html我下载的 是当前最新版本--5.3.5。2. 解压,源代码位于src文件夹,去掉lua.c 和 luac.c...
ESP32模组比较 1.简述ESP32系列无线IC是乐鑫espressif出品的性价比高的蓝牙WIFI双模IC。官网:https://www.espressif.com最详细的手册文档为:esp32_technical_reference_manual_cn.pdf2.模组比较将官方和一些其他方的模组列表比较,包括资源,价格。也把芯片放进去。ESP32单核芯片用的少没有列出。可以看出,安信...
嵌入式软件架构的设计 嵌入式软件架构的设计大多数嵌入式程序员学习编程,都是从开发板的附带例程开始。之后工作也会继续参考那些例程,很多编程习惯、方式也会受之影响。其实开发板式的编程方式与工作中实际需求的并不完全一致。开发板的通常卖给初学者,注重“即插即用”,兼容各种模块,讲究功能的全面而不讲究性能、效率、成本、功耗等。很多时候为了兼容各种型号IC或者显示屏之类,程序累赘,逻辑混乱。开发板的程序往往是一个人完成...