diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f453cb4
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,86 @@
+# ---> C
+# Prerequisites
+*.d
+
+# Object files
+*.o
+*.ko
+*.obj
+*.elf
+*.e1f
+*.axf
+*.de
+*.cyclo
+*.list
+*.mk
+
+# Linker output
+*.ilk
+*.map
+*.exp
+*.list
+*.su
+
+# Precompiled Headers
+*.gch
+*.pch
+
+# Libraries
+*.lib
+*.a
+*.la
+*.lo
+
+# Shared objects (inc. Windows DLLs)
+*.dll
+*.so
+*.so.*
+*.dylib
+
+
+# Executables
+*.exe
+*.out
+*.app
+*.i*86
+*.x86_64
+*.hex
+*.axf
+*.dep
+*.d
+*.o
+*.dp
+*.lst
+*.build_log
+*.build_log.htm
+
+
+# Debug files
+*.dSYM/
+*.su
+*.idb
+*.pdb
+*.dbgconf
+*.uvguix.lenovo
+*.uvoptx
+*.uvprojx
+*.build_log.htm
+*.htm
+*.map
+*.lnp
+*.sct
+*.crf
+*.lst
+
+
+# Kernel Module Compile Results
+*.mod*
+*.cmd
+*.htm
+*.html
+.tmp_versions/
+modules.order
+Module.symvers
+Mkfile.old
+dkms.conf
+
diff --git a/.mxproject b/.mxproject
new file mode 100644
index 0000000..feb4a94
--- /dev/null
+++ b/.mxproject
@@ -0,0 +1,14 @@
+[PreviousLibFiles]
+LibFiles=Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_gpio.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_system.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_comp.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_bus.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_cortex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_rcc.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_crs.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_utils.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_exti.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_pwr.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_dma.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc_ex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h;Drivers/STM32F0xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_i2c.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_i2c_ex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio_ex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma_ex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_cortex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_pwr.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_pwr_ex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_flash.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_flash_ex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_crc.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_crc_ex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_dac.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_iwdg.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_tim.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_usart.h;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_gpio.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_comp.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_rcc.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_utils.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_exti.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_rcc.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_rcc_ex.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c_ex.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_dma.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_cortex.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_pwr.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_pwr_ex.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash_ex.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_crc.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_crc_ex.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_dac.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_dma.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_tim.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_tim_ex.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_tim.c;Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usart.c;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_gpio.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_system.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_comp.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_bus.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_cortex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_rcc.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_crs.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_utils.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_exti.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_pwr.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_dma.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc_ex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h;Drivers/STM32F0xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_i2c.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_i2c_ex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio_ex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma_ex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_cortex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_pwr.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_pwr_ex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_flash.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_flash_ex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_crc.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_crc_ex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_dac.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_iwdg.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_tim.h;Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_usart.h;Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f071xb.h;Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h;Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h;Drivers/CMSIS/Device/ST/STM32F0xx/Source/Templates/system_stm32f0xx.c;Drivers/CMSIS/Include/arm_common_tables.h;Drivers/CMSIS/Include/arm_const_structs.h;Drivers/CMSIS/Include/arm_math.h;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/cmsis_armcc_V6.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_cmFunc.h;Drivers/CMSIS/Include/core_cmInstr.h;Drivers/CMSIS/Include/core_cmSimd.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_sc300.h;
+
+[PreviousUsedKeilFiles]
+SourceFiles=..\Src\main.c;..\Src\gpio.c;..\Src\comp.c;..\Src\crc.c;..\Src\dac.c;..\Src\dma.c;..\Src\iwdg.c;..\Src\tim.c;..\Src\usart.c;..\Src\stm32f0xx_it.c;..\Src\stm32f0xx_hal_msp.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_gpio.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_comp.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_rcc.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_utils.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_exti.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_rcc.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_rcc_ex.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c_ex.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_dma.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_cortex.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_pwr.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_pwr_ex.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash_ex.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_crc.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_crc_ex.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_dac.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_dma.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_tim.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_tim_ex.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_tim.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usart.c;..\\Src/system_stm32f0xx.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_gpio.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_comp.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_rcc.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_utils.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_exti.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_rcc.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_rcc_ex.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c_ex.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_dma.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_cortex.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_pwr.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_pwr_ex.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash_ex.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_crc.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_crc_ex.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_dac.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_dma.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_tim.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_tim_ex.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_tim.c;..\Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usart.c;..\\Src/system_stm32f0xx.c;..\Drivers/CMSIS/Device/ST/STM32F0xx/Source/Templates/system_stm32f0xx.c;;
+HeaderPath=..\Drivers\STM32F0xx_HAL_Driver\Inc;..\Drivers\STM32F0xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F0xx\Include;..\Drivers\CMSIS\Include;..\Inc;
+CDefines=USE_FULL_LL_DRIVER;USE_HAL_DRIVER;STM32F071xB;USE_FULL_LL_DRIVER;USE_HAL_DRIVER;USE_HAL_DRIVER;
+
+[PreviousGenFiles]
+HeaderPath=E:/yunhorn/Project/SmokeDetection/SmokeDetection/SmokeDetection/Inc
+HeaderFiles=gpio.h;comp.h;crc.h;dac.h;dma.h;iwdg.h;tim.h;usart.h;stm32f0xx_it.h;stm32_assert.h;stm32f0xx_hal_conf.h;main.h;
+SourcePath=E:/yunhorn/Project/SmokeDetection/SmokeDetection/SmokeDetection/Src
+SourceFiles=gpio.c;comp.c;crc.c;dac.c;dma.c;iwdg.c;tim.c;usart.c;stm32f0xx_it.c;stm32f0xx_hal_msp.c;main.c;
+
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..c4bbe94
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+old smoking sensor STS_E1