
第九章 传感器数据流水线 —— 改造 20_LSENS9.1 实验回顾:裸机版光敏采集20_LSENS主循环:读光敏值 → 刷屏 → LED 心跳 → 延时 250ms:while(1){adcx=lsens_get_val();/* 0~100,越大越亮 */lcd_show_xnum(30+10*8,110,adcx,3,16,0,BLUE);LED0_TOGGLE();delay_ms(250);}其中lsens_get_val()内部是adc3_get_result_average(LSENS_ADC3_CHX, 10)——采 10 次取平均后换算成 0~100 的亮度值。采集、换算、显示、心跳,全绑在一个 250ms 循环上。9.2 改造方案设计:生产者—消费者数据流水线把“采集”和“显示”彻底解耦:sensor_task(采集,100ms 周期) display_task(显示,250ms 周期) lsens_get_val() ┌─ 从队列取"最新值"(丢弃过期样本) │ │ └── osMessageQueuePut ──▶ [队列] ──▶ ├─ 互斥量保护刷屏 └─ LED 心跳