在 AWS EC2 上部署 ComPDF:构建可扩展的文档处理服务

核心内容摘要

Qwen3-ASR长音频处理技巧:5分钟分段转写实战
语音转写全流程:Vibe本地化部署零基础技术指南

工程救险车物联网远程监控系统方案

气体传感器模块介绍

2.

使用方法有DO和AO输出接口提供给单片机使用。

电位器可以设置响应阈值。

未达到阈值时DO输出高电平达到阈值输出低电平。

STM32驱动#include stm32h7xx_hal.h // 引脚定义 #define MQ_DO_PIN GPIO_PIN_0 #define MQ_DO_GPIO_PORT GPIOG #define MQ_AO_PIN GPIO_PIN_10 #define MQ_AO_GPIO_PORT GPIOF // 全局句柄 ADC_HandleTypeDef hadc3; EXTI_HandleTypeDef hexti0; // 函数声明 void MQ_Init(void); uint8_t MQ_Get_DO_State(void); uint16_t MQ_Get_AO_Voltage(void); void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin); // 初始化传感器 void MQ_Init(void) { GPIO_InitTypeDef GPIO_InitStruct {0}; // 使能时钟 __HAL_RCC_GPIOG_CLK_ENABLE(); __HAL_RCC_GPIOF_CLK_ENABLE(); __HAL_RCC_ADC3_CLK_ENABLE(); // 初始化DO引脚外部中断模式 GPIO_InitStruct.Pin MQ_DO_PIN; GPIO_InitStruct.Mode GPIO_MODE_IT_FALLING; // 气体浓度超过阈值时DO由高变低触发中断 GPIO_InitStruct.Pull GPIO_PULLUP; HAL_GPIO_Init(MQ_DO_GPIO_PORT, GPIO_InitStruct); // 初始化AO引脚ADC输入模式 GPIO_InitStruct.Pin MQ_AO_PIN; GPIO_InitStruct.Mode GPIO_MODE_ANALOG; GPIO_InitStruct.Pull GPIO_NOPULL; HAL_GPIO_Init(MQ_AO_GPIO_PORT, GPIO_InitStruct); // 初始化ADC3 hadc

Instance ADC3; hadc

Init.ClockPrescaler ADC_CLOCK_SYNC_PCLK_DIV4; hadc

Init.Resolution ADC_RESOLUTION_12B; hadc

Init.ScanConvMode DISABLE; hadc

Init.ContinuousConvMode ENABLE; hadc

Init.DiscontinuousConvMode DISABLE; hadc

Init.ExternalTrigConvEdge ADC_EXTERNALTRIGCONVEDGE_NONE; hadc

Init.ExternalTrigConv ADC_SOFTWARE_START; hadc

Init.DataAlign ADC_DATAALIGN_RIGHT; hadc

Init.NbrOfConversion 1; hadc

Init.DMAContinuousRequests DISABLE; hadc

Init.EOCSelection ADC_EOC_SINGLE_CONV; HAL_ADC_Init(hadc

; // 配置ADC规则通道 ADC_ChannelConfTypeDef sConfig {0}; sConfig.Channel ADC_CHANNEL_8; // PF10对应ADC3_IN8 sConfig.Rank ADC_REGULAR_RANK_1; sConfig.SamplingTime ADC_SAMPLETIME_3CYCLES; HAL_ADC_ConfigChannel(hadc3, sConfig); // 使能中断 HAL_NVIC_EnableIRQ(EXTI0_IRQn); HAL_NVIC_SetPriority(EXTI0_IRQn, 0,

; // 启动ADC HAL_ADC_Start(hadc

; } // 获取DO引脚状态 uint8_t MQ_Get_DO_State(void) { return HAL_GPIO_ReadPin(MQ_DO_GPIO_PORT, MQ_DO_PIN); } // 获取AO引脚电压值12位ADC

对应0-

3V uint16_t MQ_Get_AO_Voltage(void) { HAL_ADC_PollForConversion(hadc3,

; return HAL_ADC_GetValue(hadc

; } // DO引脚中断回调函数 void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if(GPIO_Pin MQ_DO_PIN) { // 检测到气体浓度超过阈值 printf(气体浓度超标\r\n); } } // 主函数示例 int main(void) { HAL_Init(); SystemClock_Config(); MQ_Init(); printf(MQ气体传感器驱动启动...\r\n); while(

{ // 每秒读取一次模拟值 uint16_t ao_value MQ_Get_AO_Voltage(); float voltage ao_value *

3f /

4

0f; printf(当前模拟电压值%.2f V\r\n, voltage); HAL_Delay(

; } } // 外部中断服务函数 void EXTI0_IRQHandler(void) { HAL_GPIO_EXTI_IRQHandler(MQ_DO_PIN); }

撸社-撸社应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123