vim 设置Tab为4个空格

vim 默认的tab键是8个空格,为了更好符合常用的显示方式,想把tab键换成4个空格

1、 空格|tab 长度设置

配置文件位置:
~/.vimrc

配置文件中如果要添加注释,不能用#,要使用”

" add tab space
set ts=4
set softtabstop=4
set shiftwidth=4
set expandtab
set autoindent

ts 是tabstop的缩写,设TAB宽度为4个空格。

softtabstop 表示在编辑模式的时候按退格键的时候退回缩进的长度,当使用 expandtab 时特别有用。
shiftwidth 表示每一级缩进的长度,一般设置成跟 softtabstop 一样。
expandtab表示缩进用空格来表示,noexpandtab 则是用制表符表示一个缩进。
autoindent自动缩进

2、已存在的文件 空格|tab 长度替换
TAB替换为空格

:set ts=4
:set expandtab
:%retab!

空格替换为TAB

:set ts=4
:set noexpandtab
:%retab!

加!是用于处理非空白字符之后的TAB,即所有的TAB,若不加!,则只处理行首的TAB。

Ubunt18.04 把 Home 文件夹的中文名称更改为英文

安装Ubutnu 中文语言版本后,/home/user_name 目录下的默认目录都是中文的,命令行操作时非常不方便。需要把它们更改为英文。
如下方法理论上适合所有Debian 系 Linux 系统。

1.命令行终端中先修改语言为英语

export LANG=en_US

2.然后执行如下命令

xdg-user-dirs-gtk-update

系统弹出提示,仔细看看,点击同意更改中文文件夹为英文
再更改语言为中文

export LANG=zh_CN

3.reboot重启

弹出提示框, 点击取消更改为英文文件夹为中文, 并勾选不再询问。

搞定!

Linux中执行bash脚本报错/bin/bash^M: bad interpreter: No such file or directory

问题描述:Linux中采用绝对路径执行Bash脚本,报错-bash: /home/xxx.sh: /bin/bash^M: bad interpreter: No such file or directory

第一步:使用下述命令看看该文件的格式,dos格式的文件行尾为^M$,unix格式的文件行尾为$

cat -A xxx.sh

第二步:使用下述命令直接替换结尾符为unix格式

sed -i "s/\r//" xxx.sh

第三步:再次使用 cat -A xxx.sh命令可以看到文件的格式为unix格式

然后就可以正常运行了。

佛祖保佑,永无Bug

//
//                            _ooOoo_
//                           o8888888o
//                           88" . "88
//                           (| -_- |)
//                            O\ = /O
//                        ____/`---'\____
//                         .' \\| |// `.
//                       / \\||| : |||// \
//                     / _||||| -:- |||||- \
//                       | | \\\ - /// | |
//                     | \_| ''\---/'' | |
//                      \ .-\__ `-` ___/-. /
//                   ___`. .' /--.--\ `. . __
//                ."" '< `.___\_<|>_/___.' >'"".
//               | | : `- \`.;`\ _ /`;.`/ - ` : | |
//                 \ \ `-. \_ __\ /__ _/ .-` / /
//         ======`-.____`-.___\_____/___.-`____.-'======
//                            `=---='
//
//         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//                  佛祖保佑             永无BUG

数字示波器的重要参数

带宽

是示波器的核心参数,决定了示波器的性能等级,大家知道,示波器本身也是电子电路组成,电路上的元器件对频率有一个响应范围,一个示波器的性能越高,能处理的信号频率越高,能捕捉到更高频率的输入信号。而被测信号,往往是不同频率叠加后的波形,如果示波器的带宽很低,信号的高频部分就会丢失,被测信号的波形就会失真。

带宽的单位是(Hz),带宽对应的是信号频率。

示波器的带宽和被测信号的频率一般来讲有个5倍关系,即100M采样率的示波器,能检测到的被测信号的最大频率为20M。

大多数示波器制造商将带宽定义为正弦波输入信号衰减到71%(-3dB点)时的频率。如果输入的信号不是一个纯净的正弦波,波形中将包含更高的频率谐波。比如,一个20MHz的方波如果用20MHz带宽的示波器显示的话,将显示出一个衰减且的波形。

采样率

事实上我们看到的示波器上的波形,是一个个点连接起来组成的图形,而这个点越密,则采样率越高,波形越精准,道理挺简单,放个图看看就更加简单,图中靠上的都是原始波形,左边只有6个采样点的情况下,失真很厉害,27个采样点时,波形更接近原波形:

采样率的单位是(Sa/s),其中Sa是sample的缩写,整个意思就是每秒的采样点数量,比如我们常说的采样率为1G Sa/s的示波器,就是1秒钟能采样1G个采样点的意思。奈奎斯特准则指出,取样率必须是待测信号最大频率的两倍以上,对于示波器来说需要5倍以上才能精确描绘波形。

