嵌入式

Zwawa20 小时前
c语言·单片机·嵌入式
嵌入式OLED表驱动菜单:用一张表、一个栈和一个窗口重写表驱动菜单Q: 表驱动菜单是什么? A: 它把标题、层级、返回关系和动作整理成数据表,由一段通用代码去解释这些表项。
Zwawa2 天前
c语言·单片机·嵌入式
C语言函数指针与宏实战:从回调、表驱动菜单到X-Macro,讲透嵌入式代码解耦上一节的菜单已经能用了。然后我再给它加一项:文字要加、编号要加、B 键确认时的 if 要加、绘制光标的判断也要加。菜单长到十项以后,就需要在几组代码之间来回对照——这里的第 2 项,到底对应那里哪个动作?
Zwawa3 天前
c语言·单片机·嵌入式
用两个按键做一个OLED菜单:先把选择和执行分开Q: 嵌入式菜单是什么? A: 菜单是把若干功能组织成页面与选项,并记住“现在在哪一页、光标指向哪一项”的交互界面。
小李不想当小白3 天前
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
HAL库之UART(STM32 HAL库学习笔记)在上一篇《STM32 HAL 库学习笔记》中,我们通过 GPIO 章节完成了对 HAL 库开发流程的第一次实践:从 CubeMX 的引脚配置、时钟树设置,到 HAL_GPIO_WritePin()、HAL_GPIO_ReadPin() 等常用 API 的调用,初步体会到了 HAL 库“以句柄为中心、以函数封装寄存器”的设计思路。可以说,GPIO 让我们学会了如何让单片机的引脚“动起来”。
Zwawa4 天前
c语言·单片机·嵌入式
屏幕不止一种:OLED、LCD1602字符屏、TFT/IPS图形屏和串口屏怎么用,这与TTY和PTY又有什么关系OLED 用了很久了。它便宜、省引脚、够小,两行字加几个数字就能把程序的状态摆在眼前。但有些需求它接不住:要显示图像、要画一条曲线、要一块比 128×64 更大的画面、要一个能按的按钮。这时候面前会冒出三个词:字符屏、TFT(或者 IPS)、串口屏。
La Pulga5 天前
笔记·mcu·学习·嵌入式·freertos·实时操作系统
【FreeRTOS源码学习笔记】任务延时列表在之前,为了实现任务的阻塞延时,在任务控制块中内置了一个延时变量 xTicks-ToDelay。每当任务需要延时的时候,就初始化 xTicksToDelay 需要延时的时间,然后将任务挂起,这里的挂起只是将任务在优先级位图表 uxTopReadyPriority 中对应的位清零,并不会将任务从就绪列表中删除。当每次时基中断(SysTick 中断)来临时,就扫描就绪列表中每个任务的 xTicksToDelay,如果 xTicksToDelay 大于 0,则递减一次,然后判断 xTicksToDelay 是否
2035去旅行5 天前
linux·嵌入式·arm·soc
bootcmd 详细讲解bootcmd 是 U-Boot 的环境变量,不是一个函数,它里面存的是一条 / 多条待自动执行的 shell 命令字符串,是自动启动内核的核心配置。
蓝天居士5 天前
机器人·嵌入式·ethercat
EtherCAT从入门到精通(7)接前一篇文章:EtherCAT从入门到精通(6)本文内容参考:《工业以太网现场总线EtherCAT驱动程序设计与应用》 郇极 刘艳强 编著 北京航空航天大学出版社
蓝天居士5 天前
机器人·嵌入式·ethercat
EtherCAT从入门到精通(10)接前一篇文章:EtherCAT从入门到精通(9)本文内容参考:《工业以太网现场总线EtherCAT驱动程序设计与应用》 郇极 刘艳强 编著 北京航空航天大学出版社
不脱发的程序猿5 天前
单片机·嵌入式硬件·dma·嵌入式·串口通信·gd32
GD32串口数据收进内存之后DMA如何处理?串口助手偶尔发一行文字,开发板能原样回显,并不难。真正容易出问题的是下一行紧跟着到来时,上一行还没有打印完。DMA 已经把数据搬进内存,程序却可能读到一半新、一半旧的内容,甚至在清空数组时擦掉刚收到的字节。
lishen25 天前
嵌入式
06 · 我把开发流程拆成了 AI 能执行的技能——技能:把开发流程拆成 AI 能执行的步骤这是《嵌入式 AI 落地手记》的第六篇。前面讲了工程底座,这篇讲 AI 具体怎样工作:生成与检查怎样分工,人工确认放在哪里,技能又怎样根据使用反馈继续修改。
§ꦿCFོ༉6 天前
c语言·学习·嵌入式·编程语言
嵌入式八股文—C语言入门学习(二)本章学习:运算符(七大运算符)、控制流程结构(三大结构)算术运算符 运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。算术运算符用于对数值进行加、减、乘、除、取余等基本运算,运算结果仍为数值。在此案例下,a原始值=0;
Zwawa7 天前
c语言·单片机·嵌入式
两根线怎么挂住一堆设备:I2C 协议原理Q: I2C 是什么? A: 两根线(SCL 时钟、SDA 数据)上的同步串行协议,靠地址在一根总线上挑出要通信的那台设备。
欧西7 天前
开源·嵌入式
零成本做一颗芯片:我用 OpenLane 把 SHA-256 从 Verilog 做到了 GDSTL;DR:OpenLane 1.1.1 + SkyWater sky130A,六代迭代。v4 做到 56.72 MHz / 0.41 mm² / 40.65% 利用率;v5 把时钟约束从 10 ns 改成 26 ns,三 PVT corner 签核 WNS 0.00 / TNS 0.00 / setup 余量 +3.12 ns 起 / hold +0.43 ns,功耗 6.31 mW;v6 只把周期压到 24 ns,三 corner 仍全通过、最紧余量 +1.25 ns,反推可达周期约 22.75 ns
LCG米7 天前
stm32·单片机·嵌入式硬件·嵌入式
STM32 定时器主从模式输出精确脉冲数实测:TRGO 触发链拆解、多发一脉冲根因与干净停止时序落地步进电机和伺服驱动器普遍采用"脉冲+方向"接口定位,脉冲个数直接对应位移量,多发或漏发一个脉冲都会累积成位置误差。本文基于 STM32F103C8T6,用 TIM1 作主定时器输出 PWM(TRGO 选更新事件),TIM2 作从定时器以外部时钟模式 1 硬件计数,实现脉冲数全程 0 CPU 占用的精确输出与自动停发。实测 1 kHz~200 kHz、单次 10000 脉冲 ×200 轮:脉冲数偏差为 0;ISR 直接寄存器停止延迟 0.28 μs,停止窗口模型预测的临界频率 625 kHz 与实测失效边界
anguoyang8 天前
嵌入式
RK3588 上模型「能跑但很慢」:逐算子查 CPU 回退的完整方法与实测模型在 RK3588 上推理出了正确结果,不代表它在 NPU 上跑。算子不被 NPU 支持时,RKNN runtime 会静默回退到 CPU 执行:程序不报错、结果是对的、只有速度慢得莫名其妙。更麻烦的是,官方模型仓库(model zoo)里的模型一般都很干净,真正会回退的恰恰是大家自己改过结构、加过算子的模型——网上现成的经验帖帮不上忙,只能自己查。
xbronze8 天前
嵌入式
STM32+RC522读取MIFARE 1K卡排坑实录项目地址github.com/xbronze/rfi…最近在做一个基于STM32F103C8T6和RC522的RFID门禁系统项目。由于使用现成的封装库,本以为读取UID、完成扇区密码认证和读写是分分钟的事,结果却在“认证失败”和“写块只写进一个字节”的泥潭里挣扎了好久。
La Pulga8 天前
笔记·mcu·学习·嵌入式·freertos·实时操作系统
【FreeRTOS源码学习笔记】空闲任务与阻塞延时在前面的学习中,任务中的延时使用的是软件延时,即还是让 CPU 等待来达到延时的效果。使用 RTOS 的优势就是能充分发挥 CPU 的性能,永远不让它闲着。任务如果需要延时,也就不能再让 CPU 空等来实现延时的效果。RTOS 中的延时叫作阻塞延时,即任务需要延时时,会放弃 CPU 的使用权,CPU 可以去做其他的事情,当任务延时时间到,重新获取 CPU 使用权,任务继续运行,这样就充分地利用了 CPU 的资源,而不是空等。
小李不想当小白8 天前
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
WDG看门狗(STM32标准库学习笔记)在上一章《PWR电源控制》中,我们学习了 STM32 的低功耗模式,知道了如何通过待机、停机、睡眠等方式让芯片在不需要全速运行时降低功耗。但低功耗也带来了一个新的问题:一旦程序在运行过程中跑飞、死循环或者受到干扰而卡住,系统可能长时间无法自行恢复,此时就需要一个“自动报警并复位”的机制来兜底。
La Pulga9 天前
单片机·mcu·学习·嵌入式·freertos·实时操作系统
【FreeRTOS源码学习笔记】任务切换任务切换是 FreeRTOS 内核中唯一由硬件异常机制直接承载的核心操作。它不是在 C 代码里“跳转”到另一个任务,而是一次完整的“冻结—决策—解冻”:在 PendSV 中把当前任务的寄存器现场写入其栈并回写 TCB,在 C 函数中选出下一个 TCB,再按新 TCB 的栈顶恢复现场,由硬件异常返回“无缝”回到新任务。