找到 “调试” 相关内容 条
  • 全部
  • 默认排序

串口通信用DMA来搬数据,第一次发送完全正常,但紧接着发第二次时,接收端收到的数据全乱了——要么少字节,要么多出来一些莫名其妙的内容。单步调试确认数据在发送前是对的,DMA配置也没问题,但就是第二次会出错。问题不在DMA配置本身,而在DMA

用DMA传输串口数据,第一次正常,第二次就传错了

封面图:PCB上的0Ω电阻与多路径设计,无文字很多人第一次看到0Ω电阻,都会下意识把它理解成“贴片跳线”。这个理解没错,但只对了一半。真正成熟的硬件设计里,0Ω电阻经常不是为了省一根线,而是为了给调试、量产、EMC和版本管理留下退路。0Ω电

0Ω电阻只能当跳线?盘点四种高阶设计用法

嵌入式调试I2C通信时,经常卡在循环等待从机应答的死循环里,反复检查电路确认上拉电阻已经焊好,还是通信失败。问题不全是上拉电阻的锅,很多隐性细节没处理好就会导致无应答。1. 上拉电阻阻值不匹配上拉电阻选得太大,总线上升沿速度太慢,超过I2C

I2C卡等待应答,别只怪上拉电阻

嵌入式调试时经常遇到反常情况,定时器的使能位、中断优先级都按手册配置完成,运行后完全进不了中断服务函数,反复读寄存器值也显示配置正确。问题大多不是参数写错,是时钟和硬件的隐性细节没处理到位。1. 定时器外设时钟没开很多MCU的定时器时钟默认

定时器中断进不去,别只核对寄存器

调试低功耗功能时,经常遇到单片机成功进入休眠模式后完全无法唤醒,反复核对唤醒源的寄存器配置,参数完全符合手册要求。问题大多不是唤醒源设置错误,是休眠前后的隐性操作留下了隐患。1. IO引脚状态未初始化进入低功耗前,部分闲置IO引脚处于浮空状

单片机进低功耗唤不醒,别死磕唤醒源配置

嵌入式调试PWM输出时,经常遇到定时器通道模式、GPIO复用功能反复核对多遍,参数完全符合手册要求,示波器上还是抓不到任何波形。问题大多不是引脚映射错误,是几个隐性环节没处理到位。1. 定时器主 counter 未启动只配置了PWM通道的比

PWM输出无波形,别死磕复用配置

嵌入式裸机开发里随意用malloc动态申请内存,很容易出现程序跑一段时间后直接死机,调试发现栈区和堆区互相覆盖溢出。这类问题不是内存总量不够,大多是动态内存的使用逻辑没做好管控。1. 内存碎片持续累积每次申请小块内存后不按顺序释放,堆区会产

malloc频繁申请,别等堆栈溢出才排查

调试嵌入式系统时,经常遇到示波器探头刚碰到晶振引脚,单片机直接触发复位,完全抓不到晶振波形。问题不是晶振本身故障,是探头的负载效应干扰了振荡回路的正常工作。1. 探头负载破坏谐振普通无源探头的输入电容通常有10到15pF,直接并联在晶振引脚

探头一碰晶振脚就复位,不用硬测引脚

PCB培训是硬件学习中非常重要的一环。很多人学习电子电路时,最开始接触的是原理图和开发板,但真正进入硬件项目后,会发现PCB设计能力非常关键。因为一个硬件产品最终能不能稳定工作,不只取决于原理图是否正确,还取决于PCB布局是否合理、走线是否

PCB培训入门怎么学?从封装、布局到打样调试的完整流程

写MATLAB脚本时随手给自定义函数起的名字,不小心和内置函数重名,运行时会出现完全没逻辑的奇怪报错,反复调试也找不到问题根源。不用逐行核对代码,几个简单操作就能快速定位并解决冲突。1. 用which指令查优先级在命令行输入which 自定

函数名撞内置函数,MATLAB报错不用瞎找原因