通讯协议--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 ./*...
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安装后经常会出问题,特别是关机会守...
电池芯片--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 ...
单片机--开漏输出和推挽输出
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_APB2Perip...
关于AI的一些思考
最近常常看到各种关于 AI 的讨论,有担忧也有惊喜。想起这几年自己与 AI 的一些接触和感受,决定写下来,作为一个阶段性的记录。 现在大家谈论最多的 AI,大多指的是大模型。我最初接触大模型是在 2022 年 12 月,那时候 ChatGPT 刚刚上线不久,在推特上引发了热潮。我出于好奇,也尝试了一下。它的表现的确令人惊讶,能逐渐读懂人想表达的内容,并生成看似合理的回答。 此后,我也尝试了其他国外的 AI 模型,比如 Google 的 Gemini、X(原 Twitter)中的 Grok,以及 GitHub 社区中的 Copilot,它们在专业领域或编程方面都有出色表现。 当然,国内的大模型这两年进步也非常快,很多公司都开发了自己的大模型,并且可以明显感受到它们在不断进步。我算是阿里通义灵码的首批测试用户之一。在这两年中,我能清楚地感觉到它一步步在成长:从最初只能勉强读懂函数、生成单元测试还经常出错,到现在已经可以切换模型、直接编辑文件并生成代码。 去年给我体验最好的 AI 是国内的 Kimi,它的特色是能处理超长文本,虽然现在这一点可能已经不再是独特优势。国内其他表现优秀的模型...
数据库---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...










