- 博客(97)
- 资源 (8)
- 收藏
- 关注
原创 【STM8】PWM 捕获实战:占空比和频率(TIM2)
1. 前言基于《【众拳STM8 40 讲】PWM 输入捕获原理与实验(频率)》我们已经了解了利用 STM8 库函数 如何捕获和计算 PWM 的频率,但是确没有介绍占空比的捕获方法。基于《【思修STM8 39 讲】PWM 输入捕获之占空比测量(寄存器版)》我们了解了 PWM 捕获的详细流程步骤,但是其并非利用 STM8库函数 实现,同时也没有利用中断实现采集。基于《【STM8】PWM 捕获实战:占空比和频率(TIM1)》我们了解了利用PWM输入模式和复位触发模式采集 PWM,但是并非所有定时器都具
2021-05-13 15:33:05
3176
4
原创 【STM8】PWM 捕获实战:占空比和频率(TIM1)
1. 前言基于《【众拳STM8 40 讲】PWM 输入捕获原理与实验(频率)》我们已经了解了利用 STM8 库函数 如何捕获和计算 PWM 的频率,但是确没有介绍占空比的捕获方法。基于《【思修STM8 39 讲】PWM 输入捕获之占空比测量(寄存器版)》我们了解了 PWM 捕获的详细流程步骤,但是其并非利用 STM8库函数 实现,同时也没有利用中断实现采集。下面我们介绍利用 STM8库函数 和 中断 的方式来实现利用 TIM1 捕获 PWM 占空比和频率。2. 实现代码PWM..
2021-05-13 15:24:14
3877
原创 【基础】RS触发器
▪ RS触发器实验RS触发器是时序电路中最基础的,所以务必学的透彻。RS触发器,我们可以简单将它理解为一个存储单元,可以存储一位数据(0或者1)。基本的RS触发器可以用两个 与非门 或者 或非门 实现:此处我们利用两个 或非门 组成的RS触发器实验,先建立一个感性的认识,便于理解。这个电路我们引出了 R端(橙色线),S端(灰色线);同时 Q 连接上面的LED灯,`Q 连接下面的 LED 灯,便于查看实验结果。电路搭建完成后,直接上电(如上图),...
2021-04-16 22:51:02
46985
2
原创 SVN 提交忽略文件和目录汇总
▪SVN 忽略介绍默认情况下,SVN 会提交本地全部的文件。如果你想让 SVN 忽略指定的名字文件或目录,那么就需要设置 svn:ignore 或 svn:global-ignores 属性。svn:ignore 只对当前目录起作用svn:global-ignore 对当前电脑里所有的目录起作用svn:ignore 或 svn:global-ignores 属性用于设置本地工作目录下的哪些目录或文件不用进行版本管理,这样在本地对这些内容进行添加、修改等操作时,SVN 都会对其忽略。.
2021-03-15 15:10:11
1776
原创 【基础】电动势、电位、电压、电压降
电动势、电位、电压、电压降,他们的单位都是 V(伏特),他们的主要区别就是描述方式和位置不同而已。1. 电动势(E)简单来说就是电源内的原始电压,等于其他能转化过来的电压,例如电池是化学能转化过来的电压,发电机是机械能通过磁场转化过来的电压,太阳能板是光能转化过来的电压,变压器是由输入电流的变化通过磁场转化过来的电压。例如一个电池,由于化学反应的速度等等因素会形成一个对电流的阻碍作用,所以电池不是一个理想的电源,它等效于:一个电池 = 理想电源 1.5V(电动势)+...
2021-03-14 21:34:46
7896
1
原创 【STM8】串口数据一直卡在读中断
▪ 现象STM8 UART1 开启了读中断,初始化代码如下:// 配置串口参数为:波特率115200,8位数据位,1位停止位,无校验,禁止同步传输,允许接收发送UART1_Init((u32)115200, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE); // 启用 UART1 中断// UART1_IT_RXN
2021-03-04 09:08:33
1284
2
原创 【众拳STM8 47 讲】CAT24WC 存储器工作原理
特点与400KHz I2C总线兼容 1.8到6.0伏工作电压范围 低功耗CMOS技术 写保护功能当WP为高电平时进入写保护状态 页写缓冲器 100万次编程/擦除周期 可保存数据100年 8脚DIP SOIC或TSSOP封装 温度范围商业级和工业级概述CAT24WC01/02/04/08/16是一个1K/2K/4K/8K/16K位串行CMOS,EEPROM内部含有128/256/512/1024/2048个8位字节CATALYST公司的先进CMOS技术实质上减少了器件的功耗,CAT2
2021-03-04 08:10:25
1032
1
原创 【众拳STM8 46 讲】I2C 串形总线工作原理
I2C总线特点1. I2C总线由飞利浦推出的一种串行总线2. 具备多主机系统(可以外挂很多器件:如STM8,收音机等),具有总线裁决和高低速器件同步功能的高性能串口总线3. I2C总线只有两根双向信号线:数据线SDA(Serial Data),时钟线SCL(Serial Clock)4. I2C总线相当于公路主干道,外挂器件相当于交通工具,只要遵守协议就可以跑数据5. I2C适合板载芯片之间的通讯,不适合远距离通讯I2C总线协议I2C总线通过上拉电阻(2.2K)接正电源。当总
2021-03-04 08:00:09
212
1
原创 【PIC】IO 口控制(TRISx,PORTx, ANSELx)
I/O控制对于单片机而言是最基础最核心的东西,其实单片机除了模/数转换之外的事情。其他大部分的事情I/O口都能做的到。I/O控制简单却能千变万化。单片机在大部分应用中做的事情,莫过于 输入高低电平 ,输出高低电平。就是通过这简单的控制电平来实现大多数的应用控制。1. 什么是 I/O 口?I 表示 IN(输入),O 表示 OUT(输出),所以 I/O = 输入/输出2. I/O 具体能做什么呢?如果你是刚刚步入电子的新手,那你最好要知道一下I/O口具体能做什么。感性的认识对你的..
2021-02-27 10:08:55
5220
原创 【PIC】单片机基本概述
1. 公司PIC 单片机是 Microchip(微芯) 公司的产品,始于1989年。2. 精简指令集技术传统的单片机采用复杂指令集(Complex Instruction Set Computer, CISC)结构,通常有50~110条。而 PIC 采用精简指令集(Reduced Instruction Set Computer, RISC),其高中低档分别为58,35和33条NOP:除了消耗单片机一个指令周期外,没有任何其他影响3. 哈弗总线结构PIC 单片..
2021-02-27 10:03:08
4431
原创 Linux 服务器修改卷组挂载目录
▪ 前言通常购买 VPS 后, 服务商默认会将硬盘空间分为两部分:系统盘+数据盘卷组。比如 120G 的 VPS,进入 SSH 后 df -h 可以看到如下数据:$ df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/centos-root 8.5G 938M 7.6G 11% /devtmpfs 1.9G 0 1.9G 0
2021-01-23 07:59:31
445
1
原创 CentOS 7 安装 GitLab 中文版
▪ 前言Gitlab接触了一段时间,觉得是一个很不错的开源产品(gitlab的社区版),值得我整理一篇部署教程作为记录。安装全程选择的用户为 root▪ 环境操作系统:CentOS 7.6▪ 更换阿里 YUM(个人习惯)// 备份默认的 YUMmv /etc/yum.repos.d /etc/yum.repos.d.backup// 设置新的 YUM 目录mkdir /etc/yum.repos.d// 下载阿里 YUM 配置到该目录中wget -..
2021-01-22 14:45:50
411
原创 【二极管】主要种类
二极管分为好多种,可以说除了电阻电容外用的比较多的一种元器件,那么二极管分为哪些类型呢?1、稳压二极管稳压二极管,有时候又叫齐纳二极管。原理是是利用pn结反向击穿状态,电流在很大范围内变化但是电压却基本维持不变。稳压二极管是以击穿电压来分等级的,如果想要获得较高的电压可以串联使用,这一可以得到更高的输出恒定电压。例如1N4620稳压3.3V、1N4625稳压5.1V等,功率在从200mW到100W不等。2、发光二极管利用含镓(Ga)、砷(As)、磷(P)等化合物制成。砷化镓二极管发红光,碳化硅二极
2021-01-12 08:15:55
1343
原创 【二极管】稳压二极管全面分析
一、什么是稳压二极管1、稳压管简介稳压二极管有时候又叫齐纳二极管,稳压管二极管的一种,它比较特殊,基本结构与普通二极管一样,也有一个PN结。由于制造工艺的不同,当这种PN结处于反向击穿状态时,PN结不会损坏(普通二极管的PN结是会损坏),在稳压二极管用来稳定电压时就是利用它的这一击穿特性。一般二极管反向电压超过其反向耐压值时会被击穿而损坏,但是稳压二极管在承受反向电压达到稳压值时,反向电流急剧增大。只要反向电流值不超过允许的最大电流,就可以正常工作,它的反向伏安特性曲线较陡、线性度很好。2、稳压管工
2021-01-12 08:12:44
11893
2
原创 【MOS管】基础知识和简易电路
1. 简介一、MOS管,是MOSFET的缩写。MOSFET金属-氧化物半导体场效应晶体管,简称金氧半场效晶体管(Metal-Oxide-Semiconductor Field-Effect Transistor, MOSFET)。其中,G是栅极,S是源极,D是漏极。二、常见的 NMOS 和 POMS 的原理与区别NMOSNMOS 英文全称为 N-Metal-Oxide-Semiconductor。 意思为N型金属-氧化物-半导体,而拥有这种结构的晶体管我们称之为 NMOS 晶体管。MOS晶体管
2021-01-11 16:00:51
8378
1
原创 【MOS管】快速认识
1. MOS的三个极怎么判定?2. 他们是N沟道还是P沟道?3. 寄生二极管的方向如何判定?4. MOS管能干吗用?在我们天天面对的笔记本主板上,MOS管有一个很重要的作用:开关作用以上MOS开关实现的是信号切换(高低电平切换)。再来看个MOS开关实现电压通断的例子吧,MOS开关实现电压通断的例子:由+1.5V_SUS产生+1.5V电路...
2021-01-11 15:48:19
848
原创 WPF 自定义表单控件项:Label + TextBox
▪ 前言WPF 内置了丰富的 UI 控件,但是他们都是独立。在实际的开发中,我们经常需要将几个 UI 控件组合起来用。比如下面 效果图 中的 “账号输入项”:背景白色,左侧 Label控件,右侧 TextBox控件。当然它还有一些变种:背景是透明的,下面有条白线。为了和 “UI 控件” 名字区分,我们约定将几个 “UI 控件” 组合的统称为 “表单控件项”▪ 效果图▪ 原始实现白色背景的 表单控件项(账号输入项)实现代码:<DockPanel Width="360" Height="3
2021-01-08 11:58:56
2659
原创 WPF 之 DataGrid 入门实践三:样式美化
▪ 前言.Net 对 UI 控件提供了丰富的样式设置属性,但是当你不是很熟练或者长时间没有使用后很容易忘记其样式的属性,这里对常用的 DataGrid 样式设置做个笔记,以便日后查阅。▪ 基本样式DataGrid 的视图代码:# xaml<DataGrid Style="{StaticResource styleDataGridView}" Height="600"> <DataGrid.Columns> <DataGridTextColumn
2021-01-08 11:57:09
2923
原创 WPF 之 DataGrid 入门实践二:数据保存
▪ 前言在 《WPF 之 DataGrid 入门实践一》 中,我们已经初识 DataGrid 控件,也看到了 DataGrid 的样子。接下我们就要学习 DataGrid 最为重要的功能,就是保存修改后的 DataGrid 数据。▪ 基础代码在 《WPF 之 DataGrid 入门实践一》 中,我们已经构建显示在 DataGrid 表中的数据,为了适应本章的内容,我们稍微重构了 实践一 中的基础代码。重构前台 XAML 代码:# xaml<DataGrid x:Name="uiStuden
2021-01-08 11:55:52
1923
原创 WPF 之 exe 单文件打包工具:LibZ
▪ 前言在 VS 开发过程中我们需要不断的编译软件并进行测试,同时 VS 会自动在项目跟目录的 \bin\Debug 文件夹里生成一系列文件(包括程序执行的主 exe 文件)。对于简单 WPF 程序,我们通常可以直接拷贝 [Project Sub]\bin\Debug 下程序主 exe 文件就可以到其他机子使用了,当然前提是机子要已经装了对应的 .Net Formework 版本库但是有时候我们会在项目引入其他第三方库(非 .Net 框架内置的库)并在代码中使用,例如:处理 JSON 数据的 Newt
2021-01-08 11:45:56
1655
原创 WPF 之布局参考:登录窗口 01
▪ 布局效果▪ 布局代码<Window [...] Width="400" Height="240" WindowStyle="None" AllowsTransparency="True" ShowInTaskbar="False" Background="#00FFFFFF" WindowStartupLocation="CenterScreen" Topmost="True"> <Border CornerRadius="10,10,10,10" Background=
2021-01-08 11:44:12
145
原创 PHP-FPM 性能优化
▪ 前言基于 Nginx, PHP-FPM 的网站,有时候会发现出现以下错误:The page you are looking for is temporarily unavailable.Please try again later.排查服务器发现 Nginx 正常,PHP-FPM 也有进程,但是网页就是无法正常打开,重启 PHP-FPM 后网站就正常打开了。▪ 分析找到 PHP-FPM 的错误日志文件,并查阅:$ tail /usr/local/php/var/log/php-fpm.lo
2021-01-08 11:42:03
1557
原创 数码管:3位6脚的数码管分析和编码
▪ 基本简介一个1位数码管共有8段:ABCDEFG+小数点,如下图:按照我们常规的设计方案一个 IO 口控制一个段,一个1位数码管那么就需要8个IO。当然我们也可以使用扩展 IO 芯片(例如 74HC164、74HC595),那么这种方案就占用单片机2~3个IO和一个扩展IO芯片。现在我们需要控制一个3位的数码管:采用IO口直控:那么需要单片机 IO 口24个 采用扩展 IO 芯片控制:那么需要单片机 IO 口 2~3 个但是市面上有些 3 位的数码管只有 6 个接口,如..
2020-12-29 09:41:51
12321
13
原创 【算法】查理复用算法(Charlieplexing)
▪ 基本信息基于程序算法让相同针脚数量的IO口能点亮更多的灯,模拟物理方式扩展 IO口;例如常规的设计 6 个IO口只能驱动 6 个LED灯,但利用算法优化有6个IO口就可以驱动 30 个 LED 灯。这就是著名的 查理复用算法,实现的效果:N 个 IO 口可以驱动 N*(N-1) 个 LED 灯;▪ 实现原理步骤1. 一个非常简单的示例该电路使用两个端口控制两个LED。这里是工作原理。两个LED反并联连接,红色LED的阳极(左)连接到绿色LED的阴极(右)。当 Port1.
2020-12-29 09:05:31
7228
原创 PHP 之极速生成唯一编码字符的方法
▪ 前言经常有项目需要使用一些邀请码、激活码、兑换码等唯一的编码!通常的做法是随机生成一个邀请码,然后进行数据库查询匹配,如果已经存在则再随机生成一个,如是循环!但在编码位数有限(比如:8位的邀请码)和已有大量邀请码数据的情况下,上述做法将逐步造成邀请码唯一率生成的概率低下,最终因不停的循环查库导致程序超时或失败!那么有没有一种邀请码的生成方式不需要进行数据库查询匹配,在其生成的时候就能确定唯一邀请码呢?当然有,而且算法很多,但是像普遍的方法(比如利用时间戳、MD5等)生成的邀请码位数都会比较长,如果你
2020-12-25 14:01:45
891
原创 【STM8】IAR 项目新建步骤
一、新建项目目录和子文件夹新建如下文件夹名:二、将 STM8 库文件放入到 LIB 里STM8 库文件如下:STM8 库文件包:【由于CSDN无法上传附件,请到资源中心下载】LIB.rar三、新建 IAR 项目3.1 新建项目打开 IAR 软件,新建项目:Project -> Create New Project ...将项目文件保存到第一步新建的的 “IAR” 目录中,文件名可以直接按照项目的名称命名。3.2 在IAR项目增加组在 I.
2020-12-23 10:33:19
1960
原创 CentOS 通过 yum 安装 mcrypt 时无法找到包
▪ 前言本篇排错的前提是只想用 yum 安装,不想使用源码包编译安装。▪ 错误MySQL 安装依赖 libmcrypt 包,最快捷的方法就是使用 yum 安装:$ yum -y install libmcrypt执行以后出现以下错误:Setting up Install ProcessNo package libmcrypt available.Error: Nothing to do我们会看到 CentOS yum 从仓库中根本找不到这几个包。但我不想使用源码编译就想使用yum安装,
2020-12-19 08:14:45
428
1
原创 CentOS 7 之源码编译安装 VSFtpd
▪ 环境操作系统:CentOS 7.4(阿里云,最小化安装)软件版本:VSFtpd 3▪ 安装1. 基础软件通过 rpm -qa | grep name 的方式验证以下软件包是否已全部安装。gcc gcc-c++ libcap libcap-devel tcp_wrappers tcp_wrappers-devel db4-utils pam-devel如果缺少相关的软件包,可通过 yum -y install 的方式在线安装,或直接从系统安装光盘中找到并通过 rpm -ivh 的方式安装。
2020-12-19 08:13:59
2230
2
原创 CentOS 7 下源码编译安装 Git
▪ 环境操作系统:CentOS 7.4(阿里云,最小化安装)▪ 前言CentOS 自带 Git,CentOS 7.x 版本自带 Git 的 1.8.x 版本,目前官方最新版本已经到了 2.13.x。自带的实在是太老旧了,想要安装最新版本的的 Git,只能下载源码进行安装。1. 安装1. 查看 yum 源仓库的 Git 信息在 CentOS 命令模式下输入:$ yum info git我们可以找到 CentOS 自带的 Git 版本为 Version : 1.8.3.1,而查看 Git官网
2020-12-18 16:02:40
702
1
原创 WPF 异步更新 UI 的几种方法
▪ 说明首先强调一点:异步更新 UI 实际上就是新开一个线程,然后线程执行一些耗时的任务,而 UI 线程继续响应用户的操作。但是 WPF 的机制确限制新开的线程不能直接访问 UI 控件,所以 非UI线程 访问 UI 控件就需要用一种特殊的方法来执行。▪ 使用 Task 类异步更新环境:Task 类需要 .Net 4.0 以上案例:UI 上有三个 TextBlock,一个 Button逻辑:当点击 Button 的时候新三个 Task 产生随机数(模拟耗时操作),然后将产生的随机数给UI显示pr
2020-12-17 08:19:34
3233
原创 WPF 内置 BUG 之:ResizeMode 和 窗体尺寸
▪ 前言在用 .Net 4.0 开发 WPF 软件时,我们可能需要禁用或者隐藏窗口右上角的 最小化、最大化或关闭 按钮(当然同时可能也伴随着需要固定窗口尺寸的要求)。好在 WPF 已经为我们提供了非常方便的方法,利用 Window 标签的 ResizeMode 属性,我们可以按需设置自己想要的效果:<Window x:Class="CarSensorMelexis.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006
2020-12-17 08:18:57
2592
1
原创 WPF 控件自定义模板之:圆形进度条
▪ 前言项目开发需要,需要做一个圆形的进度条,但是发现 WPF 自带的进度条控件 ProgressBar 无法直接变成圆形,经过不停的Baidu、Google,终于找到了基于 ProgressBar 构建圆形进度条的方法▪ 效果图▪ 辅助控件引用在改造 ProgressBar 控件中,我们将用到 ControlTemplate 模板功能以及 <ed:Arc> 控件。<ed:Arc> 是一个画圆弧的控件(非 WPF 内置的控件),所以我们必须引用进来,否则使用将编译出错。
2020-12-17 08:18:26
2001
1
原创 WPF 控件自定义模板之:ProgressBar
▪ 扁平化<Window.Resources> <Style x:Key="styleProgressBar" TargetType="ProgressBar"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ProgressBar">
2020-12-17 08:17:55
586
原创 WPF 窗口接收 Windows 消息
▪ Windows 消息在做一些 COM 串口、USB 相关的软件时,我们需要程序实时监测这些端口的状态:比如是否新插入、是否拔出等等,从而让软件做出相应的动作。实际编写过程中,▪ WPF 处理 Windows 消息的几种方式1. Windows API 钩子WPF 的窗体并没有 Winform 中的 Handle,所以在使用 API 时并不能直接使用设置或者移除钩子。要想使用 API 的 SetWindowsHookEx, UnhookWindowsHookEx, CallNextHookEx
2020-12-17 08:17:24
1913
原创 DevExpress 性能优化之 ChartControl:方法一
▪ 场景:采用 ChartControl:XYDiagram2D(折线图),从示波器里实时采集 600 个点数据并显示在 折线图 中。▪ 问题:假设我们实时采集数据的时间间隔是 0.5 秒,但是由于 ChartControl 控件 重绘这 600 个点所需的时间大于这个时间间隔,并且随着程序的执行内存的消耗,重绘时间将还会大一点,从而导致了 折线图 的数据大大延迟于示波器的实时数据。同时由于 ChartControl 控件 一直占用主UI线程,导致整个界面响应卡顿。▪ 解决使用 .BeginIn
2020-12-17 08:16:50
2936
1
原创 DevExpress 控件快速上手之 ChartControl:XYDiagram2D(折线图)
▪ 前言DevExpress 中有一个专门用来绘制图表的插件 ChartControl,可以绘制折线图、饼状图、柱状图等图表。这篇文章将介绍如何快速上手 XYDiagram2D(折线图) 的使用方法。动态创建,顾名思义就是利用 C# 创建一个折线图。相对于动态,还有一个是静态创建,简单讲静态创建就是直接在 xaml 里编写折线图的代码,其好处就是可以直接利用 VS2015 的工具箱和属性进行可视化拖拽修改,方便快捷。但是出于灵活性和重用性的考虑,推荐使用动态创建;本文也将全部采用动态创建的方式来构建
2020-12-17 08:16:19
3923
2
原创 C# 中往按钮事件中传递自定义参数
▪ 前言通过 C# 代码动态生成的按钮,需要自定义点击事件。但是生成的点击事件的参数是固定的,如何才能传入自定义的参数?默认的固定参数Button button = new Button(){ Margin = new Thickness(5), Content = "我是按钮",};button.Click += uiButton_Click;// 生成的点击事件的方法参数是固定的private void uiButton_Click(object sender, Ro
2020-12-17 08:15:41
1864
原创 C# 中定时器的种类和常用方法
▪ 前言在 .Net 常用的定时器类有下面三种,使用定时器时需要设定参数,如间断时间、定时器计溢出后的回调函数、延时、开始等,定时器的主要方法有开始、终止等,不同的定时器实现上述的方法会有一些差异,本文会针对具体的定时器一一举例说明。System.Windows.Forms.Timer 定时器类System.Threading.Timer 定时器类System.Timers.Timer 定时器类▪ System.Windows.Forms.Timer从这个定时器的命名空间可以看出,.Net
2020-12-17 08:15:10
2343
1
Color Admin v5.0.zip
2021-06-28
STM8 开发:IAR 项目新建步骤.rar
2020-12-23
Color Admin 4.7.zip
2020-12-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人