编程文章

从0开始设计_基于STM32F1的RC522读写卡

从0开始设计_基于STM32F1的RC522读写卡1.介绍看网上很多RC522的教程都是基于读卡ID的,这个对于很多应用来说其实没有什么用,最近刚好有个项目需要读写卡,而RC522又是非常常用的且不容易缺货的芯片,所以准备用RC522来进行读写卡。2.设备准备首先准备一个开发板和一个RC522模块,开发板这里我选择正点原子的精英板(STM32F103ZET6 …

「技术」一文带你掌握Linux字符设备架构

一、Linux设备分类Linux系统为了管理方便,将设备分成三种基本类型:字符设备块设备网络设备字符设备:字符(char)设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程序来实现这种特性。字符设备驱动程序通常至少要实现open、close、read和write的系统调用。字符终端(devconsole)和串口(devttyS0以及类似设备) …

同一个类,不同代码,Qt 串口类QSerialPort 与各种外设通讯处理

串口通讯在各种外设通讯中是常见接口,因为各种嵌入式CPU中串口标配,工业控制中如果不够还通过各种串口芯片进行扩展。比如spi接口的W25Q128FV.对于软件而言,因为驱动接口固定,软件也相对好写,因此串口通讯也是嵌入式常见开发模式,但是对于受控设备类型五花八门,往往编程代码也是不尽相同。串口参数处理 QSerialPort 是Qt用于串口处理类,在Linu …

FTP客户端库ftplibpp在linux系统上的使用

一、简述ftplibpp是一个跨平台的可以提供ftp客户端功能的C++库。它包含可以实现ftp客户端功能的类,支持所有基本的ftp功能以及一些高级功能:如恢复、fxp、ssltls加密、支持大文件或符合当今标准的日志记录等。本文讲述其在linux系统上的编译和使用。二、获取首先在github上(链接:https:github.commkulkeftplibp …

Qt 线程池QThreadPool类、QRunnable类

QThreadPool类用来管理 QThreads。此类中的所有函数都是线程安全的.主要属性:1、activeThreadCount: 此属性表示线程池中的活动线程数,通过activeThreadCount() 调用。2、expiryTimeout: 线程活着的时间。没有设置expiryTimeout毫秒的线程会自动退出,此类线程将根据需要重新启动。默认的e …

C语言实现MD5加密,竟如此简单(c语言加密代码)

本文详细讲解视频如下:《C语言实现MD5算法》 一、摘要算法摘要算法又称哈希算法。它表示输入任意长度的数据,输出固定长度的数据,它的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密。目前可以被解密逆向的只有CRC32算法,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。消息摘要算法不存在密钥的管理与分发问题,适合于分布式网络上使用。 …

智能图书馆管理系统开发实战系列(四):后端C++ DLL开发

前言在前端工程化搭建完成后,我们需要构建高性能的后端业务逻辑层。本文将深入介绍位于 codebackenddll 目录下的C++ DLL开发实践,包括模块化架构设计、CMake构建系统配置,以及如何实现可扩展的业务逻辑框架。后端架构设计理念为什么选择C++ DLL?相比纯Web后端方案,C++ DLL架构具有以下优势:性能优势: 原生C++代码执行效率高,特 …

从零玩转模拟I^2C:小白也能搞懂的通信协议

你是否遇到过单片机硬件I^2C资源不够用的尴尬?是否好奇如何用几行代码“凭空”造出一个I^2C接口?今天带你揭开模拟I^2C的神秘面纱,从理论到实战一网打尽!一、为什么要用软件模拟IIC?大多数现代MCU(如STM32、ESP32)都内置了硬件IIC外设,但软件模拟IIC依然有它的价值:灵活性:在没有硬件IIC支持的芯片上也能实现通信。学习性:手写代码能帮助 …

C语言模块程序设计?源文件和头文件如何划分模块?linux C第32讲

6 .c源文件和.h头文件配合使用假设我们开发一个图书馆管理系统,读者的信息使用reader.c和reader.h文件来管理,那么,读者在登记的时候,需要输入年龄,那么,可以设计如下的函数,接收登记读者的年龄输入:int reader_age_add(int age);此时,通过参数,把age变量表示的读者年龄存放到系统中。那么,我们可以在reader.c源 …

以小窥大:IO 卡顿探寻苹果文件系统

作者:rhythmzhang,腾讯 WXG 客户端开发工程师从一个不寻常的 IO 卡顿入手,发现苹果 APFS 的一个严重 bug。近期有用户反馈频繁遇到了一个奇怪的严重卡顿问题,微信刷朋友圈和查看聊天都非常卡,主线程卡在最普通的 access, rename 等常见 IO 系统调用,并且经常卡上百 ms,而这种场景的底层接口一般都没干什么大量的 IO 操作 …