- 博客(168)
- 收藏
- 关注
原创 【IIC】IIC中断与DMA&状态机编程
变量,用来记录状态机的状态,可以写个注释来规定一下各个状态值,0是初始状态,这个状态下发送测量命令,1是正在发送测量命令,2是测量命令发送完成,这个状态下要等待75ms,然后进行IIC读取,3是IIC读取中,4是读取完成了,那么就要进行数据的解析与输出。的转换由HAL库帮我们完成,读取请求中只有地址,不能携带任何数据,随后从机回复ACK后,就开始回复固定字节数量的数据,至于多少字节数,通常与上次发送的指令有关,具体的工程中需要查询具体模块的手册。接下来是状态值为4时,数据读取完成,进行数据的分析。
2026-04-24 00:00:00
492
11
原创 【OLED】OLED原理&驱动库&取模
函数,意思是设置某个像素亮起,描述屏幕是,我们通常使用这样一个坐标系——x,y代表此像素在屏幕上的位置,只要调用此函数,我们就将显存中(x,y)位置的像素设置为1,这个函数写起来也不算复杂,首先判断一下x与y的取值,防止数组越界,然后将显存第y/8页第x列的数据,或上一个0x01向左移y%8位。来到取模助手的图片取模功能,选择电脑上的一张图片,图片取模的整个功能都是在浏览器端完成的,并不会上传大家的图片,完全没有隐私问题,可以为图片改一个合适的变量名,然后我们将图片调一个合适的大小与二值化阈值。
2026-04-24 00:00:00
553
2
原创 【串口】蓝牙模块与简易数据包解析
回到代码,需要补充的是,我们本次实现的是在中断里进行的比较简易的数据包解析,如果数据包发送比较快,发送间隔比较小等情况,或者在比较复杂严苛的工程中,我们还是需要建立数据缓冲区,并且将解析数据的步骤搬出中断,在主循环中进行处理。当我们接收到数据时,自行计算一遍收到数据的校验和,与数据包中自带的校验和进行比较,如果相等,则证明数据在传输过程中极大概率没有出错,如果不相等,那一定是在传输过程中某个数据传错了,那就按照实际的情况,忽略此数据包,或者要求发送方重新发送数据包。指令数据包按照这样的16进制格式规定,
2026-04-23 00:00:00
419
3
原创 【IIC】IIC通信与温湿度传感器AHT20(DHT20)
然后正式的IIC通信就开始了,主机会在时钟线上产生一个恒定频率的时钟脉冲信号,主机与从机依靠时钟线上的脉冲信号来同步对数据线的读写,准确点说,就是当时钟线处于低电平时,主机设置数据线的电平,而时钟线处于高电平时,从机读取数据线的电平。,然后湿度数据的拼接应该是这样的,第3字节的高4位是湿度数据,去掉低4位的温度数据后,应该向右移四位补齐,然后第2字节应当向左移4位,到达与刚刚4位对齐的更高位,第1字节的数据也要向左移12位到更高位上去,然后三者相加,就能组成完整的湿度数据。按照这一原理,我们将它们拼接到。
2026-04-23 00:00:00
453
原创 【串口】STM32串口原理与串口中断模式收发
发送数据寄存器中的数据会在发送移位寄存器发送完成后,被移到发送移位寄存器进行下一次发送,而在此过程中,CPU需要不断的去查询,发送数据寄存器中的数据是否已经移送到发送移动寄存器,移了的话,就赶紧把下一个数据塞进来,如果还没有移,那就再接着不停地查询,直到把本次要发送的数据全部发完,或者用时超过我们设定的超时时间。发送一段数据时,STM32的CPU会依次将数据移到寄存器中,发送移位寄存器中的数据会按照我们设定的比特率,转换成高低电平从TX引脚引出。通过中断,我们成功解决了串口操作一直占用CPU的问题。
2026-04-22 00:00:00
1579
8
原创 【串口】STM32串口DMA模式与收发不定长数据
说完了DMA,我们来看看如何接收不定长数据,其实,接收不定长数据非常简单,主要靠的就是串口空闲(Idle)中断,此中断的触发条件与接收的字节数无关,只有当RX引脚上无后续数据进入,也就是串口接收从忙碌转为空闲时才会触发,因而我们可以认为空闲(Idle)中断发生时,就是一帧数据包接收完成了,在此时对数据进行分析处理即可。需要注意的是,即使是使用了DMA,其实还是有中断参与其中的,例如RxCpltCallback函数还是由中断触发的,当然,这次就不是串口的中断了,而是DMA的,传输完成中断。
2026-04-22 00:00:00
538
原创 【中断】深入了解中断
注意:请求挂起寄存器是一个需要注意的点,其接收到高电平信号会将对应的位置1,例如我们当前举例的是EXTI12(外部中断线12),因而接收到从第12根外部中断线来的高电平后,请求挂起寄存器的第12位会被置1,然后请求挂起寄存器又会将此位输出到一个与门,与门的特性是当两个输入都为1时,输出才是1,否则便输出0,因而此与门的另一个输入中断屏蔽寄存器,就掌握了此中断的生杀大权,只有它对应位置上为1,输出高电平,请求挂起寄存器的信号才能通过与门,进入到NVIC。优先级的数字越小,则优先级越高。
2026-04-21 00:00:00
423
1
原创 【串口】初始串口-轮询模式
这时候我们需要一种叫做“串口调试助手”的软件,网上这类软件还是比较多的,可以随便下载一个,也可以在浏览器上打开serial.keysking.com就可以使用,整个串口助手是完全开源的,串口助手的使用非常简单,点击“选择串口”,然后找到要连接的串口,使用开发板就可以选择这个“USB Single Serial”,如果你不确定是哪一个,可以通过插拔数据线的方式,看哪个选项随着插拔出现,消失就可以确定了。所以要注意的是,使用串口时并不是两个设备的TX与TX连接,而是一台设备的TX接另一台设备的RX。
2026-04-21 00:00:00
467
原创 【中断】初识中断以及外部中断的使用
学习何为中断以及如何通过中断来检测GPIO的电平变化不管是现实世界还是STM32的程序里,总会有这样那样的事情打断我们,令我们不得不放下手头的工作去处理那些更紧急的事情.STM32也要随时准备着去处理一些我们为其规定的各种突发事件处理完成后还要继续执行之前正在执行的任务,而这些可以打断正常工作流程去处理的任务,我们就将其称为"中断"对于STM32芯片来说,可以产生中断的事件多种多样,例如某个指令执行出错,某个定时器时间结束,串口接收到了数据,或者某个GPIO口检测到了电平变化等等等等。
2026-04-20 11:09:06
693
原创 【GPIO】GPIO内部电路原理
GPIO有八大模式,本次学习将会深入了解这八大模式首先可以找一下官方手册中有一本STM32中文参考指南在STM32中文参考指南的第105页,是关于GPIO的功能描述而其中关键则是这样一张结构图,这张图描绘了每个GPIO口内部的基本结构结构图最右侧是I/O引脚,也就是我们在芯片上看到的小铁丝,STM32芯片就是靠它们与我们开发板上的其他器件进行连接,连接的线路可以在开发板表面隐约看到.
2026-04-20 11:03:13
417
原创 【GPIO】按键控制小灯
函数,这样我们想要的效果就实现了吗?由于开发板采用的是比较稳定的硅胶按键,而且选用的消抖电容也比较合适,所以硬件的消抖效果非常的棒,我们很轻松就能实现我们的目标,但是对于某些稍微差一点的按键来说,可能硬件消抖并不能完全去除抖动,因而我们通常需要在软件中再次进行消抖,常见软件消抖的逻辑是这样的,当初次检测到低电平后,进行一个10ms的延时,由于抖动通常在10ms之内便会结束,因而10ms后再读取按键的电平便是稳定电平,若此时按键还是按下状态,则按照之前的逻辑翻转红色小灯并等待按键结束。
2026-04-16 14:40:50
587
原创 绚丽小灯,点灯宗师
blinkFinishCtrls保存文件生成代码由于在上次的hello工程中进行了设置,并且勾选了“记住我的选择”,而这些设置信息都被保存在了工作空间文件夹中的.metadata文件夹中,因而现在我们新建在同一工作空间中的blink工程时也沿用了相同的设置,直接自动生成代码。然后我们点击下载按钮不要忘记勾选自动编译,然后点击OK。
2026-04-16 14:38:46
405
原创 AI基础设施绿色计算实战:基于能耗感知的资源调度与碳足迹管理
理论创新:提出多目标优化调度算法(MOSA),实现能耗、碳排放、成本、性能的综合优化系统实践:构建基于Kubernetes的绿色计算平台,提供完整的部署方案管理闭环:建立从碳排放计算到碳资产交易的全链路管理体系热点响应:结合微软谷歌新模型发布、豆包大模型规模化应用等最新热点。
2026-04-03 13:33:40
427
原创 [特殊字符] Anaconda被误删后抢救手册:从绝望到重生的完整指南
场景核心解决思路成功率快捷方式丢失95%环境变量丢失手动添加PATH100%重装系统恢复乾坤大挪移法90%环境损坏导出→删除→重建85%彻底重装先备份yml,再重装恢复100%记住:Anaconda的核心在于envs目录下的虚拟环境和pkgs目录下的包缓存。只要保护好这两个目录,即使程序被删,你的开发环境也能起死回生!你的支持是我创作的动力!🚀参考链接重装系统后恢复Anaconda和JupyterAnaconda虚拟环境修复指南Windows下完全卸载Anaconda。
2026-03-26 15:00:33
381
原创 爬虫对抗:ZLibrary反爬机制实战分析
IP限流 + UA/指纹校验 + 人机验证 + 账号风控 + 动态加密 + 蜜罐,是全链路、多维度的防御体系。
2026-03-26 13:27:01
1474
原创 Meta LSP无数据训练深度解析:语言自我对弈的数学原理与实现
LSP将大语言模型的持续学习过程定义为一个竞争性的博弈游戏挑战者(Challenger, π_Ch):生成指令或问题qqq,目标是使求解者的奖励最小化求解者(Solver, π_Sol):根据指令qqq生成回答aaa,目标是最大化奖励RqaR(q, a)Rqa两者的对抗构成了经典的极小极大(minimax)博弈minπChmaxπSolEq∼πCha∼πSolRqaπChminπSolmaxEq∼πCh。
2026-03-25 10:36:07
423
原创 NVIDIA GTC 2026实战:Rubin平台AI五层架构部署指南
Vera Rubin平台代表了AI基础设施的范式革命,其五层架构为大规模智能体系统提供了从底层能源到上层应用的全栈优化方案。通过本文提供的部署指南和实战代码,开发者可以快速构建基于Rubin平台的下一代AI工厂,实现成本降低90%、能效提升10倍的技术突破。作者:WeeJot技术交流:欢迎在评论区提问或分享您的部署经验!
2026-03-25 10:32:14
1273
原创 GPT-5.4原生计算机操作能力深度解析与智能体开发实战
随着OpenAI正式发布GPT-5.4,人工智能首次实现了原生计算机操作能力。这意味着AI不再仅仅是对话工具或代码生成器,而是成为了能够直接操作计算机、完成端到端自动化任务的智能体。本文将深入解析GPT-5.4的核心技术突破,并通过完整可运行的代码示例,手把手教你开发基于GPT-5.4的智能体应用。GPT-5.4的原生计算机操作能力标志着AI从辅助工具向自主智能体的转变。直接感知能力:屏幕像素级视觉理解任务分解能力:复杂工作流自动拆解动作执行能力:精准的鼠标键盘控制反馈优化能力:基于结果的迭代改进。
2026-03-11 00:00:00
457
原创 ICLR 2026低秩Transformer解决方案:多变量时间序列异常检测与定位的数学原理
理论创新:首次建立了Transformer与经典时间序列统计模型的严格数学联系方法创新:提出低秩正则化损失和贡献权重定位算法性能突破:在多个基准数据集上显著优于现有方法应用价值:为工业监测、金融风控等关键领域提供可靠解决方案本文从数学原理、算法设计、实现细节到应用展望,为读者提供了全面而深入的技术解析。期待这一前沿技术在实际应用中发挥更大价值,推动时间序列分析领域的持续发展。
2026-03-11 00:00:00
614
原创 DeepSeek V4模型本地部署指南:从环境配置到生产级优化
环境配置:硬件选型、依赖管理、问题排查模型获取:多源下载、完整性验证、加速方案量化优化:INT8/INT4配置、性能对比、选择策略显存优化:基础策略、Engram实战、多GPU分布式性能测试:延迟、吞吐量、显存占用全方位评估DeepSeek V4通过架构创新实现了性能与成本的革命性平衡,为AI大规模落地提供了可行路径。随着国产算力生态的成熟与开源社区的壮大,我们有理由相信,2026年将成为AI普惠应用的关键转折点。
2026-03-10 00:00:00
13418
原创 MoE(混合专家)架构:稀疏激活的数学原理与实现
传统Transformer架构面临参数效率困境:1750亿参数的GPT-3,每个token推理需激活全部参数,如同调动整支军队处理巡逻任务。2026年的模型规模已突破万亿参数,全量激活的能耗与成本呈指数增长。混合专家模型(Mixture of Experts, MoE) 通过引入动态路由与稀疏激活机制,实现计算量与模型容量的解耦:本文将深入解析MoE的数学原理、工程实现与前沿演进,提供可直接复现的生产级代码。给定输入序列 X=[x1,x2,...,xT]∈RT×dX = [x_1, x_2, ..., x_
2026-03-10 00:00:00
800
原创 Transformer位置编码:从正弦函数到RoPE的数学演进与记忆任务局限性讨论
位置编码(Positional Encoding)是Transformer架构理解序列顺序的核心机制。本文系统梳理位置编码从原始正弦函数到现代旋转位置编码(RoPE)的数学演进历程,深入解析RoPE如何通过复数域旋转实现相对位置建模,并探讨其在长序列外推中的优势。同时,结合2026年高通研究院最新研究,剖析Transformer在记忆任务中的固有局限性——空间局部性丢失和视觉令牌忽视问题,为读者提供从基础理论到前沿进展的完整技术视角。优势维度具体表现技术原理天然相对位置建模。
2026-03-09 09:17:46
559
原创 使用TensorFlow Serving部署BERT模型:从SavedModel到生产级API
作者:WeeJot|标签:TensorFlow, BERT, 模型部署, Docker, 微服务在AI工程化落地的过程中,模型部署往往是最具挑战性的环节之一。本文将手把手带你完成BERT模型在TensorFlow Serving上的完整部署流程,涵盖Docker容器化、REST/gRPC API调用、性能调优等实战要点,助你快速构建生产级的AI推理服务。
2026-03-09 00:00:00
1398
1
原创 飞算JavaAI:软件开发的革命性工具
飞算JavaAI以其强大的自然语言处理能力、智能架构设计和一键代码生成功能,在软件开发领域掀起了一场革命。它不仅提高了开发效率,降低了开发门槛,还保证了代码质量和项目的成功率。飞算JavaAI的未来发展值得期待,它有望引领软件开发领域的新趋势。希望本文能够帮助读者更好地了解飞算JavaAI,并激发大家对软件开发新技术的兴趣和探索。让我们一起拥抱变化,迎接软件开发的新未来!
2025-07-14 08:30:47
892
7
原创 【金仓数据库征文】交通行业的国产化数据库替换之金仓数据库KingbaseES应用实践
KingbaseES 是由金仓数据库公司精心打造的一款高性能、高可靠性的企业级数据库产品。金仓数据库公司在数据库领域拥有丰富的经验和深厚的技术积累,致力于为用户提供优质的数据库解决方案。KingbaseES 的兼容性堪称一绝,它支持多种操作系统和硬件平台。在操作系统方面,涵盖了 Unix、Linux 和 Windows 等主流操作系统产品版本。不同的交通行业应用场景可能会使用不同的操作系统,KingbaseES 的多操作系统支持使得它能够适应各种复杂的环境。
2025-04-25 15:23:25
13971
75
原创 【金仓数据库征文】金仓数据库 KingbaseES 性能调优全链路深度解析
金仓 KingbaseES 的调优是一门综合艺术,它需要开发者结合数据库内核原理、硬件特性以及业务场景进行全面考虑。通过本文的深度解析,开发者可以系统性地掌握从参数微调到架构设计的全链路优化能力。在国产化替代的实践中,只有将理论知识与工程经验相结合,不断探索和实践,才能释放金仓数据库的极致性能,为企业和组织的数字化转型提供强有力的支持。
2025-04-25 09:57:01
15444
70
原创 【网络编程】IO多路复用
(根据poll函数第一个函数的参数来定,如果监听的事件为1个,则结构体数组的大小为1,如果想监听100个,那么这个结构体数组的大小就为100,由程序员自己来决定)•异步I/O,Epoll当有事件产生被唤醒之后,文件描述符主动调用callback(回调函数)函数直接拿到唤醒的文件描述符,:完全解放了主线程,有数据会主动通知,异步调用处理方法,但是也不能同时处理多个设备。告诉爸爸,让爸爸帮忙监听,妈妈可以干别的或者睡觉,孩子醒了后,爸爸告诉妈妈。,第几位被置位,那么就代表这个文件描述符需要被监听或者有数据。
2025-01-20 16:14:52
992
15
原创 【网络编程】基础IO模型
当程序调用某些接口时,如果期望的动作无法触发,那么进程会进入阻塞态(等待状态,让出CPU的调度),当期望动作可以被触发了,那么会被唤醒,然后处理事务。当一个应用程序使用了非阻塞模式的套接字,它需要使用一个循环来不停地测试是否一个文件描述符有数据可读(称做。阻塞I/O模式是最普遍使用的I/O模式,大部分程序使用的都是阻塞模式的I/O。假设妈妈有一个孩子,孩子在房间里睡觉,妈妈需要及时获知孩子是否醒了,如何做?结论:非阻塞非常占用CPU,不到万不得已,不要用这种属性。简单,空闲时间还能干点别的,但是很累。
2025-01-20 16:14:34
349
3
原创 【Linux】进程间通信IPC
(3) 只有管道的读端存在时,向管道中写数据才有意义,否则会导致管道破裂,向管道中写入数据进程将收到内核传来的SIGPIPE信号(通常时Broken pipe错误)。系统默认对SIGALRM(闹钟到点后内核发送的信号)信号的响应: 如果不对SIGALRM信号进行捕捉或采取措施,默认情况下,闹钟响铃时刻会退出进程。2)信号可以直接进行用户空间进程和内核进程之间的交互,内核进程也可以利用它来通知用户空间进程发生了哪些系统事件。SIGTERM(15):终止信号,用于请求终止进程。
2025-01-17 00:00:00
1044
4
原创 【网络编程】基础知识
0.0.0.0:在服务器中,0.0.0.0指的是本机上的所有IPV4地址,如果一个主机有两个IP地址,192.168.1.1 和 10.1.2.1,并且该主机上的一个服务监听的地址是0.0.0.0,那么通过两个ip地址都能够访问该服务。局域网的缩写是LAN,local area network,顾名思义,是个本地的网络,只能实现小范围短距离的网络通信。所以为了数据安全,不能连接因特网,需要用一条自己的专用线路来传输数据,这条线路上只有自己人,不会有其他人接入,且距离很远,这个网络就叫 “广域网”。
2025-01-17 00:00:00
1840
1
原创 【C语言】线程
私有的资源:线程ID (TID)、PC(程序计数器)和相关寄存器、堆栈(局部变量, 返回地址)、错误号 (errno)、信号掩码和优先级、执行状态和属性。1. 通过父子进程完成对文件的拷贝(cp),父进程从文件开始到文件的一半开始拷贝,子进程从文件的一半到文件末尾。共享的资源:可执行的指令、静态数据、进程中打开的文件描述符、信号处理函数、当前工作目录、用户ID、用户组ID。要求效率高、速度快的高并发环境时,需要频繁创建、销毁或切换时,资源的保护管理要求不是很高时,使用多线程。进程的地址空间相互独立。
2025-01-16 00:00:00
1075
4
原创 【C语言】线程----同步、互斥、条件变量
同步(synchronization)指的是多个任务(线程)按照约定的顺序相互配合完成一件事情。还是一个受保护的变量,只能通过三种操作来访问:初始化、P操作(申请资源)、V操作(释放资源)sem_wait: 申请资源,P操作, 如果没有资源可以用, 阻塞,-1。由信号量来决定线程是继续运行还是阻塞等待.信号量的值0,表示有资源可以用, 可以申请到资源,sem_post: 释放资源,V操作, 非阻塞 +1。通过信号量实现线程间的同步。
2025-01-16 00:00:00
1339
2
原创 【Liunx】库lib
当使用别人写好的函数时除了包含头文件还可以需要库头文件:函数声明、宏定义、结构体定、联合体、枚举定义、重命名、外部引用、其他头文件库:把一些常用的函数的目标文件打包在一起,提供相应的函数接口,便于程序员使用。本质上来说库是一种可执行代码的二进制形式文件。由于windows和linux的本质不同,因此而这库的二进制是不兼容的。(Linux中的C运行库是glibc, 由GUN发布。
2025-01-15 00:00:00
726
2
原创 【C语言】文件IO
标准IO文件IO概念C库中定义的一组用于输入输出的函数posix中定义的一组用于输入输出的函数特点1. 有缓冲机制2. 围绕流进行操作,FILE*3. 默认打开三个流:stdin/stdout/stderr4. 只能操作普通文件5. 程序的可移植性更强1. 无缓冲机制2. 围绕着文件描述符,非负整数3. 默认打开三个文件描述符:0/1/24. 可以操作除了目录以外的任意类型文件函数打开文件:fopen、freopen关闭文件:fclose。
2025-01-14 00:00:00
2003
1
原创 【C语言】获取文件属性
S_IFMT是一个掩码,它的值是0170000(注意这里用的是八进制前缀为0,二进制为0b1111000000000000), 可以用来过滤出四位表示的文件类型。lstat函数类似于stat,但是当命名的文件是一个符号连接时,lstat返回该符号连接的有关信息,而不是由该符号连接引用的文件的信息.fstat函数获得已在描述符filedes上打开的文件的有关信息,也就是参数是文件描述符,其他与stat相同。4. 直到n为行数则停止。例:head -3 test.c -> ./a.out -3 test.c。
2025-01-14 00:00:00
631
原创 【C语言】标准IO
1. 因为读写文件通常是大量的数据,这时使用标准IO可以大大减少系统调用的次数,从而提高效率。2. 为了保证可移植性关于缓存区: 库函数的缓冲区对于库函数,如果标准输出连到终端设备(直接输出到屏幕),则它是行缓冲的(遇到回车换行符或者是缓冲区满了才输出);否则(输出到文件)是全缓冲的(缓冲区填满或者是程序运行结束了才输出)。程序运行结束时,会刷新所有的缓冲区。
2025-01-13 09:27:03
1174
1
原创 【数据结构】树
树(Tree)是(n>=0)个节点的有限集合T,它满足两个条件:(1) 有且仅有一个特定的称为根(Root)的节点。(2) 其余的节点可以分为m(m≥0)个互不相交的有限集合T1、T2、……、Tm,其中每一个集合又是一棵树,并称为其根的子树(Subtree)。
2025-01-13 09:22:37
2154
原创 【数据结构】队列
注意:为了避免假溢出问题,即队列前面还有空闲,但是队尾已经出现越界,所以在实际使用队列时,为了使队列空间能重复使用,往往对队列的使用方法稍加改进,需要引入循环队列。实现出列: 如果out栈不为空直接让数据出栈,如果为空则把in栈的数据依次出栈入out栈, 这样先入栈的数据会在out栈顶。队列是只允许再两端进行插入和删除操作的线性表,在队尾插入,在队头删除,插入的一段被称为“队尾”,删除的一端被称为“队头”。实现入队: 如果in栈没满直接入栈,如果满了出栈之后入out栈,这样先入栈的会在out栈的栈顶。
2025-01-12 00:00:00
683
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