自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 PCF8563 RTC 芯片驱动

【代码】PCF8563 RTC 芯片驱动。

2026-07-15 10:58:27 125

原创 GPIO 模拟SMI协议

摘要:本文介绍如何使用MCU的GPIO引脚模拟SMI(串行管理接口)协议与PHY芯片通信。通过配置MDC(时钟)和MDIO(数据)引脚的工作模式,实现了SMI协议的时序控制,包括发送前导码、操作码、地址及数据读写功能。关键代码展示了GPIO初始化、高低电平控制、数据发送/接收的时序处理,以及Clause 22标准下的寄存器读写操作,支持通信异常检测和总线状态恢复。该方法适用于无硬件SMI接口的MCU场景。(149字)

2026-07-08 10:08:39 22

原创 W5500 Ping问题解决

本文介绍了W5500芯片实现Ping功能的关键代码逻辑。代码通过创建原始套接字(SOCK_RAW),设置ICMP协议(IPPROTO_ICMP)进行Ping操作,包括DNS解析、套接字创建、超时设置、连接建立、请求发送和回复接收等步骤。特别需要注意的是,在Ping操作结束后必须执行IINCHIP_WRITE(Sn_PROTO(socket), 0)清空ICMP协议设置,否则会影响W5500硬件的自动Ping恢复功能。该实现封装了完整的Ping流程,包括耗时统计和TTL获取,并提供了错误处理机制。

2026-07-07 17:38:20 29

原创 Keil 软件注释中文乱码

摘要: 解决Keil软件中文注释乱码问题,可通过添加系统环境变量实现。步骤:1. 右键"此电脑"→"高级系统设置"→"环境变量";2. 新建变量,名称填"JAVA_TOOL_OPTIONS",值填"-Dfile.encoding=UTF-8"。该方法通过强制UTF-8编码格式解决中文显示异常问题。(配图为环境变量设置界面)

2026-06-21 22:15:14 255

原创 开发板ubuntu系统文字显示问题

注意:在lib文件夹应该没有fonts文件夹,需要创建。开发板unbuntu系统文字显示。1.选择noto字体。

2026-05-24 21:08:28 15

原创 ubuntu 安装共享目录

本文介绍了在Ubuntu虚拟机中设置共享文件夹的步骤:1)在虚拟机设置中启用共享文件夹并指定路径;2)安装必要软件;3)将共享目录挂载到/mnt/hgfs;4)验证挂载是否成功;5)通过修改/etc/fstab文件实现永久挂载。整个过程包含5个关键步骤,配有操作截图说明,帮助用户实现主机与虚拟机间的文件共享功能。

2026-05-24 21:05:02 44

原创 ModBus TCP

Modbus TCP协议帧结构包含事务标识(2字节)、协议标识(2字节)、长度(2字节)、单元标识(1字节)和PDU(协议数据单元)。其中事务标识用于匹配请求和响应,协议标识固定为0x0000表示Modbus协议,长度字段计算单元标识和PDU的总字节数。单元标识相当于从站地址,在TCP网关访问串行设备时使用。PDU部分包含功能码和数据区,结构与Modbus RTU相同,但省去了CRC校验,由TCP层负责错误检测。该协议常用于工业自动化设备通信。

2026-04-29 13:44:13 256

原创 ESP8266 WIFI模块驱动

这篇文章摘要主要介绍了WiFi模块的配置和使用方法,重点包括以下几个方面: WiFi工作模式设置(Station/SoftAP/混合模式) 连接模式配置(单连接/多连接) 传输模式选择(普通/透传模式) 热点连接与管理命令(查询/连接热点) TCP连接建立与数据传输 透传模式的使用方法(进入/退出) 文章还提供了C语言实现的WiFi模块初始化代码示例,展示了AT指令的使用流程,包括: 模式设置 WiFi连接处理 错误检测与超时处理 透传模式配置 TCP服务器连接等关键功能实现 代码部分详细演示了如何通过串口

2026-04-27 10:53:49 48

原创 Modbus 协议解析-RTU

摘要: Modbus是工业主从通信协议,支持RTU(串口)、ASCII和TCP三种形态,其中RTU最常用。协议定义了4类寄存器(线圈、离散输入、保持寄存器和输入寄存器),通过功能码实现读写操作。RTU报文包含从站地址、功能码、数据域和CRC校验,典型操作如03读寄存器、06写单寄存器和10写多寄存器。RTU模式下,主站发起请求,从站应答,同一总线仅支持单主多从,从站间不通信。协议通过地址寻址和CRC校验确保数据可靠性。

2026-04-24 15:10:01 669

原创 AHT20 驱动代码

AHT20温湿度传感器通过I²C接口(地址0x38)与MCU通信,集成MEMS电容式湿度传感和温度测量元件。其工作流程包括:发送0xAC指令触发测量,等待80ms转换后读取6字节数据(含状态字、湿度/温度原始值)。湿度通过电容变化检测,温度由片上传感器获取,数据需按公式转换为物理值(RH%和℃)。驱动代码实现了初始化、触发测量、状态轮询和数据解析功能,最终输出校准后的温湿度数值。关键操作包含0xBE初始化指令和状态位检测(bit7为忙标志),测量结果通过位移和线性转换得到实际值。

2026-04-24 10:52:24 85

原创 STM32F103之DMA接收方案

