#defineWASHER_STATUS_ENUM(STATUS)\STATUS(WS_INIT)/*开机初始化自检*/\STATUS(WS_IDLE)/*空闲(等待模式设置)状态*/\STATUS(WS_ADD_WATER)/*加水状态*/\STATUS(WS_WASH)/*清洗状态*/\STATUS(WS_DRAIN_WATER)/*排水状态*/\STATUS(WS_SPIN_DRY)/*甩干状态*/\STATUS(WS_PAUSE)/*暂停状态*/\STATUS(WS_...
typedef struct{WASHER_STATUSwasherStatus;/*洗衣机的工作状态*/int targetWaterLevel;/*洗衣机的目标水位*/int targetWashTimes;/*洗衣机的目标清洗次数*/int remainingTime;/*洗衣机的剩余工作时间(暂未使用)*/int curWaterLevel;/*洗衣机当前的水位*/bool hasNewData;/*是否有新的数据(用于告诉OLED是否刷新显...
#define WASHER_STATUS_ENUM(STATUS) \STATUS(WS_INIT)/*开机初始化自检*/\STATUS(WS_IDLE)/*空闲(等待模式设置)状态*/\STATUS(WS_ADD_WATER)/*加水状态*/\STATUS(WS_WASH)/*清洗状态*/\STATUS(WS_DRAIN_WATER)/*排水状态*/\STATUS(WS_SPIN_DRY)/*甩干状态*/\STATUS(WS_PAUSE)/*暂停状态*/\STATUS(...
#defineWASHER_STATUS_ENUM(STATUS)\STATUS(WS_INIT)/*开机初始化自检*/\STATUS(WS_IDLE)/*空闲(等待模式设置)状态*/\STATUS(WS_ADD_WATER)/*加水状态*/\STATUS(WS_WASH)/*清洗状态*/\STATUS(WS_DRAIN_WATER)/*排水状态*/\STATUS(WS_SPIN_DRY)/*甩干状态*/\STATUS(WS_PAUSE)/*暂停状态*/\STATUS(WS_...
本篇,继续使用状态机编程,来实现一个更有趣的功能——全自动洗衣机。 1 全自动洗衣机功能分析 下面是一个全自动洗衣机的控制面板: 面板上有4个按键: 电源:控制洗衣机通电与断电 水位:选择洗衣时需要的水位,有1~8个水位 程序:选择不同的洗衣模式,有1~10个模式 ...
int remainingTime; /*洗衣机的剩余工作时间(暂未使用)*/ int curWaterLevel; /*洗衣机当前的水位*/ bool hasNewData; /*是否有新的数据(用于告诉OLED是否刷新显示)*/ }WASHER_OUTPUT_DATA; 对于OLED的展示逻辑,这里是在状态机的每个循环结束后,调用下面的程序逻辑进行展示: ...
本篇,继续使用状态机编程,来实现一个更有趣的功能——全自动洗衣机。 1 全自动洗衣机功能分析 下面是一个全自动洗衣机的控制面板: 面板上有4个按键: 电源:控制洗衣机通电与断电 水位:选择洗衣时需要的水位,有1~8个水位 程序:选择不同的洗衣模式,有1~10个模式 ...
通过状态机编程,实现了全自动洗衣机的逻辑控制,并通过串口打印的方式显示各个状态。 本篇,为了更加直观的感受状态机的运行,使用0.96寸OLED来显示各个状态,并搭配对应的动态图标来体现洗衣机工作的各个状态。 先来看下演示效果: STM32状态机编程实例-全自动洗衣机2004 播放 · 2 赞同视频 ...
【摘要】 本篇在上篇全自动洗衣机的状态机编程实例的基础上,增加了OLED来更新直观的展示洗衣机的工作状态,并通过3种测试场景来展示洗衣机工作状态机的执行。 上篇文章,通过状态机编程,实现了全自动洗衣机的逻辑控制,并通过串口打印的方式显示各个状态。
本篇,继续使用状态机编程,来实现一个更有趣的功能——全自动洗衣机。 1 全自动洗衣机功能分析 下面是一个全自动洗衣机的控制面板: 面板上有4个按键: 电源:控制洗衣机通电与断电 水位:选择洗衣时需要的水位,有1~8个水位 程序:选择不同的洗衣模式,有1~10个模式 ...