通讯协议--CAN转换模块调试
CAN模块调试在工作中经常会遇到不是原生的CAN通讯接口,可能时通过USB或者串口等接口转换。这时我们可以借助 slcand 工具,将这些设备虚拟成标准的 canX 接口,配合 can-utils 工具包进行调试。
安装调试工具 can-utilscan-utils 是Linux下用于调试CAN总线通信的常用工具包,包含 cansend、candump、canconfig 等命令。
安装方式:
1sudo apt-get install can-utils
slcand 简介slcand 是 SocketCAN 提供的串口CAN驱动桥接工具,用于将基于串口的CAN设备(如slcan协议)桥接为 canX 虚拟接口。
常用参数说明:
-c:打开CAN接口(start interface)
-s6:设置CAN速率,对应500kbps(速率参数详见下表)
-o:开启标准输出(通常用于调试)
-f:进入守护进程模式(fork模式)
-S9600:设置串口波特率(根据硬件要求设置)
/dev/ttyACM3:对应你的串口CAN设备路径
can1:指定映射的虚拟CAN接口名
-s参数值
...
Linux系统--ubuntu20.04更新内核
Ubuntu20.04 更新内核20.04发布时间是2020年,内核版本是5.4.0-xx,最新内核版本是5.15.0-xx。但是该内核不支持如intel i9-13900K显卡,需要更新到支持的版本5.19。
步骤1、更新libc6新内核版本需要,更高的libc6版本,在更新内核前需要先更新libc6版本,但是现有的源仓库中libc6版本较低,需要手动添加高版本源。在/etc/apt/sources.list中添加高版本源
1deb http://th.archive.ubuntu.com/ubuntu jammy main
然后执行更新命令
123sudo apt-get updatesudo apt-get install libc6-dbg libc6-dev libc-bin libc-dev-bin libc6 sudo apt-get install libssl3
2、下载内核包
访问ubuntu官网下载发行内核
下载对应版本和架构的安装包,选择kernel-5.19 amd64。下载完成后目录执行
1dpkg -i ./*.de ...
shell--基础范例
shell基础范例shell 常用写法示例,仅供参考。
文件操作路径获取
12345678# 获取文件绝对路径realpath# 获取当前文件所在目录dirname# 分割字符串echo "1,2,3" | cut -d',' -f2 # 输出 2
文件处理
1234567891011121314151617181920212223# 检查文件是否存在if [ -f "filename" ]; then echo "File exists"else echo "File does not exist"fi# 检查目录是否存在,不存在则创建if [ ! -d "dirname" ]; then mkdir dirnamefi# 复制文件cp sourcefile destfile# 移动文件mv sourcefile destfile# 删除文件rm filename# 删除目录及内容rm -rf dirname
帮助信息usage函数中自定义输出提 ...
Linux系统--安装中文拼音
Ubuntu 安装中文拼音基于fcitx框架linux很多输入法都是基于fcitx框架,百度、谷歌和搜狗都基于fcitx框架,以下是以安装搜狗拼音为例
参考网址
安装搜狗拼音1、安装fcitx框架
1234sudo apt install fcitxsudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2sudo apt install libgsettings-qt1
2、卸载系统ibus输入法框架
在终端执行
1sudo apt purge ibus
3、添加中文语言支持打开 系统设置——区域和语言——管理已安装的语言——在“语言”tab下——点击“添加或删除语言”
4、切换fcitx在系统设置中的region and language中
5、官网下载搜狗拼音安装包终端执行
1sudo dpkg -i sougouxxx.deb
6、配置添加sougou输入法
7、重启生效
基于ibus框架ubuntu默认安装ibus框架。
fcitx安装后经常会出问题,特别是关机会守护进程 ...
STM32--sc8815寄存器功能
以下是 SC8815 芯片所用到的寄存器以及对应的功能说明:
1、0x00H VBAT_SET 寄存器
功能:用于设置电池电压相关参数。
位描述:Bit 7-6 (IRCOMP):电池阻抗补偿设置。00:0 mΩ01:20 mΩ10:40 mΩ11:80 mΩBit 5 (VBAT_SEL):电池电压设置选择。0:内部设置1:外部设置Bit 4-3 (CSEL):电池串联节数选择(仅在内部设置时有效)。00:1S01:2S10:3S11:4SBit 2-0 (VCELL_SET):每节电池的电压设置(仅在内部设置时有效)。000:4.1V001:4.2V010:4.25V011:4.3V100:4.35V101:4.4V110:4.45V111:4.5V
2、0x01H VBUSREF_I_SET 寄存器
功能:用于设置内部 VBUS 电压的参考电压。
位描述:Bit 7-0 (VBUSREF_I_SET):内部 VBUS 参考电压设置(高 8 位)。计算公式:VBUSREF_I = (4 x VBUSREF_I_SET + VBUSREF_I_SET2 + 1) x 2 m ...
STM32--开漏输出和推挽输出
STM32推挽输出和开漏输出基本概念1、推挽输出(Push-Pull Output)由互补的N-MOS和P-MOS管构成推挽结构:
高电平输出:P-MOS导通,输出直接连接VDD低电平输出:N-MOS导通,输出直接接地典型应用:LED控制、继电器驱动等需要强驱动能力的场景2、开漏输出(Open-Drain Output)仅包含N-MOS管结构:
低电平输出:N-MOS导通高电平状态:MOS管断开,需外接上拉电阻典型应用:I2C总线、电平转换等需要”线与”功能的场景
核心差异对比
特性
推挽输出
开漏输出
输出结构
双MOS推挽结构
单MOS+外部上拉
驱动能力
强(直接驱动高低电平)
弱(高电平依赖外接电阻)
电平类型
固定电源电压
高电平由外部上拉电压决定
总线冲突防护
无
支持多设备”线与”
功耗
静态电流较大
静态功耗较低
电平转换能力
不支持
支持跨电压域通信
配置方法在gpio初始化的时候配置
推挽输出配置流程123456789101112/* 时钟使能 */RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPI ...
数据库---MySQL使用
数据库 MySQL使用数据格式在 MySQL 中,数据以表的形式存储,每个表由若干列组成,每列有特定的数据类型。以下是一个示例表的结构:
123456789CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, -- 主键,唯一标识每行,自动递增 name VARCHAR(50) NOT NULL, -- 用户名,最大长度50字符,不能为空 age INT, -- 用户年龄 DECIMAL created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP -- 创建时间,默认为当前时间);
数据类型
数据类型
描述
示例
INT
整型数据,通常用于存储计数或ID
id INT AUTO_INCREMENT
VARCHAR
可变长度字符串,需指定最大长度
name VARCHAR(50)
DECIMAL
高精度定点数,适用于金额等数据
price DECIMAL(10, 2)
...
Linux--configure基础配置
Linux 软件安装在 Linux 中,除了通过源在线安装软件包外,下载源码包并手动编译安装也是常见的方法。
Configure 脚本简介开源源码包通常包含一个 configure 脚本,它会根据系统环境自动配置编译参数并生成 Makefile。以下是对 configure 脚本的参数介绍。
Configure 参数详解configure 脚本支持许多参数,其中一些是必须的,一些是可选的。
重要参数build--build 表示当前使用的构建机器
host--host 表示程序运行的平台。
target--target 用于指定程序将处理的平台,通常在编译交叉工具链时使用。
例如:
1. /configure --build=i386-linux,--host=arm-linux
表示使用 i386 架构的 Linux 系统构建,目标运行平台为 ARM 架构的 Linux 系统。
常见参数
--help运行以下命令可查看所有可用配置选项
1./configure --help
--prefix=DIR指定文件安装目录,建议使用绝对路径
--sysconfdir=DIR指定配置 ...