摘要:DMA(直接存储器访问)通过硬件通道实现高速数据传输,无需CPU参与。UART通信中,常用DMA接收模式配合空闲中断、半满中断和满中断。空闲中断在接收停止位后触发,半满和满中断分别在DMA传输一半和全部完成时触发。代码示例展示了如何配置DMA接收及处理相关中断:初始化时使能空闲中断和DMA接收,在回调函数中处理半满、满传输和空闲中断事件,确保数据正确传输。注意连续使用DMA发送需检测状态或增加延时,避免数据丢失。

2026-04-23 16:44:59 291

原创 Linux 下Can 发送数据测试

SocketCAN工具cangen是一款高效的C语言CAN报文生成器,能够快速填满总线进行压力测试。支持标准帧(固定ID)和扩展帧格式,通过参数调整发送间隔、ID和数据长度。

2026-04-23 09:55:41 66

原创 Snipaste 开机自启动设置

本文介绍了Snipaste截图工具的基本使用方法:双击运行Snipaste.exe后,程序会最小化到系统托盘。建议勾选"开机启动"选项以便自动运行。用户可以在控制页面自定义快捷键配置,方便快速调用截图功能。文中配图展示了软件界面和设置选项的位置。

2026-04-20 11:49:33 117

原创 AT32F435 PWM功能实现

该代码展示了如何配置TMR1定时器在PB15引脚上生成200kHz的PWM波形。主要步骤包括:1) 使能时钟;2) 配置GPIO复用为TMR1_CH3C;3) 计算定时器周期和比较值;4) 设置TMR1基础参数;5) 配置PWM模式A并启用互补输出;6) 配置刹车和主输出使能;7) 启动定时器。最终在PB15引脚输出50%占空比的200kHz PWM信号。

2026-04-20 10:44:51 272

原创 解决ubuntu安装时界面不全问题

摘要:Ubuntu安装界面显示不全通常由分辨率不适配导致,

2025-09-21 21:10:09 780

原创 虚拟机安装Windows系统不能上网配置方法

摘要:本文介绍了虚拟机安装Windows系统后无法上网的解决方法。主要步骤包括:1)进入虚拟网络编辑器更改配置;2)选择桥接模式并指定主机网卡;3)在网络设置中启用桥接模式;4)调整网络适配器属性,将TCP/IPv4设置为自动获取IP和DNS地址;5)最后重启虚拟机使配置生效。通过以上设置即可解决虚拟机无法连接网络的问题。

2025-09-18 17:03:57 330

原创 SDL库安装步骤

本文详细介绍了SDL库及相关依赖库的交叉编译过程。首先交叉编译zlib库,然后依次编译freeType、SDL和SDL_ttf库。每个步骤都指定了ARM交叉编译工具链和安装路径,使用make命令进行并行编译并安装。最终生成的交叉编译库分别存放在arm_zlib、arm_freetype、arm_sdl和arm_sdl_ttf_install目录中,并提供了编译完成后的目录截图。整个过程展示了如何在x86环境下为ARM架构交叉编译SDL图形库及其字体支持组件。

2025-07-30 10:13:24 521

原创 使用mjpg-streamer测试USB摄像头

摘要: 本文介绍了mjpg-streamer的安装配置及开机自启动方法。首先通过git下载源码,安装依赖后编译运行,浏览器访问IP:8080即可查看视频流。其次,创建启动脚本(start.sh和mjpg.sh)简化操作流程。最后,在/etc/xdg/autostart/目录下配置mjpg.desktop文件实现开机自启动。关键步骤包括权限设置、路径配置及脚本编写,适用于嵌入式设备摄像头实时流媒体场景。

2025-07-04 17:51:35 394

原创 【无标题】

Linux 动态库与静态库创建和使用

2025-07-01 14:21:47 181

原创 安装数据库Sqlite3

安装数据Sqlite3

2025-06-17 12:31:38 596 1

原创 MATLAB:给动态点添加文本注释

给动态点添加文本注释,并随着动态点移动:方法:使用text函数%起点坐标x=5;y=10;%速度bv=12;blo=pi/2;bvx=bv*sin(blo);bvy=bv*cos(blo);p = plot(x,y,'r');tt=text(x,y,'Move','VerticalAlignment','top');%添加text文本注释并获得text的句柄axis([0 20 0 20]);grid on;t=0;while(1) x1=x+xv*t;y1=y+yv

2020-11-14 15:04:46 1060

原创 Linux基本操作——1

Linux基本操作–1查询用户:----cat /etc/passwd切换用户:#:root用户 ; $:普通用户1.普通用户到root用户–su --输入root用户密码2.root用户到普通用户–su 普通用户名更改用户和用户组1.使用chown 更改 用户和组:需要在root权限下:chown 用户名.用户组 目录或文件2.使用chown 更改 用户:需要在root权限下;chown 用户名 目录或文件3.使用chgrp 改变用户组:注意:対

2020-10-07 21:54:51 409

PCF8563【嵌入式系统】基于I²C总线的低功耗RTC芯片PCF8563技术手册:实时时钟日历功能与应用场景设计

PCF8563【嵌入式系统】基于I²C总线的低功耗RTC芯片PCF8563技术手册:实时时钟日历功能与应用场景设计

2026-07-15

AT32F435 定时器/PWM功能实现

AT32F435 定时器/PWM功能实现

2026-04-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除