自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (7)
  • 收藏
  • 关注

原创 快速计算代码行小工具

非常方便用于统计代码行的小工具叫line-counter,使用以下命令获取工具: pip install line-counter使用"line"命令可以获取当前目录下的文件与行数统计,效果如下$ lineSearch in C:\Users\Code\Project\src\file count: 17line count: 4001$lineSearch in C:\User...

2022-02-23 00:41:30 3379

原创 VirtualBox虚拟机串口调试方法

1.windows下调试virtualbox的虚拟机串口2.Cannot open /dev/ttyS0: Permission denied解决出现了Cannot open /dev/ttyS0: Permission denied提示字样解决方法如下:1.由于tty属于“dialout”组别,比如用户名是admin123,先命令查看下用户隶属的组别groups admin1232.如果没有隶属“dialout”,那么把用户加入进去sudo gpasswd --add admin123 d

2022-02-18 17:48:16 6359

原创 协议栈设计_LwIP笔记

文章目录LWIP主进程工作链路层LWIP数据包收发函数框架ARP(地址解析协议)表ARP表查询IP层ICMP处理(Internet 控制报文协议)TCPIP_Thread线程启动流程**tcpip_thread主线程处理**LWIP主进程工作/* LWIP 协议模拟了 TCP/IP 协议的分层思想,表面上看 LWIP 也是有分层思想的,但从实现上看, LWIP 只在一个进程内实现了各个层次的所有工作。具体如下: LWIP 完成相关初始化后,会阻塞在一个邮箱上,等待接收数据进行处理。这个邮箱内的数据

2021-06-18 17:37:16 533

原创 libevent笔记

文章目录1.文档链接2.安装3.测试4. Event5.事件处理框架6.集成信号处理1.文档链接Libevent Reference2.安装# 查询libevent库sudo apt-cache search libevent# 安装相关库sudo apt-get install libevent-2.1-7 libevent-dev# 查询是否安装成功apt list --installed|grep libevent3.测试#include <stdio.h>#i

2021-06-07 14:34:30 172

原创 Modbus协议笔记

文章目录一、Modbus简介Modbus是 OSI 模型第 7 层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备。Modbus是一个请求/应答协议,并且提供功能码规定的服务。Modbus功能码是 Modbus请求/应答 PDU 的元素。之间提供客户机/服务器通信。MODBUS 协议定义了一个与基础通信层无关的简单协议数据单元(PDU)。特定总线或网络上 的 MODBUS 协议映射能够在应用数据单元(ADU)上引入一些附加域。二、Modbus类型* 串行链路上的 ModbusMO

2021-03-04 15:44:54 513 1

原创 STM32学习笔记9——移植FreeRTOS

开发环境硬件环境:STM32F103C8T6软件环境:STM32CubeIDE1.4.0前置条件准备一个工程下载FreeRTOS的源码FreeRTOS移植1.移植FreeRTOS源码在工程文件中新建文件夹 —— FreeRTOS(存储FreeRTOS源码)*打开 FreeRTOS 源码文件夹, 将其中的include文件夹复制到刚刚新建的FreeRTOS文件夹中。然后include同目录下新建一个文件夹——portable进入portable文件夹,在FreeRTOS源码文件

2021-03-03 15:27:13 378 1

原创 Linux系统工具系列:Systemd

Systemd 入门教程:命令篇Systemd 入门教程:实战篇Systemd设计目标是为系统的启动和管理提供一套完整的解决方案。以下为创建一个VNC Server 的守护进程sudo vim /etc/systemd/system/[email protected][Unit]Description=Remote desktop service (VNC)After=syslog.target network.target[Service]Type=simpleUser=sab

2021-01-10 21:46:00 124 1

原创 搭建Window10 VNC远程访问ubuntu20.04

Ubuntu desktop 18.04自带了的GNOME桌面系统,这个Ubuntu默认的桌面是有桌面共享功能的,使用的就是Vino软件。Vino是GNOME桌面环境的默认组件,是VNC(虚拟网络计算)服务器,允许远程主机连接到Ubuntu 18.04的实际桌面。但是,最小化安装的Ubuntu不带Vino,是没有共享功能的。一、安装Vino软件sudo apt-get updatesudo apt-get install vino二、配置屏幕共享打开 设置–>共享(Setting–>

2021-01-10 16:55:19 6935 2

原创 STM32CubeIDE:如何将STM32F103C8T6项目移植到STM32F103RCT6上

背景介绍本项目是在Atollic TrueSTUDIO for STM32 9.3.0中采用STM32标准库生成的STM32工程项目,之后采用STM32CubeIDE进行开发。现需要将C8T6工程文件移植成RCT6工程文件。未在STM32CubeIDE生成工程文件的原因是,该IDE无法生成标准库项目。操作步骤1.修改工程文件 .cproject用文本编辑器(vscode)打开.cproject工程文件,采用查找替换的方式,将工程文件中的原单片机型号“STM32F103C8Tx”替换成“STM32F1

2020-11-10 10:58:05 4102

原创 单片机I/O控制方式

单片机如何实现当一个程序在访问一个I/O设备时,而不占用CPU呢?对于这个问题,我们先了解一下单片机I/O设备有哪几种主要的控制方式;程序循环检测中断驱动直接内存访问一、程序循环检测基本思路:在设备驱动程序当中,通过不断地检测I/O设备的当前状态,来控制一个I/O操作的完成。这种方式也称为是繁忙等待方式或轮询方式。缺点:在进行一个I/O操作的时候,要一直占用着CPU,这样就会浪费CPU的时间。二、中断驱动方式基本思路:当一个用户任务需要进行I/O操作时,会去调用相应的系统函数,由

2020-09-17 10:15:33 1696

原创 程序设计风格

不要把变量定义放入.h文件,这样容易导致重复定义错误。尽量使用static关键字把变量定义限制于该源文件作用域,除非变量被设计成全局的。也就是说,可以在头文件中声明一个变量,在用的时候包含这个头文件就声明了这个变量。extern 使用记录:1.定义也是声明,extern声明不是定义,即不分配存储空间。extern告诉编译器变量在其他地方定义了。eg:extern int i; //声明,不是定义 int i; //声明,也是定义 2.如果声明有初始化式,.

2020-06-23 10:12:17 302

原创 习题6-3 使用函数输出指定范围内的完数 (20分)

本题要求实现一个计算整数因子和的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有完数。所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。函数接口定义:int factorsum( int number );void PrintPN( int m, int n );其中函数factorsum须返回int...

2020-04-29 16:43:21 1391

原创 习题5-7 使用函数求余弦函数的近似值 (15分)

使用函数求余弦函数的近似值函数接口定义:double funcos( double e, double x );其中用户传入的参数为误差上限e和自变量x;函数funcos应返回用给定公式计算出来、并且满足误差要求的cos(x)的近似值。输入输出均在双精度范围内。裁判测试程序样例:#include <stdio.h>#include <math.h>dou...

2020-04-29 11:31:33 724

原创 习题5-6 使用函数输出水仙花数 (20分)

习题5-6 使用函数输出水仙花数 (20分)水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如: 153 = 1^3^ + 5^3^ + 3^3^。 本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。函数接口定义:int narcissistic( int number );void ...

2020-04-29 10:49:57 1565

原创 习题5-4 使用函数求素数和 (20分)

习题5-4 使用函数求素数和 (20分)本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。函数接口定义:int prime( int p );int PrimeSum( int m, int n );其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数PrimeSum返回区间[m...

2020-04-29 09:22:44 1471

原创 RT_Thread:使用ADC设备读取STM32F429内部温度传感器

RT-Thread:ADC 设备Env 用户手册使用Env配置工程文件在工程目录下启动Env,使用menuconfig进入配置界面打开ADC选项保存并退出,然后使用scons --target=mdk5 -s 命令生成工程在DevicDrivers文件夹下生成了adc.c文件使用ADC设备读取温度传感器在这里添加RT_Thread源码中的stm32f429-atk-apo...

2020-02-19 22:54:54 2048

原创 Linux开发常遇问题

linux 缺少动态连接库.so–cannot open shared object file: No such file or directory主要有3种方法:1. 用ln将需要的so文件链接到/usr/lib或者/lib这两个默认的目录下边ln -s /where/you/install/lib/*.so /usr/libsudo ldconfig2.修改LD_LIBRARY_PA...

2020-02-13 10:46:09 115

原创 C++学习随笔1

顶层const和底层const的区别:顶层const表示任意的对象是常量底层const与指针和引用等复合类型的基本类型部分有关在执行拷贝操作时,顶层const和底层const区别明显。顶层const不受影响,底层const限制 拷入和拷出的对象必须具有相同的底层const资格,或者两个对象的数据类型必须能够转换。一般来说,非常量可以转换成常量,反之则不行。const int v2=0; ...

2020-02-08 11:41:37 112

原创 树与二叉树的应用

文章目录树与二叉树的应用1.二叉排序树的应用1.1定义1.2基本操作2.平衡二叉树3.哈夫曼树和哈夫曼编码树与二叉树的应用1.二叉排序树的应用1.1定义 二叉排序树(也称二叉查找树)或者是一颗空树,或者是一颗具有下列特性的非空二叉树: 1. 若左子树非空,则左子树上所有节点关键字值均小于根节点的关键字值。 2. 若右子树非空,则右子树上所有节点关键字值均大于根节点的关键字值。 3. ...

2019-11-06 21:59:38 587

原创 数据结构学习笔记------图

** 主要掌握深度优先搜索与广度优先搜索的程序设计 **掌握图的基本概念及基本性质(度、路径长度、回路、路径等)、图的存储结构及其特性。存储结构之间的转化、基于存储结构上的遍历操作和各种应用(拓扑排序:AOV网最小生成树:Prim算法、Kruskal算法最短路径:Dijkstra算法、Floyd算法关键路径: AOE网)等。重点掌握其基本思想和实现步骤,而算法的具体实现则不重要结...

2019-08-16 18:16:45 235

原创 步进电机驱动器TB6600与DRV8825的比较

属性TB6600DRV8825输入电压DC9-42V8.2V-45V输入电流5A2输出电流0.5-4.0A最大2.5A最大功率160W234细分1,2/A,2/B,4,8,16,322,4,8,16,32工作温度-10~45℃电机使用常见问题解答(FAQ)1、问:初次使用该步进驱动器,如何能尽快上手?答:正...

2019-06-10 18:26:15 4737 1

原创 linux 缺少动态连接库.so--cannot open shared object file: No such file or directory

修改LD_LIBRARY_PATHexport LD_LIBRARY_PATH=/where/you/install/lib:$LD_LIBRARY_PATHsudo ldconfig

2019-05-20 17:13:28 1490

原创 在Linux中,创建.desktop运行程序的快捷方式

在 Linux 中,一个 .desktop 文件就是一个用来运行程序的快捷方式。.desktop 文件基本上就是一个包含程序信息的纯文本文件根据可见用户不同,将.desktop文件放在不同的目录中:自己可见: ~/.local/share/applications/所有用户可见: /usr/share/applications/在我目前做的项目是一个使用PyQt5编写的GUI,通过以下步...

2019-05-09 17:00:03 3868

原创 linux上Serial port terminal > Cannot open /dev/ttyS0: Permission denied

使用PyQt5的QtSerialPort模块开发串口通信遇到如下问题:Cannot open /dev/ttyS0: Permission denied解决方法:# First 检查当前用户所在的组groups ${USER}# Second 由于ttyS0是属于dialout组的,所以只需将当前用户加入dialout group就能解决Permission deniedsudo g...

2019-05-05 11:44:24 1256

原创 STM32学习笔记8 ------- IIC通信协议原理及使用

IIC(Inter-Integrated Circuit)通信协议由于它引脚少,硬件实现简单,可扩展性强,不需要使用USART、CAN等通信协议的外部收发设备,被广泛地用于系统内多个集成电路间的通信。分层简化复杂问题芯片被分为内核层和片上外设STM32标准库则是在寄存器与用户代码之间的软件层通信协议则可将其分为物理层和协议层物理层 规定通信系统中具有机械、电子功能部分的特性,确保...

2019-03-28 16:46:24 858

原创 Mac源码安装OpenCV

下载OpenCV下载OpenCV,并切换到指定分支下:$ git clone https://github.com/opencv/opencv.git$ cd opencv$ git checkout 3.4$git branch编译安装OpenCV$ mkdir build$ cd build$ cmake ..$ make$ sudo make install安装p...

2019-03-05 00:19:58 1090 1

原创 STM32学习笔记7 --------- DMA(直接存储器访问)

DMA主要功能:传输数据,但不需要占用CPU。数据支持从外设到存储器或者从存储器到存储器(SRAM或Falsh)DMA控制器独立于内核,包含DMA1和DMA2,其中DMA1有7个通道,DMA2有5个通道,可看成传输数据的管道,DMA2只存在于大容量的单片机中。从编程的角度看,只需掌握以下3部分即可:1.DMA请求外设要通过DMA来传输数据,必须向DMA控制器发送DMA请求。不同的D...

2019-02-21 16:38:08 246

原创 Python为什么不支持函数重载?

在考虑为什么Python不提供函数重载前,我们要研究为什么需要提供函数重载。在静态语言中,方法重载是希望类可以以统一的方式处理不同类型的数据提供可能性。多个同名函数同时存在函数重载主要解决两个问题:可变参数类型可变参数个数另外,一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的,此时才使用函数重载,如果两个函数的功能其实不同,那么不应当使用重载,而...

2019-02-11 23:10:23 762

原创 STM32学习笔记6 --------- NVIC中断优先级管理

CM3内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。但是STM32并没有使用CM3内核的全部东西,而是只用了它的一部分。STM32有84个中断,包括16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级。在STM32F103系列上,只有60个(在107系列才有68个)。抢占优先级的级别高于响应优先级,而数值越小所代表的优先级就越高。...

2019-01-22 16:08:49 424

原创 STM32学习笔记5 --------- 外部中断

如何将STM32的IO口作为外部中断输入?外部中断/事件控制器(EXTI)由19个产生事件/中断要求的边沿检测器组成。每个输入线可以独立地配置输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿或者双边沿都触发)。每个输入线都可以被独立的屏蔽。EXTI控制器的主要特性:每个中断/事件都有独立的触发和屏蔽每个中断线都有专用的状态位支持多达19个中断/事件请求检测脉冲宽度低于APB2时...

2019-01-21 11:16:50 796

原创 Python的创建型设计模式学习笔记

关乎对象创建方式的设计模式就是"创建型设计模式", 有时候需要以更灵活的方式来创建对象,这正是创建型设计模式的用途。文章目录1、抽象工厂模式2、建造者模式3、工厂方法模式4、原型模式5、单例模式1、抽象工厂模式"抽象工厂模式"用来创建复杂的对象,这种对象由许多小对象组成,而这些小对象都属于某个特定的"系列"(family)2、建造者模式"建造者模式"与抽象工厂模式类似, 都可以创建那种需...

2019-01-16 18:11:35 136

原创 STM32学习笔记5-------MDK的编译过程及文件类型

首先复习一下C语言的编译过程:我们写出的C语言代码(.c文件),若要在机器上运行,需要经过一个编译过程,主要分为如下四个阶段(预处理、编译、汇编、链接):预处理阶段,即完成宏定义和include 文件展开等工作;生成.i文件。GCC命令为:·gcc -E根据编译参数进行不同程序的优化,编译成汇编代码;生成.s文件。GCC命令为:·gcc -S用汇编器把上一阶段生成的汇编代码进一步生成目标...

2019-01-10 15:36:27 346

原创 STM32学习笔记3 ------------ STM32标准库

基于Cortex系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异,而这些差异导致软件在同内核、不同外设的芯片上移植困难。为解决不同的芯片厂商生产的Cortex位控制器软件的兼容性问题,ARM与芯片厂商建立了CMSIS(Cortex MicroController Software Interface Standard)标准。CMSIS标准,实际是在用户层或操作系统和MCU之间建立一...

2019-01-04 22:13:03 357

原创 STM32学习笔记2--------使用寄存器点亮LED

启动文件(startup_stm32f10x_hd.s)当STM32芯片上电启动的时候,首先会执行这里的汇编程序,从而建立起C语言的运行环境。该文件使用的汇编指令是Cortex-M3内核支持的指令,可参考《Cortex-M3权威指南》中的指令集内容。主要功能:初始化堆栈指针SP初始化程序计数器指针PC设置堆栈大小初始化中断向量表配置外部SRAM作为数据存储器(这个由用户配置,一般的...

2019-01-04 17:09:18 2104 1

原创 STM32学习笔记1--------GPIO

STM32GPIO口8种模式细致分析GPIO ----------- 通用输入输出端口(可控引脚)最基本输出功能:控制引脚输出高、低电平,实现开关控制。最基本的输入功能:检测外部输入电平。GPIO基本结构分析:1.保护二极管引脚的两个二极管可以防止引脚外部过高或过低的电压输入。当引脚电压高于VDD时, 上方的二极管导通当引脚电压低于VSS时, 下方的二极管导通防止不正常电压引...

2019-01-04 14:47:09 307

原创 PyQt5项目开发笔记

QDialog 中模态与非模态对话框模态与非模态对话框模态对话框模态对话框是只能首先对其进行操作后才能操作其他窗口的对话框。实质是父线程在子线程创建这个模态对话框后,父线程阻塞,等待子线程的操作。非模态对话框非模态对话框则是可以同时对它和其他窗口进行操作的对话框。实质是父子进程并行运行。模态种类enum WindowModality {NonModal,WindowModal,...

2018-12-18 00:24:17 708

原创 Linux下控制打印机笔记

管理打印机和打印ubuntu环境下把word文档转换成pdf在linux中如何使用CUPS进行打印CUPS(Common UNIX Printing System)通用打印系统**,是linux的打印机和打印作业管理器。LPD(行式打印机守护程序),使用等宽字符和单一字体每次打印一行文本。许多支持图形打印机的打印机最初使用的都是Adobe PostScript语言。PostScript打...

2018-12-12 20:08:50 2020

原创 用python对S曲线加减速建模

from scipy import integrateimport matplotlib.pyplot as pltimport numpy as np%matplotlib inlinedef sigmoid(x, a): return (1/(1 + np.exp(-(x-a))))x = np.arange(0, 20., 0.2)# sig = sigmoid(x)...

2018-12-09 16:48:42 2871

原创 PyQt5实战笔记

Label的文字字体水平垂直居中self.wait_lab.setAlignment(QtCore.Qt.AlignCenter)self.wait_lab.setAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignVCenter)使用QSS设置样式Qt Style Sheets ExamplesPyqt QSS简单的Ui美化Qt css样...

2018-12-09 16:47:05 940

原创 python静默打印pdf

import win32apiimport win32print def print_pdf(self, pdf_file_name): &amp;amp;amp;quot;&amp;amp;amp;quot;&amp;amp;amp;quot; 静默打印pdf :param pdf_file_name: :return: &amp;amp;amp;quot;&amp;amp;

2018-12-02 21:27:20 6920 2

DALI200-3266.exe

DALI调光软件

2021-03-15

org.eclipse.cdt.ui_6.6.0.201909091956.jar

org.eclipse.cdt.ui_6.6.0.201909091956.jar STM32CubeIDE自动补全插件 将其替换到STM32CubeIDE目录下STM32CubeIDE\plugins里,比如我的替换的目录是D:\Program Files\STM32CubeIDE_1.4.0\STM32CubeIDE\plugins,记得将原文件备份。

2020-09-11

Virtual_Serial.rar

使用keil软件模拟调试串口数据的发送和接收

2019-07-22

MAC的USB转串口驱动

用于解决Mac下usb无法转串口的问题,安装这个驱动即可解决该问题

2019-03-21

pdf静默打印依赖包

python在windows平台下实现pdf静默所依赖的安装包。其中包括GSPRINT和Ghostscript

2018-12-02

GSPRINT静默打印pdf

GSPRINT用于搭配Ghostscript一起使用,可使用python静默打印pdf

2018-11-22

自然语言处理———停用词

收集的停用词。

2018-09-21

空空如也

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

TA关注的人

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