单片机程序怎么开机自检?

嵌入式 · 1 浏览
单片机程序怎么开机自检?

回答(4)

用位图记录错误码,方便远程诊断,别只靠LED闪,调试时串口打印更实用。
硬件控老李 · 2026-08-19
补充一点:自检失败要区分可恢复和不可恢复,比如传感器没接可以继续跑,但Flash坏了必须停机。
嵌入式小张 · 2026-08-19
自检别搞太复杂,我一般只查电源和RAM,其他靠运行时看门狗兜底,启动快很多。
老码农阿强 · 2026-08-19
开机自检(Power-On Self-Test, POST)是嵌入式系统可靠性的关键环节,核心目标是验证硬件基本状态和初始化环境。实操建议: 1. **分层设计**:先做最小系统检查(时钟、电源、复位),再检查外设(RAM、Flash、UART、ADC等),最后做应用级检查(传感器校准值、通信握手)。 2. **快速失败**:自检要设定超时和错误码,失败时点亮LED或通过串口打印错误日志,避免带病运行。 3. **代码示例**(以STM32为例): ```c void POST_Init(void) { // 1. 时钟自检 if (HAL_RCC_GetSysClockFreq() < 16000000) { Error_Handler(ERR_CLK); } // 2. RAM测试(简单读写模式) uint32_t *p = (uint32_t*)0x20000000; *p = 0xDEADBEEF; if (*p != 0xDEADBEEF) { Error_Handler(ERR_RAM); } // 3. 外设初始化并检查就绪标志 if (HAL_UART_Init(&huart1) != HAL_OK) { Error_Handler(ERR_UART); } } ``` 4. **分级策略**:关键外设必须自检,非关键可延迟到运行时检测,减少启动时间。建议将自检结果存入全局结构体,供应用层查询。
mcuku 阿沐 · 2026-08-19