一块板子接多个传感器:模块加载顺序与资源冲突

项目功能多了以后(GNSS + 摄像头 + 音频 + 传感器),初始化顺序和资源冲突是最容易翻车的地方,总结一张自检清单:

  1. SPI 单例:camPreview 与 camCapture 二选一(前帖说过),同理接在 SPI 上的其他设备不要和摄像头抢通道;

  2. UART 复用:GNSS 数据走 UART 时,先看该串口有没有被日志/调试占用,EC600M 的 debug 口不能挪用;

  3. ADC 通道:光敏、电池电压等模拟量别挤同一通道;

  4. 推荐加载顺序:日志 → 网络驻网(等 dataCall)→ 传感器(I2C/ADC,失败可降级继续跑)→ LCD → 摄像头 → 音频 → 业务线程。非关键模块初始化失败要降级而不是整个退出——温湿度读不到,拍照功能不该跟着挂;

  5. 每个模块初始化后打一行日志(如 [camera] camCapture open OK),现场排障全靠它。