大多数示波器有两种不同的取样模式(即时取样和等效取样),依待测信号而定。等效取样通常也被称为重复取样,只有当待测信号固定且重复时才能应用。但是,如果信号是短暂的或不断变化的(比如视频波形),那么等效取样将无法使用,只能依靠即时(单次)的取样。

一些示波器有不同的取样率,依使用的通道数而定。最典型的就是单通道模式的取样速率是双通道模式的两倍。

存储深度

代表了一次可以连续记录的信号点的数量,它影响了波形回放的分辨率,这个存储深度当然是越大越好的,同样的时间显示单位下,存储深度越大,波形越不容易失真。当然存储深度越大,需要更大的存储器,存下来的数据还要显示到屏幕上,兼顾用户体验,所以对CPU的负荷也越高。

存储深度这个参数的单位是(pts),是points的缩写,意思就是采样点,比如250Mpts,就代表了该示波器能存储250M个点的数据。

取样率和存储器大小的关系是非常重要的。高取样率低存储器的示波器只能在短暂测量时间里用最大取样率撷取信号。小存储器的示波器在显示的波形好像是没有问题,但是当波形进行局部放大时,小存储器的缺点就会显现出来(波形失真)。

通道数

名义上很好理解,就是你们能看到的示波器上探头接入的数量,一般用用双通道就够了,高端示波器往往具备4通道或以上,还有混合通道,多路模拟+数字通道的配置,这种配置的示波器简称MSO,它在普通示波器功能基础上实现了一定的逻辑分析功能。

垂直分辨率

在大多数电子产品中,信号偏差1%没什么问题,但在音讯电子产品中,0.1%的偏差或杂讯会导致很大问题。目前绝大多数示波器提供8bit解析度,它可以最大检测到0.4% (1/256)的信号偏差。

8bit的解析度,电压范围可分为256级。即电压范围每增加/减少1V,相当于每级为8mV。在音讯、杂音、振动和监控感测器(温度、电流、压力)方面,8bit的示波器就不够用了,可能考虑用12bit或16bit的示波器。

波形刷新率

波形每秒钟的刷新次数,示波器的屏幕刷新率一般就是几十Hz,波形刷新率不等同于屏幕刷新率,示波器内部有波形合成,示波器上显示的一幅图像,实际上是有多帧波形合成,更高的波形刷新率不容易漏过那些突变的波形,带来更真实的展示。

波形刷新率的单位是(wfms/s),意思就是每秒能刷新的波形数量。

触发功能

示波器的触发功能就是能在信号水平轴上找出正确的同步位置,这对信号特征分析是非常关键的。触发功能可以让你在固定重复的波形中撷取特定波形位置。一般示波器都提供基本的触发选项(来源、电平、斜率、预先/延迟触发),更高级的触发功能是否有用需取决于待测信号。

解决Windows 7,Windows10系统串口号被占用而不断增加的问题

一. 问题由来

Windows系统使用USB 转串口工具或者USB接口的开发板时,Windows系统是依据所接入的USB设备的VID、PID以及序列号三者组合的不同而分配不同的COM口编号,同一个厂商的VID/PID完全相同,但是系统在每次检测到新USB设备接入后,会根据新的序列号在当前已经占用的COM口编号基础上递增分配新的COM口编号,后续即使设备已被拔出,所分配的COM端口在该系统上仍然处于被占用的隐藏状态,由此产生了许多被占用的多余的COM端口。

二. 解决方法

1. 删除占用的串口号

    1. 用管理员身份运行命令行。命令set devmgr_show_nonpresent_devices =1

    1. 打开设备管理器。点击菜单 查看 > 显示隐藏设备, 显示隐藏的没有连接到电脑上的设备名称。

    1. 在设备管理器窗口左侧展开串口部分,将可以看到所有已被分配的COM口的设备列表。选择相应的串口设备,通过右键菜单> 卸载。

2.让同型号的设备串口号不再增加

如果并不希望系统接入的同一个厂商相同型号的设备COM口编号随着不同设备的接入而变化,需要固定使用同一COM口编号,可以通过修改注册表相关选项让Windows系统忽略指定的VID/PID设备的序列号。

如果知道对应厂商的VID,PID 可以直接打开注册表编辑器,定位到计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags 在窗口右侧,右键-->新建-->二进制值,然后在出现的新值 #1上右键重命名为IgnoreHWSerNumXXXXYYYY,XXXX为厂商VID, YYYY为厂商PID,然后在它上面右键-->更改二进制数据,在弹出的数值数据中输入01,确认保存。

另外,可以新建一个文本文档,输入以下内容后,并把XXXX,YYYY更改为对应的VID,PID,保存时把文件后缀由.txt 改为.reg,然后双击同意更改注册表就可以了。

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags] 
"IgnoreHWSerNumXXXXYYYY"=hex:01 

如果不知道厂商的PID,VID可以定位到注册表计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\COM Name Arbiter\Devices,在右侧的对应的COMx 中可以看到对应的vid_xxxx, pid_yyyy,如下图以COM33 为例: