Markdown--使用技巧
Markdown 使用技巧Markdown 简介Markdown 是一种轻量级标记语言,用于格式化纯文本。主要用于编写文档、博客、README 文件等,使用markdown应该是程序员必备技能之一。本网站所有文章也均使用Markdown格式编写。以下介绍一些Markdown 的基本语法。 基本语法1、标题使用 # 符号创建标题,# 的数量代表标题的级别。 123# 一级标题## 二级标题### 三级标题 2、段落与换行段落之间需要一个空行。 换行:在行末加两个空格。 12这是第一行 这是第二行 3、强调 加粗:使用 ** 或 __ 包围文本。 斜体:使用 * 或 _ 包围文本。 加粗斜体:使用 *** 或 ___ 包围文本。 123**Test***Test****Test*** 效果如下:TestTestTest 4、列表无序列表:使用“-”、“*” 或 “+” 创建。 12- 项目1- 项目2 效果如下: 项目1 项目2 有序列表:使用数字加上 “.”创建。 121. 第一项2. 第二项 5、链接与图片 12链接:[链接文本](链接地址)。图片:![图片描述]...
shell--数组的使用
shell 数组的使用数组的定义在 Shell 中,数组的定义非常简单。以下是几种常见的定义方式: 1、普通定义 12345num=(1 2 3 4 5)str=('a' 'b' 'c' 'd' 'e')# 也可直接定义下标值str[0]='a' 2、特殊定义 12345678910# for循环中声明for i in {1..5}; doecho $i# 自定义分隔符str="a,b,c,d,e"IFS=","arr=($str)这时候arr数组中的值就是str中的“a b c d e”,需要注意的是,分隔符 (IFS) 被重新定义后,可能会影响其他代码,所以最好在使用后还原 IFS 3、关联数组这个需要在bash 4版本以上才能用。关联数组允许你使用字符串作为数组的索引。 123# 预先定义一个数组,包含一些指定的字符串declare -a my_array=("Apple" &...
通讯协议--I2C
通讯协议I2C 协议I2C 是一种双线半双工的通信协议,只能用于短距离通信。实现I2C需要两根信号线完成信息交换,SCL时钟信号线,SDA数据输入/输出线。它属于同步通信,由于输入输出数据均使用一根线,因此通信方向为半双工。 I2C 采用单总线通信,即所有设备都连接到同一个总线上,并且同一时间只能有一个设备在总线上进行通信。 通讯方式数据通信中,传输方式可以分为单工通信和半双工通信、全双工通信三种。I2C 采用半双工通信。 单工通信: 是指消息只能单方向传输的工作方式。半双工: 是指数据可以沿两个方向传送,但同一时刻一个信道只允许单方向传送,因此又被称为双向交替通信。全双工: 是指在通信的任意时刻,线路上可以同时存在A到B和B到A的双向信号传输。 工作原理以下是I2C消息数据,被分解为数据帧 。每条消息都有一个地址帧,其中包含从设备的二进制地址,以及一个或多个包含正在传输的数据的数据帧。该消息还包括每个数据帧之间的开始和停止条件、读/写位和 ACK/NACK 位: 起始条件:在 SCL 线 从高电平变为低电平 之前, SDA 线从高电平变为低电平...
Linux驱动--充放电芯片sc8886
SC8886SC8886S 可以管理1至4节电池充电,SC8886S的输入范围从3.5V到24V,它支持预充电、恒流充电、恒压充电。可以通过SMBus端口轻松设置充电/放电模式. 设备树配置1234567891011121314151617sc888x-charger@6b { compatible = "sc,sc8886"; reg = <0x6b>; sc,sc888x-intr-gpio = <&gpio1 23 IRQ_TYPE_EDGE_FALLING>; sc,charge-current = <4000000>; sc,max-input-voltage = <20000000>; sc,min-input-voltage = <4200000>;/* VINDPM*/ sc,max-input-current = <6000000>; sc,max-charge-voltage = <12600000>; sc,input-curr...
shell--alias的使用
alias 使用alias是一个非常有用的功能,它允许用户为常用的命令或者复杂的命令序列创建简短的别名。 基本语法alias的的基本语法如下: 123alias alias_name='command'alias_name 是你为命令创建的别名。command 是原始的命令或者命令序列。 示例经常使用ls -la命令,你可以创建一个别名ll来代替它: alias ll='ls -la'现在,shell中输入ll,它就会被替换为ls -la命令。 临时和持久化Alias临时Alias:在当前shell会话中创建的alias是临时的,一旦退出shell,这些alias就会消失。如果你想在当前会话中使用alias,直接使用上面提到的基本语法即可。 持久化Alias:如果你希望alias在每次打开新的shell会话时都可用,你需要将alias定义添加到你的shell配置文件中。对于Bash shell,通常是/.bashrc文件;对于Zsh,通常是/.zshrc文件。 echo "alias ll='ls -la&...
Linux系统--搭建STM32开发环境
搭建STM32开发环境下载驱动工具 安装openocd 用于发现和连接stlinksudo apt-get install openocd 安装stlink 下载地址:https://github.com/stlink-org/stlink/tags下载源码 stlink-1.8.0.zip 包 123456unzip stlink-1.8.0.zipcd stlink-1.8.0# 编译make# 编译安装make install 在build/Release/bin 生成工具程序./st-flash –version 安装gcc-arm-none-eabi(交叉编译链) 1sudo apt-get install gcc-arm-none-eabi 若编译链版本有要求,可以自行下载对应版本 配置环境变量stm32 网址指导说明,详细介绍了如何下载基础工程和编译环境。如果需要先跑通测试工程,可以参考以下链接指导说明 1、创建目录 123456mkdir STM32-basecd STM32-basemkdir librariesmkd...
Linux工具--xdotool
xdotool 使用笔记简介xdotool 是一个用于模拟键盘输入和鼠标事件的命令行工具。它可以在 X11 系统上自动化许多任务,例如自动点击、键盘输入等。该工具特别适用于自动化测试、脚本编写和提高工作效率。 安装在大多数基于 Debian 的系统(如 Ubuntu)上,可以使用以下命令安装 xdotool: 1sudo apt-get install xdotool 在基于 Red Hat 的系统(如 Fedora)上,可以使用: 1sudo dnf install xdotool 基本使用方法模拟键盘输入使用 xdotool 来模拟键盘输入: 1xdotool type 'Hello, World!' 模拟按键模拟按下和释放一个按键: 1xdotool key Return 模拟按住一个键: 1xdotool keydown Ctrl 模拟释放一个键: 1xdotool keyup Ctrl 模拟鼠标操作移动鼠标将鼠标移动到屏幕上的特定位置: 1xdotool mousemove 100 200 相对当前位置移动鼠标: 1xdotool mousemov...
Linux命令--网络服务相关命令
网络服务相关netstatnetstat 是一个很实用的 Linux 命令,通过它可以显示网络连接,路由表,接口状态,网络链路和组播成员组等信息。最常用的场景是拿来看本机的 TCP/UDP 网络连接,并以此判断本地网络服务的运行状态。 单独使用查看所有连接信息natstat 查看端口占用使用情况 1netstat -tulpn 只显示 TCP 连接信息: 1netstat -t 关于 State 状态字段的值列表如下: 状态名称 说明 ESTABLISHED 套接字有一个有效连接。 SYN_SENT 套接字尝试建立一个连接。 SYN_RECV 从网络上收到一个连接请求。 FIN_WAIT1 套接字已关闭,连接正在断开。 FIN_WAIT2 连接已关闭,套接字等待远程方中止。 TIME_WAIT 在关闭之后,套接字等待处理仍然在网络中的分组 CLOSED 套接字未用。 CLOSE_WAIT 远程方已关闭,等待套接字关闭。 LAST_ACK 远程方中止,套接字已关闭。等待确认。 LISTEN 套接字监听进来的连接。如果不设...
Linux--关于clash使用
clash 使用clash 是一个开源的代理工具 下载clash自行下载 查看与配置123456# 查看版本clash -v# 首次启动clash 可能会存在 Can't find MMDB, start download包内已经下载好 进入家目录 1234cd ~/.config/clash/# 这个修改成为你的订阅链接文件vim config.yaml 使用12345678910111213# 终端启动./clash d# 节点管理配置http://clash.razord.top/#/proxies# ubuntu 代理配置settings -> network -> network proxyhttp代理 127.0.0.1:7890https代理 127.0.0.1:7890socks主机 127.0.0.1 socks代理 7891忽略主机 localhost,127.0.0.0/8,::1 配置成功后,就可以在浏览器中访问了,效果如下: 如果需要配置局域网连接访问,需要在设置界面修改,这样该路由器下所有子设备都可以访问 开机启动设置vim &...
Linux驱动--网卡驱动调试
网卡驱动调试网卡驱动架构理解网卡一般分为MAC和PHY两个部分。 MAC (Media Access Control): 功能:数据过滤,位于CPU和PHY之间。 类别:EMAC(以太网MAC)、GMAC(千兆以太网MAC)。 接口:MII(10/100 Mbps)、GMII(1000 Mbps)、RGMII(减少引脚的GMII)。 PHY (Physical Layer Device): 功能:负责数据的物理传输。 地址:0-31,由板卡电路图决定。 ID:由硬件厂商决定,用于识别PHY芯片。 MAC组件与功能 帧发送:接收上层数据,增加以太网帧头尾。 帧接收:检查数据有效性,转发或丢弃。 GMAC控制:全双工模式下控制帧生成和检测。 GMII管理:控制物理层输入输出,检查状态信息。 工作模式 半双工模式:GMAC client将数据传给GMAC后,GMAC先给数据加上Preamble、FSD、FCS,组成以太网帧;然后检查载波侦听信号(CRS);若有载波信号,表示有数据正在 本地网段上传播,就等待直到载波信号消失;载波信号消失后,GMAC还要等待一...










