自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (114)
  • 收藏
  • 关注

原创 自定义对话框及其使用

import sysfrom PyQt5.QtWidgets import (QApplication, QDialog,QFileDialog, QColorDialog,QFontDialog,QProgressDialog, QLineEdit,QInputDialog,QMessageBox)from PyQt5.QtCore import Qt, pyqtSlot, QDir,QTime.

2021-06-27 15:32:53 245

原创 PyQt5调试记录

(1)设计Action(2)设计菜单和工具栏(3)信号与槽编辑器菜单槽函数不响应:(1)检查槽函数名字是否正确(2)Action Chenkable 是否勾选

2021-06-26 10:51:36 339

原创 PyQt5 音乐播放器实现

echo offrem 将子目录 QtApp 下的.ui文件复制到当前目录下,并且编译copy .\QtApp\MainWindow.ui MainWindow.uipyuic5 -o ui_MainWindow.py MainWindow.uirem 编译并复制资源文件pyrcc5 .\QtApp\res.qrc -o res_rc.py

2021-06-19 16:35:20 1074 1

原创 设计模式C语言实现--目录

01)设计模式C语言实现(继承、封装、多态)02)设计模式C语言实现(访问者模式)03)设计模式C语言实现(状态模式)04)设计模式C语言实现(命令模式)05)设计模式C语言实现(解释器模式)06)设计模式C语言实现(备忘录模式)07)设计模式C语言实现(观察者模式)08)设计模式C语言实现(桥接模式)09)设计模式C语言实现(建造者模式)10)设计模式C语言实现(中介者模式)11)设计模式C语言实现(策略模式)12)设计模式C语言实现(适配器模式)13.

2021-06-17 09:48:04 909

原创 设计模式的C语言实现--工厂模式

简单工厂方法模式1 简介简单工厂方法定义一个用于创建对象的类,该类接受一个参数,通过参数决定创建不同的对象。GOF并没有把简单工厂方法定义为23种设计模式之一,可以认为简单工厂方法是工厂方法的简化形式。为了体现简单工厂方法和工厂方法的区别和联系,此处把简单工厂方法先单独讲一下。2 模拟场景假设你要生产电脑,电脑由硬盘、内存条、CPU、主板的部件组成。你为了保证供应链可靠,每种部件都选择了至少两家供应商。比如:硬盘供应商 seagate、Toshiba内存条供应商 SAMSUNG、Cr

2021-06-17 09:44:17 592

原创 C语言实现面向对象编程

GOF的《设计模式》一书的副标题叫做“可复用面向对象软件的基础”,从标题就能看出面向对象是设计模式基本思想。由于C语言并不是面向对象的语言,C语言没有直接提供封装、继承、组合、多态等面向对象的功能,但C语言有struct和函数指针。我们可以用struct中的数据和函数指针,以此来模拟对象和类的行为。所以在正式开始设计模式前,先看看如何用C语言实现面向对象编程。本章针对面向对象的封装、继承、组合、多态给出C语言的实现方法。1 封装封装是指对象仅暴露必要的对外接口(这里指public方法)来和其它

2021-06-17 08:42:24 4245

原创 Unix编程艺术---数据驱动编程

《Unix编程艺术》作者在介绍Unix设计原则时,其中有一条为“表示原则:把知识叠入数据以求逻辑质朴而健壮”。数据驱动编程的核心数据驱动编程的核心出发点是相对于程序逻辑,人类更擅长于处理数据。数据比程序逻辑更容易驾驭,所以我们应该尽可能的将设计的复杂度从程序代码转移至数据。真的是这样吗?让我们来看一个示例。假设有一个程序,需要处理其他程序发送的消息,消息类型是字符串,每个消息都需要一个函数进行处理。第一印象,我们可能会这样处理:void msg_proc(const char *msg...

2021-06-15 09:16:52 183

原创 UML学习之:类图

UML学习之:类图1.关于UML回顾20世纪晚期--准确地说是1997年,OMG组织(Object Management Group对象管理组织)发布了统一建模语言(Unified Modeling Language,UML)。UML的目标之一就是为开发团队提供标准通用的设计语言来开发和构建计算机应用。UML提出了一套IT专业人员期待多年的统一的标准建模符号。通过使用UML,这些人员能够阅读和交流系统架构和设计规划--就像建筑工人多年来所使用的建筑设计图一样。2.UML类图在...

2021-06-14 10:27:03 2601

原创 设计模式的C语言实现--MVC模式

MVC 编程模式MVC 是三种 ASP.NET 编程模式中的一种。MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:Model(模型)表示应用程序核心(比如数据库记录列表)。 View(视图)显示数据(数据库记录)。 Controller(控制器)处理输入(写入数据库记录)。 MVC 模式定义 Web 应用程序 带有三个逻辑层: 业务层(模型逻辑) 显示层(视图逻辑).

2021-06-12 11:39:09 1190

原创 设计模式的C语言实现--适配器模式

将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。你想使用一个已经存在的类,而它的接口不符合你的需求。你想创建一个可以复用的类,该类可以与其它不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。(仅适用于对象Adapter)你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。在单片机C中,该模式用的很少,大概如下:#def...

2021-06-12 09:11:46 423

原创 设计模式的C语言实现--桥接模式

将抽象部分与它的实现部分分离,使它们都可以独立地变化。考虑装操作系统,有多种配置的计算机,同样也有多款操作系统。如何运用桥接模式呢?可以将操作系统和计算机分别抽象出来,让它们各自发展,减少它们的耦合度。当然了,两者之间有标准的接口。这样设计,不论是对于计算机,还是操作系统都是非常有利的。在单片机中,该模式用的很少,大概如下:typedef struct _CPU { void (*assemble_cpu_imp)( struct _CPU* cpu ); int type;}...

2021-06-12 09:09:04 394

原创 设计模式的C语言实现--策略模式

在软件配置阶段,根据开关状态的不同,我们给一个接口赋一个具体实现,在软件运行阶段,仅调用接口。//开关配置过程typedef void ( *ProcStrategy )( void );void proc_strategy1( void ){ printf( "proc_strategy1\r\n" );}void proc_strategy2( void ){ printf( "proc_strategy2\r\n" );}#define LOWEND_TYP...

2021-06-12 09:05:23 126

原创 设计模式的C语言实现--装饰模式

装饰模式是比较好玩,也比较有意义。其实就我个人看来,它和责任链还是蛮像的。只不过责任链是比较判断,而装饰器是迭代处理。装饰模式就是那种迭代处理的模式,关键在哪呢?我们可以看看如下函数。void wapper( int( *func )( int, int ), int num1, int num2 ){ printf( "进入装饰器\n" ); //类似回调函数嘛,函数前后 可以进行装饰或者其他逻辑处理 func( num1, num2 ); printf( "走出装...

2021-06-11 16:16:35 430

原创 设计模式应用

分类:根据其目的(模式是用来做什么的)可分为创建型,结构型和行为型三种。创建型主要用于创建对象。结构型主要用于处理对象或类的组合。行为型主要用于描述对象或类怎样交互和怎样分配职责。创建型模式如下:5个建造者模式、工厂模式、抽象工厂模式、单例模式、原型模式结构型模式如下:7个组合模式、适配器模式、装饰模式、外观模式、桥接模式、代理模式、享元模式行为型模式如下:11个观察者模式、状态模式、责任链模式、访问者模式、命令模式、模...

2021-06-11 16:11:36 154

原创 设计模式的C语言实现--组合模式

组合模式多个对象形成树形结构以表示“整体--部分”的结构层次。组合模式对单个对象(即叶子对象)和组合对象(即父对象)的使用具有一致性。组合模式又可以称为“合成模式“ 或 ”整体-部分模式”,属于对象的结构型模式,它将对象组织到树形结构中,可以用来描述整体与部分的关系。链表的实现就是一个很好的例子:typedef struct _parse_handler_list { const char *handler; struct _parse_handler_lis...

2021-06-11 16:06:27 321 1

原创 设计模式的C语言实现--外观模式

typedef struct _Computer { void ( *work )( void );} Computer;void work( void ){ printf( "work here!\n" );}typedef struct _Phone { void ( *contact )( void );} Phone;void contact( void ){ printf( "contact here!\n" );}typedef st...

2021-06-11 15:58:05 245

原创 设计模式的C语言实现--建造者模式

一句话理解将一个人拆分为:手、脚、头、眼睛、鼻子、嘴,,,各个模块实现自己功能,最终组合为一个人举例 以前买电脑的时候,大家都喜欢自己组装机器。一方面可以满足自己的个性化需求,另外一方面也可以在价格上得到很多实惠。但是电脑是由很多部分组成的,每个厂家都只负责其中的一部分,而且相同的组件也有很多的品牌可以从中选择。这对于我们消费者来说当然非常有利,那么应该怎么设计呢?typedef struct _AssemblePersonalComputer{ void (*assemble_cp..

2021-06-11 15:51:18 284

原创 设计模式的C语言实现--观察者模式

抽象出众多对象共同的属性,该属性变化后,其他属性全部跟着改变,而不需要针对每个对象依次修改基本知识1、又叫发布-订阅模式。2、两个角色:观察者和被观察对象3、两者之间存在“观察”的逻辑关联4、当被观察者发生改变的时候,观察者就会观察到这样的变化,并且做出相应的响应5、“观察”不是“直接调用”6、实现观察者模式有很多形式,比较直观的一种是使用一种“注册——通知——撤销注册”的形式。实现步骤1、观察者将自己注册到被观察对象中,被观察对象将观察者存放在一个容器里2、被观察对象发生了某种变

2021-06-11 13:56:45 569

原创 设计模式的C语言实现--策略模式

策略模式和状态模式,是大同小异的;状态模式讲究的是状态的变化,和不同状态下,执行的不同行为;而策略模式侧重于同一个动作,实现该行为的算法的不同,不同的策略封装了不同的算法。策略模式适用于实现某一功能,而实现该功能的算法是经常改变的情况。在实际工作中,遇到了实际的场景,可能会有更深的体会策略模式的三种角色抽象策略类(Strategy):定义所有支持的算法的公共接口。具体策略类(ConcreteStrategy):以Strategy接口实现某具体算法。环境类(Context) :维护一个对S

2021-06-11 09:33:46 744

原创 好的设计模式应该遵守的原则

单一职责原则要求在软件系统中,一个类只负责一个功能领域中的相应职责开闭原则要求一个软件实体应当对扩展开放,对修改关闭,即在不修改源代码的基础上扩展一个系统的行为里氏代换原则可以通俗表述为在软件中如果能够使用基类对象,那么一定能够使用其子类对象依赖倒转原则要求抽象不应该依赖于细节,细节应该依赖于抽象;要针对接口编程,不要针对实现编程接口隔离原则要求客户端不应该依赖那些它不需要的接口,即将一些大的接口细化成一些小的接口供客户端使用合成复用原则要求复用时尽量使用对象组合,而不使用继

2021-06-11 09:14:14 108

原创 设计模式的C语言实现--访问者模式

句话理解主要处理一些指定场景的环境,某人或事访问到你之后,根据该人的特性,给予回复。(如果特性会经常性变化,则不适合该设计模式)前提不知不觉当中,我们就到了最后一种设计模式,即访问者模式。访问者模式,听上去复杂一些。但是,这种模式用简单的一句话说,就是不同的人对不同的事物有不同的感觉。比如说吧,豆腐可以做成麻辣豆腐,也可以做成臭豆腐。可是,不同的地方的人未必都喜欢这两种豆腐。四川的朋友可能更喜欢辣豆腐,江浙的人就可能对臭豆腐更喜欢一些。那么,这种情况应该怎么用设计模式表达呢?例子typedef

2021-06-11 08:49:55 240

原创 设计模式的C语言实现--状态模式

模式动机状态模式(状态机)是嵌入式开发中最重要、最核心的设计模式之一,毫不夸张的说,是否熟练掌握状态模式,很大程度上直接决定了嵌入式工程师的代码掌控能力。在嵌入式开发里面,几乎80%以上的程序都有状态模式(状态机)的影子。在一个思路清晰而且高效的程序中,必然有状态模式(状态机)身影浮现。但是很多嵌入式开发者只是掌握一些很基础的状态机编程,对状态机编程如果提高程序的可维护性和可拓展性并没有一个深刻的理解。这里我通过一个简单易懂的MP3播放器案例,把自己独家总结的状态机六步法分享给大家,帮助大家在啃下状态

2021-06-10 22:30:18 517

原创 设计模式的C语言实现--事件处理

嵌入式软件都是接受到一个事件,然后处理。简单的可以是一个按键点灯程序。检测到按键便是一个事件,点灯便是事件的处理。用代码可以这样表达static void LedOn() \\点亮一个LED{ ... }static int isKeyDown() \\检测按键是否按下{ ...}int main(){ while(1){ if(isKeyDown()) //事件检测 LedOn(); ...

2021-06-10 22:08:26 2449 1

原创 设计模式的C语言实现--命令模式

命令模式。先来看一个通讯协议相关的例子,数据帧定义如下:帧长度 传感器类型 数据 1字节 1字节 n字节 传感器数据格式定义如下传感器 类型号 数据格式 温度传感器 1 整型数据(4字节) 湿度传感器 2 整型数据(4字节) 解析实现可如下实现:static int parse(const char *data,size_t n){ int len = data[0]; int type =.

2021-06-10 21:26:46 290

原创 数据结构--循环队列

1. 顺序队列的假溢出&循环队列的概念我们已经明白了队列这种基本数据结构,对于顺序队列而言,其存在已经足够解决大多时候的设计问题了,但是其依旧存在一些缺陷和不足,因为我们的入队和出队操作均是直接在其后面进行结点的链接和删除,这就造成其使用空间不断向出队的那一边偏移,产生假溢出。什么是假溢出?打一个比方:(示例顺序队列)回顾一下队列的性质,首先我们有一个顺序队列,这个队列的大小为5,其已经包含了四个元素data1,data2,data3,data4,接着,我们对这个队列进行出队操作,出

2021-06-10 09:02:06 627

原创 鸿蒙系统简介

================鸿蒙系统简介================================鸿蒙OS开发社区================开放原子基金会鸿蒙OpenHarmonyOS官方代码仓库:https://openharmony.gitee.com/华为发行版鸿蒙HarmonyOS官方代码下载库:https://repo.huaweicloud.com/harmonyos/os/鸿蒙OpenHarmonyOS 1.1..0LTS版本https://repo.hu...

2021-06-09 16:43:58 4453

原创 Zephyr Tick Clock

在Zephyr Tick Clock简介一文中分析tick clock的工作原理提到每个tick中断的时候将会调用z_clock_announce,通知现在已经走了一个tick了,同时也提到了tick clock是sheep time和wait timeout的基础设施,本文将分析Zephyr的Timeout模块,说明Zephyr如何管理timeout对象,以及如果驱动timeout。Timeout本身会去驱动Zephyr内核的时间片,本文不对该部分进行分析。同时我们继续以tickless kernel

2021-06-08 13:50:54 541

原创 zephyr-双向链表

先来看看结点的数据结构:struct_dnode{union{struct_dnode*head;/*链表头指针(sys_dlist_t)*/struct_dnode*next;/*下一节点指针(sys_dnode_t)*/};union{struct_dnode*tail;/*链表尾指针(sys_dlist_t)*/struct...

2021-06-07 11:23:17 241

jerry-libm-internal 数学库文件,计算三角函数,开方运算等,极高精度

jerry-lib 数学库文件,计算三角函数,开方运算等,极高精度

2024-07-24

mcu flash编程算法文件

mcu flash编程算法文件

2023-05-27

iap-vs-app ymodem VS2010实现

iap_vs_app ymodem VS2010实现

2023-05-05

Ymodem PC c语言实现

Ymodem PC c语言实现

2023-05-05

Ymodem文件传输更新APP程序

MCU Ymodem文件传输更新APP程序

2023-05-05

pyOCD-0.8.1a1.tar

pyOCD-0.8.1a1

2023-03-26

C# 串口通信编程代码和资料

C# 串口通信编程代码和资料 du洋

2023-02-23

C# 串口通讯零基础到精通

C#串口通讯C#开发

2023-02-19

C# 串口通信Winform 界面编程

C# 串口通信Winform 界面编程

2023-02-19

RISC-V 体系结构原理与编程资料

# Bumblebee_Core_Doc The directory to save Bumblebee core's documentsMCU. iscv-mcu # Looking for Nuclei RISC-V Core ISA

2022-10-23

FatFs 文件系统在nor flash 移植

FatFs Module Source Files R0.12 FILES 00readme.txt This file. history.txt Revision history. ffconf.h Configuration file for FatFs module. ff.h Common include file for FatFs and application module. ff.c FatFs module. diskio.h Common include file for FatFs and disk I/O module. diskio.c An example of glue function to attach existing disk I/O module to FatFs. integer.h Integer type definitions for FatFs. option Optional external functions.

2022-09-03

CmBacktrace: ARM Cortex-M series MCU error tracking library

CmBacktrace: ARM Cortex-M series MCU error tracking library

2022-08-28

stm32-iap-uart-app-master

stm32-iap-uart-app-master

2022-07-11

stm32-iap-uart-app_lite-master

stm32-iap-uart-app_lite-master

2022-07-11

STM32 IAP升级 & 串口升级

STM32 IAP升级 & 串口升级

2022-07-11

STM32F030参考手册中文cn

STM32F030参考手册中文cn

2022-07-01

rt-thread-3.1.0

rt-thread-3.1.0 支持I2C 等驱动

2022-05-15

stm32f103zet6_rtthread-main

stm32f103zet6_rtthread-main rtthread

2022-05-12

en.stsw-stm32054_v3-6-0_en.stm32cubef1

en.stsw-stm32054_v3-6-0 en.stm32cubef1 STM32 demo STM32 HAL 库 和 函数库

2022-05-06

GD32F10x_Demo_Suites_V2.1.1

GD32F10x_Demo_Suites_V2.1.1 sdk GD32F103xx_Datasheet_Rev2.9

2022-05-05

GD32E23x_Demo_Suites_V1.1.0 GD32X中文用户指南

GD32E23x_Demo_Suites_V1.1.0 GD32X中文用户指南,SDK开发手册

2022-05-05

图像阴影检测与去除算法 Shadow Detection and Removal

Shadow Detection and Removal 代码,图像阴影检测与去除算法效果优秀

2022-04-26

STM32F103中文教程及参考手册

STM32F103中文教程及参考手册

2022-04-13

基于Ymodem协议串口升级程序的实现过程

在实现了简单的串口更新代码之后,便开始考虑到了传输的数据的完整性、正确性和安全性,因此想到了在数据传输中添加通信协议,最常用的通信传输协议有:XModem、YModem、ZModem等,此次选用的协议是YModem协议。当然我们也可以自定义协议,只是自定义协议也需要我们自定义发送端。 一、YModem协议简介 YModem协议是XModem的改进协议,它最常用于调制解调器之间的文件传输的协议,具有快速,稳定传输的优点。它的传输速度比XModem快,这是由于它可以一次传输1024字节的信息块,同时它还支持传输多个文件,也就是常说的批文件传输。 YModem分成YModem-1K与YModem-g。 YModem-1K用1024字节信息块传输取代标准的128字节传输,数据使用CRC校验,保证数据传输的正确性。它每传输一个信息块数据时,就会等待接收端回应ACK信号,接收到回应后,才会继续传输下一个信息块,保证数据已经全部接收。 YModem-g传输形式与YModem-1K差不多,只是它去掉了数据的CRC校验码,同时在发送完一个数据块信息后,它不会等待接收端的ACK信号,而直接传输下一个数据块

2022-04-07

lv_pc_simulator1

lv_pc_simulator1

2022-03-22

LittlevGL_Application-master

LittlevGL_Application-master VS2019 编译

2022-03-22

LittlevGL_Application-master 综合应用

LittlevGL_Application-master 综合应用

2022-03-19

lv_port_win_visual_studio lv drivers

lv_port_win_visual_studio-master lv drivers

2022-03-19

lvgl freetype

lvgl freetype

2022-03-19

基于vs2019的lvgl模拟器lv_sim_visual_studio_sdl

基于vs2019的lvgl模拟器lv_sim_visual_studio_sdl lv_sim_visual_studio_sdl(lv_port_win_visual_studio) 需要依赖于:lvgl、lv_drivers、freetype。 (1)lv_port_win_visual_studio-master.zip (2)freetype-946e1353eaa34872d0b138a13820fc03a782c545.zip (3)lv_drivers-1bd4368e71df5cafd68d1ad0a37ce0f92b8f6b88.zip (4)lvgl-9fcefe5a49a024054a3cee08d273b8fe5cf8840e.zip

2022-03-19

LittlevGL_Demo-master.zip

LittlevGL_Demo-master

2021-09-26

LittlevGL综合应用程序

LittlevGL 综合demo

2021-09-26

littleVGL文档PDF汇总.7z

littleVGL文档PDF汇总

2021-09-26

littleVGL离线文档.7z

littleVGL离线文档

2021-09-26

littevgl ChineseFont.zip

littevgl ChineseFont 显示文件

2021-09-26

LvglFontTool_V0.3_littevgl

LvglFontTool更新V0.3 V0.3 1、增加AWESOME图标的支持。 2、增加导入文本文件。 3、修复使用XBF外部FLASH字体出错的BUG。 4、去除字模上下空白内容,节省了空间。 Awesome使用说明: 1、鼠标选中图标,双击添加到右测,或选中后使用下方添加选中图标按钮。 2、删除图标可以直接在右测编辑删除。 3、最终转换的是右测添加的图标。 4、Awesome版本更新时可以更换awesome目录下的2个文件即可更新。 5、调用方法是直接用图标对应的编码,如 "\uF000","ABC\uF001","中\uF003国"。

2021-09-26

pc_simulator_win_codeblocks_lvgl700-master.zip

pc_simulator_win_codeblocks_lvgl700

2021-09-18

LittleVGL模拟器环境a(CodeBlocks).rar

包含 codeblocks-17.12mingw-setup.exe 、SDL2-devel-2.0.10-mingw.tar.gz、lv_pc_simulator.zip 。使用请参考:https://blog.csdn.net/lbaihao/article/details/120338015

2021-09-18

darknet-master开源深度学习框架

darknet是一个较为轻型的完全基于C与CUDA的开源深度学习框架,其主要特点就是容易安装,没有任何依赖项(OpenCV都可以不用),移植性非常好,支持CPU与GPU两种计算方式。

2021-05-29

UGUI-master.7z

µGUI v0.3 简单开源的 嵌入式小Gui ,本文档简单介绍了UGUI的使用方法和可以移植到任何嵌入式系统中,可以方便编写TFT 显示屏。Open Source GUI modulefor embedded systemsGUI是一个用于嵌入式系统的免费开源图形库。它是平台无关的,可以很容易地移植到几乎任何微控制器系统。只要显示器能够显示图形,GUI就不局限于某种显示技术。因此支持LCD、TFT、E-Paper、LED、OLED等显示技术。整个模块包括两个文件:ugui.c和ugui.h。

2021-04-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除