ADC与GPIO控制逻辑的实现与流程分析
该思维导图描述了ADC和GPIO的控制逻辑流程。首先,通过调用`HAL_ADC_Start`启动ADC,并通过`HAL_ADC_PollForConversion`进行轮询转换,获取ADC值。根据ADC值判断是否设置或复位`GPIOF_PIN_9`。接着读取`GPIOG_PIN_15`状态,根据其值控制`GPIOF_PIN_6`、`GPIOF_PIN_7`和`GPIOF_PIN_8`的设置与复位。最后,检查`GPIOF_PIN_0`的状态,决定是否复位或设置`GPIOF_PIN_1`。
源码
# ADC与GPIO控制逻辑的实现与流程分析
- 启动ADC
- 调用函数
- HAL_ADC_Start(&hadc1)
- 状态检查
- ADC启动成功
- ADC启动失败
- ADC转换轮询
- 调用函数
- HAL_ADC_PollForConversion(&hadc1, 1)
- 轮询次数
- 初始设置次数
- 每次等待时间
- 获取ADC值
- 调用函数
- adc_val = HAL_ADC_GetValue(&hadc1)
- 值范围
- 最小值
- 最大值
- 检查ADC值
- 如果 adc_val > 1500
- 设置 GPIOF_PIN_9
- 状态变更确认
- 否则
- 复位 GPIOF_PIN_9
- 状态变更确认
- 读取 GPIOG_PIN_15
- GPIO状态
- 如果为 GPIO_PIN_RESET
- 设置 GPIOF_PIN_6
- 延迟处理
- 延迟 5000 ms
- 复位 GPIOF_PIN_6
- 延迟 100 ms
- 设置 GPIOF_PIN_7
- 延迟处理
- 延迟 5000 ms
- 复位 GPIOF_PIN_7
- 延迟 100 ms
- 设置 GPIOF_PIN_8
- 延迟处理
- 延迟 5000 ms
- 复位 GPIOF_PIN_8
- 状态变更确认
- 如果为 GPIO_PIN_SET
- 无操作
- 读取 GPIOF_PIN_0
- GPIO状态
- 如果为 GPIO_PIN_SET
- 复位 GPIOF_PIN_1
- 状态变更确认
- 如果为 GPIO_PIN_RESET
- 设置 GPIOF_PIN_1
- 状态变更确认
图片
