parent
49e26b6df9
commit
dd6f06c4a1
@ -0,0 +1,477 @@ |
||||
#MicroXplorer Configuration settings - do not modify |
||||
CAD.formats= |
||||
CAD.pinconfig= |
||||
CAD.provider= |
||||
Dma.Request0=USART1_RX |
||||
Dma.Request1=USART1_TX |
||||
Dma.Request2=USART2_RX |
||||
Dma.Request3=USART2_TX |
||||
Dma.Request4=USART3_RX |
||||
Dma.Request5=USART3_TX |
||||
Dma.Request6=SDIO_RX |
||||
Dma.Request7=SDIO_TX |
||||
Dma.RequestsNb=8 |
||||
Dma.SDIO_RX.6.Direction=DMA_PERIPH_TO_MEMORY |
||||
Dma.SDIO_RX.6.FIFOMode=DMA_FIFOMODE_ENABLE |
||||
Dma.SDIO_RX.6.FIFOThreshold=DMA_FIFO_THRESHOLD_FULL |
||||
Dma.SDIO_RX.6.Instance=DMA2_Stream3 |
||||
Dma.SDIO_RX.6.MemBurst=DMA_MBURST_INC4 |
||||
Dma.SDIO_RX.6.MemDataAlignment=DMA_MDATAALIGN_WORD |
||||
Dma.SDIO_RX.6.MemInc=DMA_MINC_ENABLE |
||||
Dma.SDIO_RX.6.Mode=DMA_PFCTRL |
||||
Dma.SDIO_RX.6.PeriphBurst=DMA_PBURST_INC4 |
||||
Dma.SDIO_RX.6.PeriphDataAlignment=DMA_PDATAALIGN_WORD |
||||
Dma.SDIO_RX.6.PeriphInc=DMA_PINC_DISABLE |
||||
Dma.SDIO_RX.6.Priority=DMA_PRIORITY_LOW |
||||
Dma.SDIO_RX.6.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,FIFOThreshold,MemBurst,PeriphBurst |
||||
Dma.SDIO_TX.7.Direction=DMA_MEMORY_TO_PERIPH |
||||
Dma.SDIO_TX.7.FIFOMode=DMA_FIFOMODE_ENABLE |
||||
Dma.SDIO_TX.7.FIFOThreshold=DMA_FIFO_THRESHOLD_FULL |
||||
Dma.SDIO_TX.7.Instance=DMA2_Stream6 |
||||
Dma.SDIO_TX.7.MemBurst=DMA_MBURST_INC4 |
||||
Dma.SDIO_TX.7.MemDataAlignment=DMA_MDATAALIGN_WORD |
||||
Dma.SDIO_TX.7.MemInc=DMA_MINC_ENABLE |
||||
Dma.SDIO_TX.7.Mode=DMA_PFCTRL |
||||
Dma.SDIO_TX.7.PeriphBurst=DMA_PBURST_INC4 |
||||
Dma.SDIO_TX.7.PeriphDataAlignment=DMA_PDATAALIGN_WORD |
||||
Dma.SDIO_TX.7.PeriphInc=DMA_PINC_DISABLE |
||||
Dma.SDIO_TX.7.Priority=DMA_PRIORITY_LOW |
||||
Dma.SDIO_TX.7.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,FIFOThreshold,MemBurst,PeriphBurst |
||||
Dma.USART1_RX.0.Direction=DMA_PERIPH_TO_MEMORY |
||||
Dma.USART1_RX.0.FIFOMode=DMA_FIFOMODE_DISABLE |
||||
Dma.USART1_RX.0.Instance=DMA2_Stream2 |
||||
Dma.USART1_RX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE |
||||
Dma.USART1_RX.0.MemInc=DMA_MINC_ENABLE |
||||
Dma.USART1_RX.0.Mode=DMA_NORMAL |
||||
Dma.USART1_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE |
||||
Dma.USART1_RX.0.PeriphInc=DMA_PINC_DISABLE |
||||
Dma.USART1_RX.0.Priority=DMA_PRIORITY_LOW |
||||
Dma.USART1_RX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode |
||||
Dma.USART1_TX.1.Direction=DMA_MEMORY_TO_PERIPH |
||||
Dma.USART1_TX.1.FIFOMode=DMA_FIFOMODE_DISABLE |
||||
Dma.USART1_TX.1.Instance=DMA2_Stream7 |
||||
Dma.USART1_TX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE |
||||
Dma.USART1_TX.1.MemInc=DMA_MINC_ENABLE |
||||
Dma.USART1_TX.1.Mode=DMA_NORMAL |
||||
Dma.USART1_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE |
||||
Dma.USART1_TX.1.PeriphInc=DMA_PINC_DISABLE |
||||
Dma.USART1_TX.1.Priority=DMA_PRIORITY_LOW |
||||
Dma.USART1_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode |
||||
Dma.USART2_RX.2.Direction=DMA_PERIPH_TO_MEMORY |
||||
Dma.USART2_RX.2.FIFOMode=DMA_FIFOMODE_DISABLE |
||||
Dma.USART2_RX.2.Instance=DMA1_Stream5 |
||||
Dma.USART2_RX.2.MemDataAlignment=DMA_MDATAALIGN_BYTE |
||||
Dma.USART2_RX.2.MemInc=DMA_MINC_ENABLE |
||||
Dma.USART2_RX.2.Mode=DMA_NORMAL |
||||
Dma.USART2_RX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE |
||||
Dma.USART2_RX.2.PeriphInc=DMA_PINC_DISABLE |
||||
Dma.USART2_RX.2.Priority=DMA_PRIORITY_LOW |
||||
Dma.USART2_RX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode |
||||
Dma.USART2_TX.3.Direction=DMA_MEMORY_TO_PERIPH |
||||
Dma.USART2_TX.3.FIFOMode=DMA_FIFOMODE_DISABLE |
||||
Dma.USART2_TX.3.Instance=DMA1_Stream6 |
||||
Dma.USART2_TX.3.MemDataAlignment=DMA_MDATAALIGN_BYTE |
||||
Dma.USART2_TX.3.MemInc=DMA_MINC_ENABLE |
||||
Dma.USART2_TX.3.Mode=DMA_NORMAL |
||||
Dma.USART2_TX.3.PeriphDataAlignment=DMA_PDATAALIGN_BYTE |
||||
Dma.USART2_TX.3.PeriphInc=DMA_PINC_DISABLE |
||||
Dma.USART2_TX.3.Priority=DMA_PRIORITY_LOW |
||||
Dma.USART2_TX.3.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode |
||||
Dma.USART3_RX.4.Direction=DMA_PERIPH_TO_MEMORY |
||||
Dma.USART3_RX.4.FIFOMode=DMA_FIFOMODE_DISABLE |
||||
Dma.USART3_RX.4.Instance=DMA1_Stream1 |
||||
Dma.USART3_RX.4.MemDataAlignment=DMA_MDATAALIGN_BYTE |
||||
Dma.USART3_RX.4.MemInc=DMA_MINC_ENABLE |
||||
Dma.USART3_RX.4.Mode=DMA_NORMAL |
||||
Dma.USART3_RX.4.PeriphDataAlignment=DMA_PDATAALIGN_BYTE |
||||
Dma.USART3_RX.4.PeriphInc=DMA_PINC_DISABLE |
||||
Dma.USART3_RX.4.Priority=DMA_PRIORITY_LOW |
||||
Dma.USART3_RX.4.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode |
||||
Dma.USART3_TX.5.Direction=DMA_MEMORY_TO_PERIPH |
||||
Dma.USART3_TX.5.FIFOMode=DMA_FIFOMODE_DISABLE |
||||
Dma.USART3_TX.5.Instance=DMA1_Stream3 |
||||
Dma.USART3_TX.5.MemDataAlignment=DMA_MDATAALIGN_BYTE |
||||
Dma.USART3_TX.5.MemInc=DMA_MINC_ENABLE |
||||
Dma.USART3_TX.5.Mode=DMA_NORMAL |
||||
Dma.USART3_TX.5.PeriphDataAlignment=DMA_PDATAALIGN_BYTE |
||||
Dma.USART3_TX.5.PeriphInc=DMA_PINC_DISABLE |
||||
Dma.USART3_TX.5.Priority=DMA_PRIORITY_LOW |
||||
Dma.USART3_TX.5.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode |
||||
FATFS.BSP.number=1 |
||||
FATFS.IPParameters=_CODE_PAGE,_USE_LFN,_USE_LABEL,_MAX_SS,_FS_EXFAT |
||||
FATFS._CODE_PAGE=936 |
||||
FATFS._FS_EXFAT=1 |
||||
FATFS._MAX_SS=4096 |
||||
FATFS._USE_LABEL=1 |
||||
FATFS._USE_LFN=2 |
||||
FATFS0.BSP.STBoard=false |
||||
FATFS0.BSP.api=Unknown |
||||
FATFS0.BSP.component= |
||||
FATFS0.BSP.condition= |
||||
FATFS0.BSP.instance=PA15 |
||||
FATFS0.BSP.ip=GPIO |
||||
FATFS0.BSP.mode=Input |
||||
FATFS0.BSP.name=Detect_SDIO |
||||
FATFS0.BSP.semaphore= |
||||
FATFS0.BSP.solution=PA15 |
||||
FREERTOS.FootprintOK=true |
||||
FREERTOS.IPParameters=Tasks01,FootprintOK,configCHECK_FOR_STACK_OVERFLOW,configUSE_IDLE_HOOK,configUSE_TICK_HOOK |
||||
FREERTOS.Tasks01=defaultTask,24,1024,StartDefaultTask,As weak,NULL,Dynamic,NULL,NULL |
||||
FREERTOS.configCHECK_FOR_STACK_OVERFLOW=2 |
||||
FREERTOS.configUSE_IDLE_HOOK=1 |
||||
FREERTOS.configUSE_TICK_HOOK=1 |
||||
File.Version=6 |
||||
GPIO.groupedBy=Group By Peripherals |
||||
KeepUserPlacement=false |
||||
Mcu.CPN=STM32F407ZET6 |
||||
Mcu.Family=STM32F4 |
||||
Mcu.IP0=DMA |
||||
Mcu.IP1=FATFS |
||||
Mcu.IP10=UART4 |
||||
Mcu.IP11=USART1 |
||||
Mcu.IP12=USART2 |
||||
Mcu.IP13=USART3 |
||||
Mcu.IP14=USART6 |
||||
Mcu.IP15=USB_DEVICE |
||||
Mcu.IP16=USB_OTG_HS |
||||
Mcu.IP2=FREERTOS |
||||
Mcu.IP3=I2C1 |
||||
Mcu.IP4=NVIC |
||||
Mcu.IP5=RCC |
||||
Mcu.IP6=SDIO |
||||
Mcu.IP7=SYS |
||||
Mcu.IP8=TIM2 |
||||
Mcu.IP9=TIM7 |
||||
Mcu.IPNb=17 |
||||
Mcu.Name=STM32F407Z(E-G)Tx |
||||
Mcu.Package=LQFP144 |
||||
Mcu.Pin0=PE4 |
||||
Mcu.Pin1=PE5 |
||||
Mcu.Pin10=PA4 |
||||
Mcu.Pin11=PA6 |
||||
Mcu.Pin12=PA7 |
||||
Mcu.Pin13=PB2 |
||||
Mcu.Pin14=PE12 |
||||
Mcu.Pin15=PE13 |
||||
Mcu.Pin16=PE14 |
||||
Mcu.Pin17=PE15 |
||||
Mcu.Pin18=PB10 |
||||
Mcu.Pin19=PB11 |
||||
Mcu.Pin2=PE6 |
||||
Mcu.Pin20=PB14 |
||||
Mcu.Pin21=PB15 |
||||
Mcu.Pin22=PG4 |
||||
Mcu.Pin23=PG5 |
||||
Mcu.Pin24=PC6 |
||||
Mcu.Pin25=PC7 |
||||
Mcu.Pin26=PC8 |
||||
Mcu.Pin27=PC9 |
||||
Mcu.Pin28=PA9 |
||||
Mcu.Pin29=PA10 |
||||
Mcu.Pin3=PF0 |
||||
Mcu.Pin30=PA13 |
||||
Mcu.Pin31=PA14 |
||||
Mcu.Pin32=PA15 |
||||
Mcu.Pin33=PC10 |
||||
Mcu.Pin34=PC11 |
||||
Mcu.Pin35=PC12 |
||||
Mcu.Pin36=PD2 |
||||
Mcu.Pin37=PB4 |
||||
Mcu.Pin38=PB5 |
||||
Mcu.Pin39=PB6 |
||||
Mcu.Pin4=PH0-OSC_IN |
||||
Mcu.Pin40=PB7 |
||||
Mcu.Pin41=PE0 |
||||
Mcu.Pin42=PE1 |
||||
Mcu.Pin43=VP_FATFS_VS_SDIO |
||||
Mcu.Pin44=VP_FREERTOS_VS_CMSIS_V2 |
||||
Mcu.Pin45=VP_SYS_VS_tim6 |
||||
Mcu.Pin46=VP_TIM2_VS_ClockSourceINT |
||||
Mcu.Pin47=VP_TIM7_VS_ClockSourceINT |
||||
Mcu.Pin48=VP_USB_DEVICE_VS_USB_DEVICE_MSC_HS |
||||
Mcu.Pin5=PH1-OSC_OUT |
||||
Mcu.Pin6=PA0-WKUP |
||||
Mcu.Pin7=PA1 |
||||
Mcu.Pin8=PA2 |
||||
Mcu.Pin9=PA3 |
||||
Mcu.PinsNb=49 |
||||
Mcu.ThirdPartyNb=0 |
||||
Mcu.UserConstants= |
||||
Mcu.UserName=STM32F407ZETx |
||||
MxCube.Version=6.9.2 |
||||
MxDb.Version=DB.6.0.92 |
||||
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false |
||||
NVIC.DMA1_Stream1_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true |
||||
NVIC.DMA1_Stream3_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true |
||||
NVIC.DMA1_Stream5_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true |
||||
NVIC.DMA1_Stream6_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true |
||||
NVIC.DMA2_Stream2_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true |
||||
NVIC.DMA2_Stream3_IRQn=true\:10\:0\:true\:false\:true\:true\:false\:true\:true |
||||
NVIC.DMA2_Stream6_IRQn=true\:10\:0\:true\:false\:true\:true\:false\:true\:true |
||||
NVIC.DMA2_Stream7_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true |
||||
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false |
||||
NVIC.ForceEnableDMAVector=true |
||||
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false |
||||
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false |
||||
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false |
||||
NVIC.OTG_HS_IRQn=true\:11\:0\:true\:false\:true\:true\:false\:true\:true |
||||
NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false\:false |
||||
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 |
||||
NVIC.SDIO_IRQn=true\:9\:0\:true\:false\:true\:true\:true\:true\:true |
||||
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:false\:false\:false |
||||
NVIC.SavedPendsvIrqHandlerGenerated=true |
||||
NVIC.SavedSvcallIrqHandlerGenerated=true |
||||
NVIC.SavedSystickIrqHandlerGenerated=true |
||||
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:true\:false |
||||
NVIC.TIM2_IRQn=true\:5\:0\:false\:false\:false\:true\:true\:true\:true |
||||
NVIC.TIM6_DAC_IRQn=true\:15\:0\:false\:false\:true\:false\:false\:true\:true |
||||
NVIC.TIM7_IRQn=true\:5\:0\:false\:false\:false\:true\:true\:true\:true |
||||
NVIC.TimeBase=TIM6_DAC_IRQn |
||||
NVIC.TimeBaseIP=TIM6 |
||||
NVIC.UART4_IRQn=true\:5\:0\:false\:false\:false\:true\:true\:true\:true |
||||
NVIC.USART1_IRQn=true\:5\:0\:false\:false\:false\:true\:true\:true\:true |
||||
NVIC.USART2_IRQn=true\:5\:0\:false\:false\:false\:true\:true\:true\:true |
||||
NVIC.USART3_IRQn=true\:5\:0\:false\:false\:false\:true\:true\:true\:true |
||||
NVIC.USART6_IRQn=true\:7\:0\:true\:false\:false\:true\:true\:true\:true |
||||
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false |
||||
PA0-WKUP.Mode=Asynchronous |
||||
PA0-WKUP.Signal=UART4_TX |
||||
PA1.Mode=Asynchronous |
||||
PA1.Signal=UART4_RX |
||||
PA10.Mode=Asynchronous |
||||
PA10.Signal=USART1_RX |
||||
PA13.Mode=Serial_Wire |
||||
PA13.Signal=SYS_JTMS-SWDIO |
||||
PA14.Mode=Serial_Wire |
||||
PA14.Signal=SYS_JTCK-SWCLK |
||||
PA15.GPIOParameters=GPIO_Label |
||||
PA15.GPIO_Label=CDZ |
||||
PA15.Locked=true |
||||
PA15.Signal=GPIO_Input |
||||
PA2.Locked=true |
||||
PA2.Mode=Asynchronous |
||||
PA2.Signal=USART2_TX |
||||
PA3.Locked=true |
||||
PA3.Mode=Asynchronous |
||||
PA3.Signal=USART2_RX |
||||
PA4.GPIOParameters=GPIO_Label |
||||
PA4.GPIO_Label=MAX3242_EN |
||||
PA4.Locked=true |
||||
PA4.Signal=GPIO_Output |
||||
PA6.GPIOParameters=GPIO_Label |
||||
PA6.GPIO_Label=SENSOR2_EN |
||||
PA6.Locked=true |
||||
PA6.Signal=GPIO_Output |
||||
PA7.GPIOParameters=GPIO_Label |
||||
PA7.GPIO_Label=SENSOR4_EN |
||||
PA7.Locked=true |
||||
PA7.Signal=GPIO_Output |
||||
PA9.Mode=Asynchronous |
||||
PA9.Signal=USART1_TX |
||||
PB10.Locked=true |
||||
PB10.Mode=Asynchronous |
||||
PB10.Signal=USART3_TX |
||||
PB11.Locked=true |
||||
PB11.Mode=Asynchronous |
||||
PB11.Signal=USART3_RX |
||||
PB14.Mode=Device_Only_FS |
||||
PB14.Signal=USB_OTG_HS_DM |
||||
PB15.Mode=Device_Only_FS |
||||
PB15.Signal=USB_OTG_HS_DP |
||||
PB2.GPIOParameters=GPIO_Label |
||||
PB2.GPIO_Label=BOOT1 |
||||
PB2.Locked=true |
||||
PB2.Signal=GPIO_Input |
||||
PB4.GPIOParameters=GPIO_Label |
||||
PB4.GPIO_Label=ADDR |
||||
PB4.Locked=true |
||||
PB4.Signal=GPIO_Output |
||||
PB5.GPIOParameters=GPIO_Label |
||||
PB5.GPIO_Label=RDY |
||||
PB5.Locked=true |
||||
PB5.Signal=GPIO_Output |
||||
PB6.GPIOParameters=GPIO_Pu |
||||
PB6.GPIO_Pu=GPIO_PULLUP |
||||
PB6.Mode=I2C |
||||
PB6.Signal=I2C1_SCL |
||||
PB7.GPIOParameters=GPIO_Pu |
||||
PB7.GPIO_Pu=GPIO_PULLUP |
||||
PB7.Mode=I2C |
||||
PB7.Signal=I2C1_SDA |
||||
PC10.Mode=SD_4_bits_Wide_bus |
||||
PC10.Signal=SDIO_D2 |
||||
PC11.Mode=SD_4_bits_Wide_bus |
||||
PC11.Signal=SDIO_D3 |
||||
PC12.Mode=SD_4_bits_Wide_bus |
||||
PC12.Signal=SDIO_CK |
||||
PC6.Locked=true |
||||
PC6.Mode=Asynchronous |
||||
PC6.Signal=USART6_TX |
||||
PC7.Locked=true |
||||
PC7.Mode=Asynchronous |
||||
PC7.Signal=USART6_RX |
||||
PC8.Mode=SD_4_bits_Wide_bus |
||||
PC8.Signal=SDIO_D0 |
||||
PC9.Mode=SD_4_bits_Wide_bus |
||||
PC9.Signal=SDIO_D1 |
||||
PD2.Mode=SD_4_bits_Wide_bus |
||||
PD2.Signal=SDIO_CMD |
||||
PE0.GPIOParameters=GPIO_Label |
||||
PE0.GPIO_Label=LED0 |
||||
PE0.Locked=true |
||||
PE0.Signal=GPIO_Output |
||||
PE1.GPIOParameters=GPIO_Label |
||||
PE1.GPIO_Label=LED1 |
||||
PE1.Locked=true |
||||
PE1.Signal=GPIO_Output |
||||
PE12.GPIOParameters=GPIO_Label |
||||
PE12.GPIO_Label=SENSOR3_EN |
||||
PE12.Locked=true |
||||
PE12.Signal=GPIO_Output |
||||
PE13.GPIOParameters=GPIO_Label |
||||
PE13.GPIO_Label=DE485 |
||||
PE13.Locked=true |
||||
PE13.Signal=GPIO_Output |
||||
PE14.GPIOParameters=GPIO_Label |
||||
PE14.GPIO_Label=HDPLX |
||||
PE14.Locked=true |
||||
PE14.Signal=GPIO_Output |
||||
PE15.GPIOParameters=GPIO_Label |
||||
PE15.GPIO_Label=SEL_232/485 |
||||
PE15.Locked=true |
||||
PE15.Signal=GPIO_Output |
||||
PE4.GPIOParameters=GPIO_Label |
||||
PE4.GPIO_Label=EN_1302 |
||||
PE4.Locked=true |
||||
PE4.Signal=GPIO_Output |
||||
PE5.GPIOParameters=GPIO_Label,GPIO_ModeDefaultOutputPP |
||||
PE5.GPIO_Label=DA_1302 |
||||
PE5.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD |
||||
PE5.Locked=true |
||||
PE5.Signal=GPIO_Output |
||||
PE6.GPIOParameters=GPIO_Label |
||||
PE6.GPIO_Label=SCLK_1302 |
||||
PE6.Locked=true |
||||
PE6.Signal=GPIO_Output |
||||
PF0.GPIOParameters=GPIO_Label |
||||
PF0.GPIO_Label=PUMP_EN |
||||
PF0.Locked=true |
||||
PF0.Signal=GPIO_Output |
||||
PG4.GPIOParameters=GPIO_Label |
||||
PG4.GPIO_Label=SENSOR6_EN |
||||
PG4.Locked=true |
||||
PG4.Signal=GPIO_Output |
||||
PG5.GPIOParameters=GPIO_Label |
||||
PG5.GPIO_Label=R/W |
||||
PG5.Locked=true |
||||
PG5.Signal=GPIO_Output |
||||
PH0-OSC_IN.Mode=HSE-External-Oscillator |
||||
PH0-OSC_IN.Signal=RCC_OSC_IN |
||||
PH1-OSC_OUT.Mode=HSE-External-Oscillator |
||||
PH1-OSC_OUT.Signal=RCC_OSC_OUT |
||||
PinOutPanel.RotationAngle=0 |
||||
ProjectManager.AskForMigrate=true |
||||
ProjectManager.BackupPrevious=false |
||||
ProjectManager.CompilerOptimize=6 |
||||
ProjectManager.ComputerToolchain=false |
||||
ProjectManager.CoupleFile=true |
||||
ProjectManager.CustomerFirmwarePackage= |
||||
ProjectManager.DefaultFWLocation=true |
||||
ProjectManager.DeletePrevious=true |
||||
ProjectManager.DeviceId=STM32F407ZETx |
||||
ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.27.1 |
||||
ProjectManager.FreePins=false |
||||
ProjectManager.HalAssertFull=false |
||||
ProjectManager.HeapSize=0x1000 |
||||
ProjectManager.KeepUserCode=true |
||||
ProjectManager.LastFirmware=true |
||||
ProjectManager.LibraryCopy=0 |
||||
ProjectManager.MainLocation=Core/Src |
||||
ProjectManager.NoMain=false |
||||
ProjectManager.PreviousToolchain= |
||||
ProjectManager.ProjectBuild=false |
||||
ProjectManager.ProjectFileName=H2S.ioc |
||||
ProjectManager.ProjectName=H2S |
||||
ProjectManager.ProjectStructure= |
||||
ProjectManager.RegisterCallBack= |
||||
ProjectManager.StackSize=0x1500 |
||||
ProjectManager.TargetToolchain=Makefile |
||||
ProjectManager.ToolChainLocation= |
||||
ProjectManager.UAScriptAfterPath= |
||||
ProjectManager.UAScriptBeforePath= |
||||
ProjectManager.UnderRoot=false |
||||
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_I2C1_Init-I2C1-false-HAL-true,5-MX_SDIO_SD_Init-SDIO-false-HAL-true,6-MX_UART4_Init-UART4-false-HAL-true,7-MX_USART1_UART_Init-USART1-false-HAL-true,8-MX_USART2_UART_Init-USART2-false-HAL-true,9-MX_USART3_UART_Init-USART3-false-HAL-true,10-MX_USART6_UART_Init-USART6-false-HAL-true,11-MX_TIM7_Init-TIM7-false-HAL-true,12-MX_FATFS_Init-FATFS-false-HAL-false,13-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false,14-MX_TIM2_Init-TIM2-false-HAL-true |
||||
RCC.48MHZClocksFreq_Value=48000000 |
||||
RCC.AHBFreq_Value=168000000 |
||||
RCC.APB1CLKDivider=RCC_HCLK_DIV4 |
||||
RCC.APB1Freq_Value=42000000 |
||||
RCC.APB1TimFreq_Value=84000000 |
||||
RCC.APB2CLKDivider=RCC_HCLK_DIV2 |
||||
RCC.APB2Freq_Value=84000000 |
||||
RCC.APB2TimFreq_Value=168000000 |
||||
RCC.CortexFreq_Value=168000000 |
||||
RCC.EthernetFreq_Value=168000000 |
||||
RCC.FCLKCortexFreq_Value=168000000 |
||||
RCC.FamilyName=M |
||||
RCC.HCLKFreq_Value=168000000 |
||||
RCC.HSE_VALUE=8000000 |
||||
RCC.HSI_VALUE=16000000 |
||||
RCC.I2SClocksFreq_Value=192000000 |
||||
RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSE_VALUE,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLQ,PLLQCLKFreq_Value,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S |
||||
RCC.LSE_VALUE=32768 |
||||
RCC.LSI_VALUE=32000 |
||||
RCC.MCO2PinFreq_Value=168000000 |
||||
RCC.PLLCLKFreq_Value=168000000 |
||||
RCC.PLLM=4 |
||||
RCC.PLLN=168 |
||||
RCC.PLLQ=7 |
||||
RCC.PLLQCLKFreq_Value=48000000 |
||||
RCC.RTCFreq_Value=32000 |
||||
RCC.RTCHSEDivFreq_Value=4000000 |
||||
RCC.SYSCLKFreq_VALUE=168000000 |
||||
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK |
||||
RCC.VCOI2SOutputFreq_Value=384000000 |
||||
RCC.VCOInputFreq_Value=2000000 |
||||
RCC.VCOOutputFreq_Value=336000000 |
||||
RCC.VcooutputI2S=192000000 |
||||
SDIO.ClockDiv=6 |
||||
SDIO.IPParameters=ClockDiv |
||||
TIM2.IPParameters=Prescaler,Period |
||||
TIM2.Period=10000-1 |
||||
TIM2.Prescaler=8400-1 |
||||
TIM7.IPParameters=Prescaler,Period |
||||
TIM7.Period=50-1 |
||||
TIM7.Prescaler=8400-1 |
||||
UART4.IPParameters=VirtualMode |
||||
UART4.VirtualMode=Asynchronous |
||||
USART1.IPParameters=VirtualMode |
||||
USART1.VirtualMode=VM_ASYNC |
||||
USART2.IPParameters=VirtualMode |
||||
USART2.VirtualMode=VM_ASYNC |
||||
USART3.BaudRate=9600 |
||||
USART3.IPParameters=VirtualMode,BaudRate |
||||
USART3.VirtualMode=VM_ASYNC |
||||
USART6.BaudRate=19200 |
||||
USART6.IPParameters=VirtualMode,BaudRate |
||||
USART6.VirtualMode=VM_ASYNC |
||||
USB_DEVICE.CLASS_NAME_HS=MSC |
||||
USB_DEVICE.IPParameters=VirtualMode-MSC_HS,VirtualModeHS,CLASS_NAME_HS,MSC_MEDIA_PACKET-MSC_HS |
||||
USB_DEVICE.MSC_MEDIA_PACKET-MSC_HS=4096 |
||||
USB_DEVICE.VirtualMode-MSC_HS=Msc |
||||
USB_DEVICE.VirtualModeHS=Msc_HS |
||||
USB_OTG_HS.IPParameters=VirtualMode-Device_Only_FS |
||||
USB_OTG_HS.VirtualMode-Device_Only_FS=Device_Only_FS |
||||
VP_FATFS_VS_SDIO.Mode=SDIO |
||||
VP_FATFS_VS_SDIO.Signal=FATFS_VS_SDIO |
||||
VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2 |
||||
VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2 |
||||
VP_SYS_VS_tim6.Mode=TIM6 |
||||
VP_SYS_VS_tim6.Signal=SYS_VS_tim6 |
||||
VP_TIM2_VS_ClockSourceINT.Mode=Internal |
||||
VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT |
||||
VP_TIM7_VS_ClockSourceINT.Mode=Enable_Timer |
||||
VP_TIM7_VS_ClockSourceINT.Signal=TIM7_VS_ClockSourceINT |
||||
VP_USB_DEVICE_VS_USB_DEVICE_MSC_HS.Mode=MSC_HS |
||||
VP_USB_DEVICE_VS_USB_DEVICE_MSC_HS.Signal=USB_DEVICE_VS_USB_DEVICE_MSC_HS |
||||
board=custom |
||||
rtos.0.ip=FREERTOS |
@ -0,0 +1,464 @@ |
||||
#MicroXplorer Configuration settings - do not modify |
||||
CAD.formats= |
||||
CAD.pinconfig= |
||||
CAD.provider= |
||||
Dma.Request0=SDIO_RX |
||||
Dma.Request1=SDIO_TX |
||||
Dma.Request2=USART1_RX |
||||
Dma.Request3=USART1_TX |
||||
Dma.Request4=USART2_RX |
||||
Dma.Request5=USART2_TX |
||||
Dma.Request6=USART3_RX |
||||
Dma.Request7=USART3_TX |
||||
Dma.RequestsNb=8 |
||||
Dma.SDIO_RX.0.Direction=DMA_PERIPH_TO_MEMORY |
||||
Dma.SDIO_RX.0.FIFOMode=DMA_FIFOMODE_ENABLE |
||||
Dma.SDIO_RX.0.FIFOThreshold=DMA_FIFO_THRESHOLD_FULL |
||||
Dma.SDIO_RX.0.Instance=DMA2_Stream3 |
||||
Dma.SDIO_RX.0.MemBurst=DMA_MBURST_INC4 |
||||
Dma.SDIO_RX.0.MemDataAlignment=DMA_MDATAALIGN_WORD |
||||
Dma.SDIO_RX.0.MemInc=DMA_MINC_ENABLE |
||||
Dma.SDIO_RX.0.Mode=DMA_PFCTRL |
||||
Dma.SDIO_RX.0.PeriphBurst=DMA_PBURST_INC4 |
||||
Dma.SDIO_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_WORD |
||||
Dma.SDIO_RX.0.PeriphInc=DMA_PINC_DISABLE |
||||
Dma.SDIO_RX.0.Priority=DMA_PRIORITY_LOW |
||||
Dma.SDIO_RX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,FIFOThreshold,MemBurst,PeriphBurst |
||||
Dma.SDIO_TX.1.Direction=DMA_MEMORY_TO_PERIPH |
||||
Dma.SDIO_TX.1.FIFOMode=DMA_FIFOMODE_ENABLE |
||||
Dma.SDIO_TX.1.FIFOThreshold=DMA_FIFO_THRESHOLD_FULL |
||||
Dma.SDIO_TX.1.Instance=DMA2_Stream6 |
||||
Dma.SDIO_TX.1.MemBurst=DMA_MBURST_INC4 |
||||
Dma.SDIO_TX.1.MemDataAlignment=DMA_MDATAALIGN_WORD |
||||
Dma.SDIO_TX.1.MemInc=DMA_MINC_ENABLE |
||||
Dma.SDIO_TX.1.Mode=DMA_PFCTRL |
||||
Dma.SDIO_TX.1.PeriphBurst=DMA_PBURST_INC4 |
||||
Dma.SDIO_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_WORD |
||||
Dma.SDIO_TX.1.PeriphInc=DMA_PINC_DISABLE |
||||
Dma.SDIO_TX.1.Priority=DMA_PRIORITY_LOW |
||||
Dma.SDIO_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,FIFOThreshold,MemBurst,PeriphBurst |
||||
Dma.USART1_RX.2.Direction=DMA_PERIPH_TO_MEMORY |
||||
Dma.USART1_RX.2.FIFOMode=DMA_FIFOMODE_DISABLE |
||||
Dma.USART1_RX.2.Instance=DMA2_Stream2 |
||||
Dma.USART1_RX.2.MemDataAlignment=DMA_MDATAALIGN_BYTE |
||||
Dma.USART1_RX.2.MemInc=DMA_MINC_ENABLE |
||||
Dma.USART1_RX.2.Mode=DMA_NORMAL |
||||
Dma.USART1_RX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE |
||||
Dma.USART1_RX.2.PeriphInc=DMA_PINC_DISABLE |
||||
Dma.USART1_RX.2.Priority=DMA_PRIORITY_LOW |
||||
Dma.USART1_RX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode |
||||
Dma.USART1_TX.3.Direction=DMA_MEMORY_TO_PERIPH |
||||
Dma.USART1_TX.3.FIFOMode=DMA_FIFOMODE_DISABLE |
||||
Dma.USART1_TX.3.Instance=DMA2_Stream7 |
||||
Dma.USART1_TX.3.MemDataAlignment=DMA_MDATAALIGN_BYTE |
||||
Dma.USART1_TX.3.MemInc=DMA_MINC_ENABLE |
||||
Dma.USART1_TX.3.Mode=DMA_NORMAL |
||||
Dma.USART1_TX.3.PeriphDataAlignment=DMA_PDATAALIGN_BYTE |
||||
Dma.USART1_TX.3.PeriphInc=DMA_PINC_DISABLE |
||||
Dma.USART1_TX.3.Priority=DMA_PRIORITY_LOW |
||||
Dma.USART1_TX.3.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode |
||||
Dma.USART2_RX.4.Direction=DMA_PERIPH_TO_MEMORY |
||||
Dma.USART2_RX.4.FIFOMode=DMA_FIFOMODE_DISABLE |
||||
Dma.USART2_RX.4.Instance=DMA1_Stream5 |
||||
Dma.USART2_RX.4.MemDataAlignment=DMA_MDATAALIGN_BYTE |
||||
Dma.USART2_RX.4.MemInc=DMA_MINC_ENABLE |
||||
Dma.USART2_RX.4.Mode=DMA_NORMAL |
||||
Dma.USART2_RX.4.PeriphDataAlignment=DMA_PDATAALIGN_BYTE |
||||
Dma.USART2_RX.4.PeriphInc=DMA_PINC_DISABLE |
||||
Dma.USART2_RX.4.Priority=DMA_PRIORITY_LOW |
||||
Dma.USART2_RX.4.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode |
||||
Dma.USART2_TX.5.Direction=DMA_MEMORY_TO_PERIPH |
||||
Dma.USART2_TX.5.FIFOMode=DMA_FIFOMODE_DISABLE |
||||
Dma.USART2_TX.5.Instance=DMA1_Stream6 |
||||
Dma.USART2_TX.5.MemDataAlignment=DMA_MDATAALIGN_BYTE |
||||
Dma.USART2_TX.5.MemInc=DMA_MINC_ENABLE |
||||
Dma.USART2_TX.5.Mode=DMA_NORMAL |
||||
Dma.USART2_TX.5.PeriphDataAlignment=DMA_PDATAALIGN_BYTE |
||||
Dma.USART2_TX.5.PeriphInc=DMA_PINC_DISABLE |
||||
Dma.USART2_TX.5.Priority=DMA_PRIORITY_LOW |
||||
Dma.USART2_TX.5.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode |
||||
Dma.USART3_RX.6.Direction=DMA_PERIPH_TO_MEMORY |
||||
Dma.USART3_RX.6.FIFOMode=DMA_FIFOMODE_DISABLE |
||||
Dma.USART3_RX.6.Instance=DMA1_Stream1 |
||||
Dma.USART3_RX.6.MemDataAlignment=DMA_MDATAALIGN_BYTE |
||||
Dma.USART3_RX.6.MemInc=DMA_MINC_ENABLE |
||||
Dma.USART3_RX.6.Mode=DMA_NORMAL |
||||
Dma.USART3_RX.6.PeriphDataAlignment=DMA_PDATAALIGN_BYTE |
||||
Dma.USART3_RX.6.PeriphInc=DMA_PINC_DISABLE |
||||
Dma.USART3_RX.6.Priority=DMA_PRIORITY_LOW |
||||
Dma.USART3_RX.6.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode |
||||
Dma.USART3_TX.7.Direction=DMA_MEMORY_TO_PERIPH |
||||
Dma.USART3_TX.7.FIFOMode=DMA_FIFOMODE_DISABLE |
||||
Dma.USART3_TX.7.Instance=DMA1_Stream3 |
||||
Dma.USART3_TX.7.MemDataAlignment=DMA_MDATAALIGN_BYTE |
||||
Dma.USART3_TX.7.MemInc=DMA_MINC_ENABLE |
||||
Dma.USART3_TX.7.Mode=DMA_NORMAL |
||||
Dma.USART3_TX.7.PeriphDataAlignment=DMA_PDATAALIGN_BYTE |
||||
Dma.USART3_TX.7.PeriphInc=DMA_PINC_DISABLE |
||||
Dma.USART3_TX.7.Priority=DMA_PRIORITY_LOW |
||||
Dma.USART3_TX.7.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode |
||||
FATFS.BSP.number=1 |
||||
FATFS.IPParameters=_CODE_PAGE,_USE_LFN,_MAX_SS |
||||
FATFS._CODE_PAGE=936 |
||||
FATFS._MAX_SS=4096 |
||||
FATFS._USE_LFN=2 |
||||
FATFS0.BSP.STBoard=false |
||||
FATFS0.BSP.api=Unknown |
||||
FATFS0.BSP.component= |
||||
FATFS0.BSP.condition= |
||||
FATFS0.BSP.instance=PA15 |
||||
FATFS0.BSP.ip=GPIO |
||||
FATFS0.BSP.mode=Input |
||||
FATFS0.BSP.name=Detect_SDIO |
||||
FATFS0.BSP.semaphore= |
||||
FATFS0.BSP.solution=PA15 |
||||
FREERTOS.FootprintOK=true |
||||
FREERTOS.IPParameters=Tasks01,FootprintOK |
||||
FREERTOS.Tasks01=defaultTask,24,1024,StartDefaultTask,As weak,NULL,Dynamic,NULL,NULL |
||||
File.Version=6 |
||||
GPIO.groupedBy=Group By Peripherals |
||||
KeepUserPlacement=false |
||||
Mcu.CPN=STM32F407ZGT6 |
||||
Mcu.Family=STM32F4 |
||||
Mcu.IP0=CRC |
||||
Mcu.IP1=DMA |
||||
Mcu.IP10=TIM7 |
||||
Mcu.IP11=UART4 |
||||
Mcu.IP12=USART1 |
||||
Mcu.IP13=USART2 |
||||
Mcu.IP14=USART3 |
||||
Mcu.IP15=USART6 |
||||
Mcu.IP16=USB_OTG_FS |
||||
Mcu.IP17=USB_OTG_HS |
||||
Mcu.IP2=FATFS |
||||
Mcu.IP3=FREERTOS |
||||
Mcu.IP4=I2C1 |
||||
Mcu.IP5=NVIC |
||||
Mcu.IP6=RCC |
||||
Mcu.IP7=SDIO |
||||
Mcu.IP8=SYS |
||||
Mcu.IP9=TIM2 |
||||
Mcu.IPNb=18 |
||||
Mcu.Name=STM32F407Z(E-G)Tx |
||||
Mcu.Package=LQFP144 |
||||
Mcu.Pin0=PE4 |
||||
Mcu.Pin1=PE5 |
||||
Mcu.Pin10=PA4 |
||||
Mcu.Pin11=PC4 |
||||
Mcu.Pin12=PC5 |
||||
Mcu.Pin13=PE12 |
||||
Mcu.Pin14=PE13 |
||||
Mcu.Pin15=PE14 |
||||
Mcu.Pin16=PE15 |
||||
Mcu.Pin17=PB10 |
||||
Mcu.Pin18=PB11 |
||||
Mcu.Pin19=PB14 |
||||
Mcu.Pin2=PE6 |
||||
Mcu.Pin20=PB15 |
||||
Mcu.Pin21=PG4 |
||||
Mcu.Pin22=PG5 |
||||
Mcu.Pin23=PC6 |
||||
Mcu.Pin24=PC7 |
||||
Mcu.Pin25=PC8 |
||||
Mcu.Pin26=PC9 |
||||
Mcu.Pin27=PA9 |
||||
Mcu.Pin28=PA10 |
||||
Mcu.Pin29=PA11 |
||||
Mcu.Pin3=PF0 |
||||
Mcu.Pin30=PA12 |
||||
Mcu.Pin31=PA13 |
||||
Mcu.Pin32=PA14 |
||||
Mcu.Pin33=PA15 |
||||
Mcu.Pin34=PC10 |
||||
Mcu.Pin35=PC11 |
||||
Mcu.Pin36=PC12 |
||||
Mcu.Pin37=PD2 |
||||
Mcu.Pin38=PB4 |
||||
Mcu.Pin39=PB5 |
||||
Mcu.Pin4=PH0-OSC_IN |
||||
Mcu.Pin40=PB6 |
||||
Mcu.Pin41=PB7 |
||||
Mcu.Pin42=PE0 |
||||
Mcu.Pin43=PE1 |
||||
Mcu.Pin44=VP_CRC_VS_CRC |
||||
Mcu.Pin45=VP_FATFS_VS_SDIO |
||||
Mcu.Pin46=VP_FREERTOS_VS_CMSIS_V2 |
||||
Mcu.Pin47=VP_SYS_VS_tim6 |
||||
Mcu.Pin48=VP_TIM2_VS_ClockSourceINT |
||||
Mcu.Pin49=VP_TIM7_VS_ClockSourceINT |
||||
Mcu.Pin5=PH1-OSC_OUT |
||||
Mcu.Pin6=PA0-WKUP |
||||
Mcu.Pin7=PA1 |
||||
Mcu.Pin8=PA2 |
||||
Mcu.Pin9=PA3 |
||||
Mcu.PinsNb=50 |
||||
Mcu.ThirdPartyNb=0 |
||||
Mcu.UserConstants= |
||||
Mcu.UserName=STM32F407ZGTx |
||||
MxCube.Version=6.9.2 |
||||
MxDb.Version=DB.6.0.92 |
||||
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false |
||||
NVIC.DMA1_Stream1_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true |
||||
NVIC.DMA1_Stream3_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true |
||||
NVIC.DMA1_Stream5_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true |
||||
NVIC.DMA1_Stream6_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true |
||||
NVIC.DMA2_Stream2_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true |
||||
NVIC.DMA2_Stream3_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true |
||||
NVIC.DMA2_Stream6_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true |
||||
NVIC.DMA2_Stream7_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true |
||||
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false |
||||
NVIC.ForceEnableDMAVector=true |
||||
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false |
||||
NVIC.I2C1_ER_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true |
||||
NVIC.I2C1_EV_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true |
||||
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false |
||||
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false |
||||
NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false\:false |
||||
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 |
||||
NVIC.SDIO_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true |
||||
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:false\:false\:false |
||||
NVIC.SavedPendsvIrqHandlerGenerated=true |
||||
NVIC.SavedSvcallIrqHandlerGenerated=true |
||||
NVIC.SavedSystickIrqHandlerGenerated=true |
||||
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:true\:false |
||||
NVIC.TIM2_IRQn=true\:5\:0\:false\:false\:false\:false\:true\:true\:true |
||||
NVIC.TIM6_DAC_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true\:true |
||||
NVIC.TIM7_IRQn=true\:5\:0\:false\:false\:false\:true\:true\:true\:true |
||||
NVIC.TimeBase=TIM6_DAC_IRQn |
||||
NVIC.TimeBaseIP=TIM6 |
||||
NVIC.UART4_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true |
||||
NVIC.USART1_IRQn=true\:5\:0\:false\:false\:false\:true\:true\:true\:true |
||||
NVIC.USART2_IRQn=true\:5\:0\:false\:false\:false\:true\:true\:true\:true |
||||
NVIC.USART3_IRQn=true\:5\:0\:false\:false\:false\:true\:true\:true\:true |
||||
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false |
||||
PA0-WKUP.Mode=Asynchronous |
||||
PA0-WKUP.Signal=UART4_TX |
||||
PA1.Mode=Asynchronous |
||||
PA1.Signal=UART4_RX |
||||
PA10.Mode=Asynchronous |
||||
PA10.Signal=USART1_RX |
||||
PA11.Mode=Device_Only |
||||
PA11.Signal=USB_OTG_FS_DM |
||||
PA12.Mode=Device_Only |
||||
PA12.Signal=USB_OTG_FS_DP |
||||
PA13.Mode=Serial_Wire |
||||
PA13.Signal=SYS_JTMS-SWDIO |
||||
PA14.Mode=Serial_Wire |
||||
PA14.Signal=SYS_JTCK-SWCLK |
||||
PA15.GPIOParameters=GPIO_Label |
||||
PA15.GPIO_Label=CDZ |
||||
PA15.Locked=true |
||||
PA15.Signal=GPIO_Input |
||||
PA2.Mode=Asynchronous |
||||
PA2.Signal=USART2_TX |
||||
PA3.Mode=Asynchronous |
||||
PA3.Signal=USART2_RX |
||||
PA4.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label |
||||
PA4.GPIO_Label=UART_EN |
||||
PA4.GPIO_PuPd=GPIO_PULLDOWN |
||||
PA4.Locked=true |
||||
PA4.PinState=GPIO_PIN_RESET |
||||
PA4.Signal=GPIO_Output |
||||
PA9.Mode=Asynchronous |
||||
PA9.Signal=USART1_TX |
||||
PB10.Mode=Asynchronous |
||||
PB10.Signal=USART3_TX |
||||
PB11.Mode=Asynchronous |
||||
PB11.Signal=USART3_RX |
||||
PB14.Mode=Device_Only_FS |
||||
PB14.Signal=USB_OTG_HS_DM |
||||
PB15.Mode=Device_Only_FS |
||||
PB15.Signal=USB_OTG_HS_DP |
||||
PB4.GPIOParameters=GPIO_Label |
||||
PB4.GPIO_Label=ADDR |
||||
PB4.Locked=true |
||||
PB4.Signal=GPIO_Input |
||||
PB5.GPIOParameters=GPIO_Label |
||||
PB5.GPIO_Label=RDY |
||||
PB5.Locked=true |
||||
PB5.Signal=GPIO_Input |
||||
PB6.GPIOParameters=GPIO_Pu |
||||
PB6.GPIO_Pu=GPIO_PULLUP |
||||
PB6.Locked=true |
||||
PB6.Mode=I2C |
||||
PB6.Signal=I2C1_SCL |
||||
PB7.GPIOParameters=GPIO_Pu |
||||
PB7.GPIO_Pu=GPIO_PULLUP |
||||
PB7.Locked=true |
||||
PB7.Mode=I2C |
||||
PB7.Signal=I2C1_SDA |
||||
PC10.Mode=SD_4_bits_Wide_bus |
||||
PC10.Signal=SDIO_D2 |
||||
PC11.Mode=SD_4_bits_Wide_bus |
||||
PC11.Signal=SDIO_D3 |
||||
PC12.Mode=SD_4_bits_Wide_bus |
||||
PC12.Signal=SDIO_CK |
||||
PC4.GPIOParameters=GPIO_Label |
||||
PC4.GPIO_Label=SENSOR4_EN |
||||
PC4.Locked=true |
||||
PC4.Signal=GPIO_Output |
||||
PC5.GPIOParameters=GPIO_Label |
||||
PC5.GPIO_Label=SENSOR2_EN |
||||
PC5.Locked=true |
||||
PC5.Signal=GPIO_Output |
||||
PC6.Locked=true |
||||
PC6.Mode=Asynchronous |
||||
PC6.Signal=USART6_TX |
||||
PC7.Locked=true |
||||
PC7.Mode=Asynchronous |
||||
PC7.Signal=USART6_RX |
||||
PC8.Mode=SD_4_bits_Wide_bus |
||||
PC8.Signal=SDIO_D0 |
||||
PC9.Mode=SD_4_bits_Wide_bus |
||||
PC9.Signal=SDIO_D1 |
||||
PD2.Mode=SD_4_bits_Wide_bus |
||||
PD2.Signal=SDIO_CMD |
||||
PE0.GPIOParameters=PinState,GPIO_Label |
||||
PE0.GPIO_Label=LED0 |
||||
PE0.Locked=true |
||||
PE0.PinState=GPIO_PIN_SET |
||||
PE0.Signal=GPIO_Output |
||||
PE1.GPIOParameters=PinState,GPIO_Label |
||||
PE1.GPIO_Label=LED1 |
||||
PE1.Locked=true |
||||
PE1.PinState=GPIO_PIN_SET |
||||
PE1.Signal=GPIO_Output |
||||
PE12.GPIOParameters=GPIO_Label |
||||
PE12.GPIO_Label=SENSOR3_EN |
||||
PE12.Locked=true |
||||
PE12.Signal=GPIO_Output |
||||
PE13.GPIOParameters=GPIO_Label |
||||
PE13.GPIO_Label=DE485 |
||||
PE13.Locked=true |
||||
PE13.Signal=GPIO_Output |
||||
PE14.GPIOParameters=GPIO_Label |
||||
PE14.GPIO_Label=HDPLX |
||||
PE14.Locked=true |
||||
PE14.Signal=GPIO_Output |
||||
PE15.GPIOParameters=GPIO_Label |
||||
PE15.GPIO_Label=SEL_232/485 |
||||
PE15.Locked=true |
||||
PE15.Signal=GPIO_Output |
||||
PE4.GPIOParameters=GPIO_Label |
||||
PE4.GPIO_Label=EN_1302 |
||||
PE4.Locked=true |
||||
PE4.Signal=GPIO_Output |
||||
PE5.GPIOParameters=GPIO_Label,GPIO_ModeDefaultOutputPP |
||||
PE5.GPIO_Label=DA_1302 |
||||
PE5.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD |
||||
PE5.Locked=true |
||||
PE5.Signal=GPIO_Output |
||||
PE6.GPIOParameters=GPIO_Label |
||||
PE6.GPIO_Label=SCLK_1302 |
||||
PE6.Locked=true |
||||
PE6.Signal=GPIO_Output |
||||
PF0.GPIOParameters=GPIO_Label |
||||
PF0.GPIO_Label=PUMP_EN |
||||
PF0.Locked=true |
||||
PF0.Signal=GPIO_Output |
||||
PG4.GPIOParameters=GPIO_Label |
||||
PG4.GPIO_Label=SENSOR6_EN |
||||
PG4.Locked=true |
||||
PG4.Signal=GPIO_Output |
||||
PG5.GPIOParameters=GPIO_Label |
||||
PG5.GPIO_Label=R_W |
||||
PG5.Locked=true |
||||
PG5.Signal=GPIO_Analog |
||||
PH0-OSC_IN.Mode=HSE-External-Oscillator |
||||
PH0-OSC_IN.Signal=RCC_OSC_IN |
||||
PH1-OSC_OUT.Mode=HSE-External-Oscillator |
||||
PH1-OSC_OUT.Signal=RCC_OSC_OUT |
||||
PinOutPanel.RotationAngle=0 |
||||
ProjectManager.AskForMigrate=true |
||||
ProjectManager.BackupPrevious=false |
||||
ProjectManager.CompilerOptimize=6 |
||||
ProjectManager.ComputerToolchain=false |
||||
ProjectManager.CoupleFile=true |
||||
ProjectManager.CustomerFirmwarePackage= |
||||
ProjectManager.DefaultFWLocation=true |
||||
ProjectManager.DeletePrevious=true |
||||
ProjectManager.DeviceId=STM32F407ZGTx |
||||
ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.27.1 |
||||
ProjectManager.FreePins=false |
||||
ProjectManager.HalAssertFull=false |
||||
ProjectManager.HeapSize=0x800 |
||||
ProjectManager.KeepUserCode=true |
||||
ProjectManager.LastFirmware=true |
||||
ProjectManager.LibraryCopy=0 |
||||
ProjectManager.MainLocation=Core/Src |
||||
ProjectManager.NoMain=false |
||||
ProjectManager.PreviousToolchain= |
||||
ProjectManager.ProjectBuild=false |
||||
ProjectManager.ProjectFileName=407ZGT6_UnderWater.ioc |
||||
ProjectManager.ProjectName=407ZGT6_UnderWater |
||||
ProjectManager.ProjectStructure= |
||||
ProjectManager.RegisterCallBack= |
||||
ProjectManager.StackSize=0x1000 |
||||
ProjectManager.TargetToolchain=Makefile |
||||
ProjectManager.ToolChainLocation= |
||||
ProjectManager.UAScriptAfterPath= |
||||
ProjectManager.UAScriptBeforePath= |
||||
ProjectManager.UnderRoot=false |
||||
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_I2C1_Init-I2C1-false-HAL-true,5-MX_SDIO_SD_Init-SDIO-false-HAL-true,6-MX_UART4_Init-UART4-false-HAL-true,7-MX_USART1_UART_Init-USART1-false-HAL-true,8-MX_USART2_UART_Init-USART2-false-HAL-true,9-MX_USART3_UART_Init-USART3-false-HAL-true,10-MX_USART6_UART_Init-USART6-false-HAL-true,11-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true,12-MX_USB_OTG_HS_PCD_Init-USB_OTG_HS-false-HAL-true,13-MX_TIM2_Init-TIM2-false-HAL-true,14-MX_TIM7_Init-TIM7-false-HAL-true,15-MX_FATFS_Init-FATFS-false-HAL-false,16-MX_CRC_Init-CRC-false-HAL-true |
||||
RCC.48MHZClocksFreq_Value=48000000 |
||||
RCC.AHBFreq_Value=168000000 |
||||
RCC.APB1CLKDivider=RCC_HCLK_DIV4 |
||||
RCC.APB1Freq_Value=42000000 |
||||
RCC.APB1TimFreq_Value=84000000 |
||||
RCC.APB2CLKDivider=RCC_HCLK_DIV2 |
||||
RCC.APB2Freq_Value=84000000 |
||||
RCC.APB2TimFreq_Value=168000000 |
||||
RCC.CortexFreq_Value=168000000 |
||||
RCC.EthernetFreq_Value=168000000 |
||||
RCC.FCLKCortexFreq_Value=168000000 |
||||
RCC.FamilyName=M |
||||
RCC.HCLKFreq_Value=168000000 |
||||
RCC.HSE_VALUE=8000000 |
||||
RCC.HSI_VALUE=16000000 |
||||
RCC.I2SClocksFreq_Value=192000000 |
||||
RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSE_VALUE,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLQ,PLLQCLKFreq_Value,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S |
||||
RCC.LSE_VALUE=32768 |
||||
RCC.LSI_VALUE=32000 |
||||
RCC.MCO2PinFreq_Value=168000000 |
||||
RCC.PLLCLKFreq_Value=168000000 |
||||
RCC.PLLM=4 |
||||
RCC.PLLN=168 |
||||
RCC.PLLQ=7 |
||||
RCC.PLLQCLKFreq_Value=48000000 |
||||
RCC.RTCFreq_Value=32000 |
||||
RCC.RTCHSEDivFreq_Value=4000000 |
||||
RCC.SYSCLKFreq_VALUE=168000000 |
||||
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK |
||||
RCC.VCOI2SOutputFreq_Value=384000000 |
||||
RCC.VCOInputFreq_Value=2000000 |
||||
RCC.VCOOutputFreq_Value=336000000 |
||||
RCC.VcooutputI2S=192000000 |
||||
UART4.IPParameters=VirtualMode |
||||
UART4.VirtualMode=Asynchronous |
||||
USART1.IPParameters=VirtualMode |
||||
USART1.VirtualMode=VM_ASYNC |
||||
USART2.IPParameters=VirtualMode |
||||
USART2.VirtualMode=VM_ASYNC |
||||
USART3.IPParameters=VirtualMode |
||||
USART3.VirtualMode=VM_ASYNC |
||||
USART6.BaudRate=19200 |
||||
USART6.IPParameters=VirtualMode,BaudRate |
||||
USART6.VirtualMode=VM_ASYNC |
||||
USB_OTG_FS.IPParameters=VirtualMode |
||||
USB_OTG_FS.VirtualMode=Device_Only |
||||
USB_OTG_HS.IPParameters=VirtualMode-Device_Only_FS |
||||
USB_OTG_HS.VirtualMode-Device_Only_FS=Device_Only_FS |
||||
VP_CRC_VS_CRC.Mode=CRC_Activate |
||||
VP_CRC_VS_CRC.Signal=CRC_VS_CRC |
||||
VP_FATFS_VS_SDIO.Mode=SDIO |
||||
VP_FATFS_VS_SDIO.Signal=FATFS_VS_SDIO |
||||
VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2 |
||||
VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2 |
||||
VP_SYS_VS_tim6.Mode=TIM6 |
||||
VP_SYS_VS_tim6.Signal=SYS_VS_tim6 |
||||
VP_TIM2_VS_ClockSourceINT.Mode=Internal |
||||
VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT |
||||
VP_TIM7_VS_ClockSourceINT.Mode=Enable_Timer |
||||
VP_TIM7_VS_ClockSourceINT.Signal=TIM7_VS_ClockSourceINT |
||||
board=custom |
||||
rtos.0.ip=FREERTOS |
@ -0,0 +1,169 @@ |
||||
|
||||
#include "main.h" |
||||
#include "cmsis_os.h" |
||||
#include "elog.h" |
||||
|
||||
#if 1 |
||||
|
||||
extern void get_h2s_3(float *concentration, double voltage, double t); |
||||
extern void get_h2s_2(double *concentration, double voltage, double t); |
||||
extern void usart6_receive_enable(); |
||||
extern void usart6_send_enable(); |
||||
extern void max3243_enable(); |
||||
extern void max3160_232_FULL_mode(); |
||||
extern void max3160_485_send_mode(); |
||||
extern void max3160_485_receive_mode(); |
||||
extern void uart2_power_enable(); |
||||
extern void uart3_power_enable(); |
||||
extern void uart4_power_enable(); |
||||
extern void uart6_power_enable(); |
||||
|
||||
//gpio status
|
||||
extern void max485_GPIO_Status(); |
||||
extern void max3160_GPIO_Status(); |
||||
|
||||
|
||||
void usart6_receive_enable() |
||||
{ |
||||
/*GPIO默认低电平*/
|
||||
HAL_GPIO_WritePin(R_W_GPIO_Port,R_W_Pin, RESET); |
||||
}
|
||||
|
||||
|
||||
void usart6_send_enable() |
||||
{ |
||||
HAL_GPIO_WritePin(R_W_GPIO_Port,R_W_Pin, SET); |
||||
}
|
||||
|
||||
void max485_GPIO_Status() |
||||
{ |
||||
/*232_485选择 -拉高 , DPLX 拉低 全双, DE 拉高接收 默认高电平 */ |
||||
log_i(" max485 gpio de -> %d", |
||||
HAL_GPIO_ReadPin(R_W_GPIO_Port,R_W_Pin ) ); |
||||
} |
||||
|
||||
void max3243_enable() |
||||
{ |
||||
/* 使能 3243 工作, 系统默认低电平, 启动开启工作*/ |
||||
HAL_GPIO_WritePin(MAX3243_EN_GPIO_Port,MAX3243_EN_Pin, SET); |
||||
// HAL_GPIO_WritePin(UART_EN_GPIO_Port,UART_EN_Pin, SET);
|
||||
}
|
||||
|
||||
|
||||
void max3160_232_FULL_mode() |
||||
{ |
||||
/*232_485选择 : 232-拉低 , DPLX 拉低 全双*/ |
||||
HAL_GPIO_WritePin(SEL_232_485_GPIO_Port,SEL_232_485_Pin, RESET); |
||||
HAL_GPIO_WritePin(HDPLX_GPIO_Port,HDPLX_Pin, RESET); |
||||
}
|
||||
|
||||
void max3160_485_send_mode() |
||||
{ |
||||
/*232_485选择: 485-拉高 , DPLX 拉高 半双 , DE 拉低使能发送 */ |
||||
HAL_GPIO_WritePin(SEL_232_485_GPIO_Port,SEL_232_485_Pin, SET); |
||||
HAL_GPIO_WritePin(HDPLX_GPIO_Port,HDPLX_Pin, RESET); |
||||
HAL_GPIO_WritePin(DE485_GPIO_Port, DE485_Pin, SET); |
||||
}
|
||||
|
||||
void max3160_485_receive_mode() |
||||
{ |
||||
/*232_485选择 -拉高 , DPLX 拉低 全双, DE 拉高接收 默认高电平 */ |
||||
HAL_GPIO_WritePin(SEL_232_485_GPIO_Port,SEL_232_485_Pin, SET); |
||||
HAL_GPIO_WritePin(HDPLX_GPIO_Port,HDPLX_Pin, SET); |
||||
HAL_GPIO_WritePin(DE485_GPIO_Port, DE485_Pin, RESET); |
||||
}
|
||||
|
||||
void max3160_GPIO_Status() |
||||
{ |
||||
/*232_485选择 -拉高 , DPLX 拉低 全双, DE 拉高接收 默认高电平 */ |
||||
log_i(" max3160 gpio status >> sel -> %d hdplx -> %d de -> %d", |
||||
HAL_GPIO_ReadPin(SEL_232_485_GPIO_Port,SEL_232_485_Pin ), |
||||
HAL_GPIO_ReadPin(HDPLX_GPIO_Port,HDPLX_Pin ), |
||||
HAL_GPIO_ReadPin(DE485_GPIO_Port, DE485_Pin ) |
||||
); |
||||
}
|
||||
|
||||
void uart2_power_enable() |
||||
{ |
||||
HAL_GPIO_WritePin(SENSOR2_EN_GPIO_Port,SENSOR2_EN_Pin, SET); |
||||
}
|
||||
|
||||
void uart3_power_enable() |
||||
{ |
||||
HAL_GPIO_WritePin(SENSOR3_EN_GPIO_Port,SENSOR3_EN_Pin, SET); |
||||
}
|
||||
|
||||
void uart4_power_enable() |
||||
{ |
||||
HAL_GPIO_WritePin(SENSOR4_EN_GPIO_Port,SENSOR4_EN_Pin, SET); |
||||
}
|
||||
|
||||
void uart6_power_enable() |
||||
{ |
||||
HAL_GPIO_WritePin(SENSOR6_EN_GPIO_Port,SENSOR6_EN_Pin, SET); |
||||
}
|
||||
|
||||
|
||||
double get_h2s(double voltage, double t) |
||||
{ |
||||
/*
|
||||
H2S_con = a20 *voltage *ET |
||||
Et = a3*T^3 + a2*T^2 + a1*T + a0 温度补偿因子 |
||||
Sulphide_con = H2S_con * G |
||||
a20: 20度时 电压值 0.007939553 20度时得斜率 |
||||
voltage 毫伏 |
||||
*/ |
||||
double a0 = 3.149951E+00; |
||||
double a1 = -1.768957E-01; |
||||
double a2 = 3.656828E-03; |
||||
double a3 = -1.176627E-05; |
||||
|
||||
double a20 = 7.939553E-03; |
||||
double Ug = 7.0E+00; |
||||
|
||||
return ( voltage - Ug) * a20 *( a3*t*t*t+ a2*t*t + a1*t + a0 ); |
||||
|
||||
} |
||||
|
||||
void get_h2s_2(double *concentration, double voltage, double t) |
||||
{ |
||||
/*
|
||||
H2S_con = a20 *voltage *ET |
||||
Et = a3*T^3 + a2*T^2 + a1*T + a0 温度补偿因子 |
||||
Sulphide_con = H2S_con * G |
||||
a20: 20度时 电压值 0.007939553 20度时得斜率 |
||||
voltage 毫伏 |
||||
*/ |
||||
double a0 = 3.149951E+00; |
||||
double a1 = -1.768957E-01; |
||||
double a2 = 3.656828E-03; |
||||
double a3 = -1.176627E-05; |
||||
|
||||
double a20 = 7.939553E-03; |
||||
double Ug = 7.0E+00; |
||||
|
||||
*concentration = ( voltage - Ug) * a20 *( a3*t*t*t+ a2*t*t + a1*t + a0 ); |
||||
} |
||||
|
||||
|
||||
void get_h2s_3(float *concentration, double voltage, double t) |
||||
{ |
||||
/*
|
||||
H2S_con = a20 *voltage *ET |
||||
Et = a3*T^3 + a2*T^2 + a1*T + a0 温度补偿因子 |
||||
Sulphide_con = H2S_con * G |
||||
a20: 20度时 电压值 0.007939553 20度时得斜率 |
||||
voltage 毫伏 |
||||
*/ |
||||
double a0 = 3.149951E+00; |
||||
double a1 = -1.768957E-01; |
||||
double a2 = 3.656828E-03; |
||||
double a3 = -1.176627E-05; |
||||
|
||||
double a20 = 7.939553E-03; |
||||
double Ug = 7.0E+00; |
||||
|
||||
*concentration = ( voltage - Ug) * a20 *( a3*t*t*t+ a2*t*t + a1*t + a0 ); |
||||
} |
||||
|
||||
#endif |
@ -0,0 +1,530 @@ |
||||
// i2c_ads1115.c
|
||||
#include "bsp_i2c_ads1115.h" |
||||
#include "stdlib.h" |
||||
#include "stdio.h" |
||||
#include "elog.h" |
||||
|
||||
/*
|
||||
多路测量的话, 需要配置不同的 config_H config_L |
||||
*/ |
||||
|
||||
static I2C_HandleTypeDef *pADS1115_I2C = &hi2c1; |
||||
|
||||
osThreadId_t ads1115TaskHandle; |
||||
const osThreadAttr_t ads1115Task_attributes = { |
||||
.name = "ads1115Task", |
||||
.stack_size = 256 * 4, |
||||
.priority = (osPriority_t) osPriorityNormal, |
||||
}; |
||||
|
||||
osEventFlagsId_t ads1115EventHandle; |
||||
const osEventFlagsAttr_t ads1115Event_attributes = { |
||||
.name = "ads1115Event" |
||||
}; |
||||
|
||||
uint16_t resultbuf[1] = {0}; |
||||
double result_double = 0; |
||||
|
||||
// ads1115EventHandle = osEventFlagsNew (&ads1115Event_attributes);
|
||||
// typedef enum
|
||||
// {
|
||||
// EV_READY, /*!< Startup finished. */
|
||||
// EV_FRAME_RECEIVED, /*!< Frame received. */
|
||||
// EV_EXECUTE, /*!< Execute function. */
|
||||
// EV_FRAME_SENT /*!< Frame sent. */
|
||||
// } eMBEventType;
|
||||
// osEventFlagsSet(modbusEventHandle,eEvent);
|
||||
// osEventFlagsClear (osEventFlagsId_t ef_id, uint32_t flags)
|
||||
// recvedEvent = osEventFlagsWait (modbusEventHandle,
|
||||
// EV_READY | EV_FRAME_RECEIVED | EV_EXECUTE |
|
||||
// EV_FRAME_SENT, /* 接收任务感兴趣的事件 */
|
||||
// 0,
|
||||
// portMAX_DELAY); /* 指定超时事件,无限等待 */
|
||||
|
||||
ADS1115_TypeDef my_ads1115 = |
||||
{ |
||||
ads1115_init, |
||||
ads1115_port, |
||||
ads1115_get_data_start, |
||||
NULL, |
||||
ADS1115_REG_CONFIG_OS_START, |
||||
ADS1115_REG_CONFIG_MUX_SINGLE_0, |
||||
ADS1115_REG_CONFIG_PGA_4, |
||||
ADS1115_REG_CONFIG_MODE_SINGLE, |
||||
ADS1115_REG_CONFIG_DR_128, |
||||
ADS1115_REG_CONFIG_COMP_MODE_TRADITIONAL, |
||||
ADS1115_REG_CONFIG_COMP_POL_LOW, |
||||
ADS1115_REG_CONFIG_COMP_LAT_NONLATCH, |
||||
ADS1115_REG_CONFIG_COMP_QUE_DIS, |
||||
0, |
||||
0, |
||||
0, |
||||
{ 0, 0, 0 }, |
||||
ADS1115_OUTPUT_UNIT_mv, // 默认输出毫伏
|
||||
0, |
||||
0.0, |
||||
ADS1115_WORK_STATE_WAITING, |
||||
}; |
||||
|
||||
void ads1115_task(void) |
||||
{ |
||||
uint8_t rx_data[2] = {0}; |
||||
uint32_t event_flags = 0; |
||||
int st; |
||||
|
||||
for ( ; ; ) |
||||
{
|
||||
switch (my_ads1115.state) |
||||
{ |
||||
case ADS1115_WORK_STATE_WAITING: |
||||
// log_e( " ADS1115 waiting ********** " );
|
||||
osDelay(20); |
||||
break; |
||||
case ADS1115_WORK_STATE_START: |
||||
break;
|
||||
|
||||
case ADS1115_WORK_STATE_INIT: |
||||
log_e( " ADS1115 init ********** %d" ,pADS1115_I2C->State ); |
||||
|
||||
my_ads1115.config_H = my_ads1115.config_os|my_ads1115.config_mux |
||||
|my_ads1115.config_PGA|my_ads1115.config_MODE; |
||||
my_ads1115.config_L = my_ads1115.config_DR|my_ads1115.config_COMP_MODE|my_ads1115.config_COMP_POL |
||||
|my_ads1115.config_COMP_LAT|my_ads1115.config_COMP_QUE ; |
||||
|
||||
my_ads1115.reg_data[0] = 0x01; // point addr 8bit 配置寄存器
|
||||
my_ads1115.reg_data[1] = my_ads1115.config_H; // config_reg 高位
|
||||
my_ads1115.reg_data[2] = my_ads1115.config_L; // config_reg 低位
|
||||
|
||||
// while( HAL_I2C_Master_Transmit(pADS1115_I2C, ADS1115_WRITE_ADDRESS, my_ads1115.reg_data, 3 ,1000)!= HAL_OK)
|
||||
// {
|
||||
// if (HAL_I2C_GetError(pADS1115_I2C) != HAL_I2C_ERROR_AF)
|
||||
// {
|
||||
// log_w("ads1115 0x01 Reg error!!!\r\n");
|
||||
// }
|
||||
// }
|
||||
st = HAL_I2C_Master_Transmit(pADS1115_I2C, ADS1115_WRITE_ADDRESS, my_ads1115.reg_data, 3 ,1000); |
||||
// st = HAL_I2C_Master_Transmit_IT(pADS1115_I2C, ADS1115_WRITE_ADDRESS, my_ads1115.reg_data, 3 );
|
||||
|
||||
if ( st != HAL_OK) |
||||
{ |
||||
log_w( " ADS1115 init ********** trans error " ); |
||||
my_ads1115.state = ADS1115_WORK_STATE_ERROR;; |
||||
break; |
||||
}
|
||||
my_ads1115.state =ADS1115_WORK_STATE_GET_DATA_READY; |
||||
|
||||
// event_flags = osEventFlagsWait ( ads1115EventHandle, ADS1115_Event_INIT, 0 , portMAX_DELAY );
|
||||
// if (event_flags && ADS1115_Event_INIT)
|
||||
// {
|
||||
// my_ads1115.state =ADS1115_WORK_STATE_READY_GET_DATA;
|
||||
// }
|
||||
|
||||
continue;
|
||||
case ADS1115_WORK_STATE_GET_DATA_READY: |
||||
// log_w( " ADS1115 Ready ********** %d" ,pADS1115_I2C->State );
|
||||
|
||||
osDelay(20); |
||||
break;
|
||||
case ADS1115_WORK_STATE_GET_DATA_START: |
||||
log_w( " ADS1115 GET_DATA_START ********** %d" ,pADS1115_I2C->State );
|
||||
my_ads1115.result_int16 = 0; |
||||
my_ads1115.voltage_mv = 0.0; |
||||
while( HAL_I2C_Master_Transmit(pADS1115_I2C, ADS1115_WRITE_ADDRESS, my_ads1115.reg_data, 3 ,1000)!= HAL_OK) |
||||
{ |
||||
if (HAL_I2C_GetError(pADS1115_I2C) != HAL_I2C_ERROR_AF) |
||||
{ |
||||
log_w("ads1115 01 Register error!!!\r\n"); |
||||
} |
||||
} |
||||
my_ads1115.state = ADS1115_WORK_STATE_GET_DATA_Convert_Register; |
||||
continue; |
||||
case ADS1115_WORK_STATE_GET_DATA_Convert_Register: |
||||
log_i( " ADS1115 Ready ********** Convert_Register " ); |
||||
|
||||
while (HAL_I2C_Master_Transmit(pADS1115_I2C, ADS1115_WRITE_ADDRESS, 0x00, 1, 2000) != HAL_OK) |
||||
{ |
||||
if (HAL_I2C_GetError(pADS1115_I2C) != HAL_I2C_ERROR_AF) |
||||
{ |
||||
printf("ads1115 convert Register error!!!\r\n"); |
||||
} |
||||
} |
||||
my_ads1115.state = ADS1115_WORK_STATE_GET_DATA_RCV; |
||||
|
||||
|
||||
// // osEventFlagsClear( ads1115TaskHandle, ADS1115_Event_Get_Data );
|
||||
// st = HAL_I2C_Master_Transmit (pADS1115_I2C, ADS1115_WRITE_ADDRESS, 0x00, 1 ,1000);
|
||||
// if ( st != HAL_OK)
|
||||
// {
|
||||
// log_e( " ADS1115 init ********** Convert_Register error " );
|
||||
// my_ads1115.state = ADS1115_WORK_STATE_ERROR;
|
||||
// break;
|
||||
// }
|
||||
// if ( HAL_I2C_GetError(pADS1115_I2C) != HAL_I2C_ERROR_AF )
|
||||
// {
|
||||
// log_e("ads1115 read data error!!!\r\n");
|
||||
// break;
|
||||
// }
|
||||
// my_ads1115.state =ADS1115_WORK_STATE_GET_DATA_RCV;
|
||||
// if (HAL_I2C_Master_Transmit_IT(pADS1115_I2C, ADS1115_WRITE_ADDRESS, 0x00, 1 ) != HAL_OK) {
|
||||
// my_ads1115.state =ADS1115_WORK_STATE_ERROR;
|
||||
// }
|
||||
// if ( HAL_I2C_GetError(pADS1115_I2C) != HAL_I2C_ERROR_AF )
|
||||
// {
|
||||
// printf("ads1115 convert Register error!!!\r\n");
|
||||
// }
|
||||
|
||||
// event_flags = osEventFlagsWait ( ads1115EventHandle,
|
||||
// ADS1115_Event_Get_Data_Convert_Register, 0 , portMAX_DELAY );
|
||||
// if (event_flags && ADS1115_Event_Get_Data_Convert_Register)
|
||||
// {
|
||||
// my_ads1115.state = ADS1115_WORK_STATE_GET_DATA_RCV;
|
||||
// }
|
||||
|
||||
continue;
|
||||
case ADS1115_WORK_STATE_GET_DATA_RCV: |
||||
log_i( " ADS1115 Ready ********** _DATA_RCV " ); |
||||
|
||||
int16_t data; |
||||
// uint8_t rx_data[2] = {0};
|
||||
memset( rx_data,0,2); |
||||
|
||||
// 读两位
|
||||
// while (HAL_I2C_Master_Receive(pADS1115_I2C, ADS1115_READ_ADDRESS, (uint8_t*)resultbuf, 2, 2000) != HAL_OK)
|
||||
while (HAL_I2C_Master_Receive(pADS1115_I2C, ADS1115_READ_ADDRESS, rx_data, 2, 2000) != HAL_OK) |
||||
{ |
||||
if ( HAL_I2C_GetError(pADS1115_I2C) != HAL_I2C_ERROR_AF ) |
||||
{ |
||||
log_e("ads1115 read data error!!!\r\n"); |
||||
} |
||||
} |
||||
my_ads1115.result_int16 = rx_data[0] * 256 + rx_data[1]; |
||||
|
||||
|
||||
log_w( " readout : %d %02X %02X %04X",my_ads1115.result_int16 , rx_data[0], rx_data[1],*(uint16_t*)rx_data); |
||||
|
||||
my_ads1115.state = ADS1115_WORK_STATE_GET_DATA_FLOAT; |
||||
continue; |
||||
osDelay(80); |
||||
|
||||
// st=HAL_I2C_Master_Receive_IT(pADS1115_I2C, ADS1115_READ_ADDRESS, (uint8_t*)resultbuf, 2 );
|
||||
// if ( st != HAL_OK)
|
||||
// {
|
||||
// log_e( " ADS1115 init ********** _DATA_RCV error " );
|
||||
// my_ads1115.state = ADS1115_WORK_STATE_ERROR;
|
||||
// break;
|
||||
// }
|
||||
// if ( HAL_I2C_GetError(pADS1115_I2C) != HAL_I2C_ERROR_AF )
|
||||
// {
|
||||
// log_e("ads1115 read data error!!!\r\n");
|
||||
// break;
|
||||
// }
|
||||
// my_ads1115.state =ADS1115_WORK_STATE_GET_DATA_OK;
|
||||
// osEventFlagsClear( ads1115TaskHandle, ADS1115_Event_Get_Data_Convert_Register );
|
||||
// if ( HAL_I2C_Master_Receive_IT(pADS1115_I2C, ADS1115_READ_ADDRESS, (uint8_t*)resultbuf, 2 ) != HAL_OK )
|
||||
// {
|
||||
// my_ads1115.state =ADS1115_WORK_STATE_ERROR;
|
||||
// }
|
||||
|
||||
// if ( HAL_I2C_GetError(pADS1115_I2C) != HAL_I2C_ERROR_AF )
|
||||
// {
|
||||
// printf("ads1115 read data error!!!\r\n");
|
||||
// }
|
||||
|
||||
// event_flags = osEventFlagsWait ( ads1115EventHandle,
|
||||
// ADS1115_Event_Get_Data_RCV, 0 , portMAX_DELAY );
|
||||
// if (event_flags && ADS1115_Event_Get_Data_RCV)
|
||||
// {
|
||||
// my_ads1115.state = ADS1115_WORK_STATE_GET_DATA_OK;
|
||||
// }
|
||||
continue; |
||||
case ADS1115_WORK_STATE_GET_DATA_FLOAT: |
||||
log_i( " ADS1115 Ready ********** DATA_FLOAT %d" ,my_ads1115.result_int16 ); |
||||
// osEventFlagsClear( ads1115TaskHandle, ADS1115_Event_Get_Data_RCV );
|
||||
double val; |
||||
if ( (my_ads1115.result_int16 == 0x7FFF) | (my_ads1115.result_int16 == 0X8000)) // 是否超量程了
|
||||
{ |
||||
resultbuf[0] = 0; |
||||
// printf("over PGA\r\n");
|
||||
} |
||||
switch ((0x0E & my_ads1115.config_H) >> 1) // 量程对应的分辨率
|
||||
{ |
||||
case (0x00): |
||||
val = (double)my_ads1115.result_int16 * 187.5 / 1000.0; //
|
||||
break; |
||||
case (0x01): |
||||
val = (double)my_ads1115.result_int16 * 125 / 1000.0; |
||||
break; |
||||
case (0x02): |
||||
val = (double)my_ads1115.result_int16 * 62.5 / 1000.0; |
||||
break; |
||||
case (0x03): |
||||
val = (double)my_ads1115.result_int16 * 31.25 / 1000.0; |
||||
break; |
||||
case (0x04): |
||||
val = (double)my_ads1115.result_int16 * 15.625 / 1000.0; |
||||
break; |
||||
case (0x05): |
||||
val = (double)my_ads1115.result_int16 * 7.8125 / 1000.0; |
||||
break; |
||||
}
|
||||
my_ads1115.voltage_mv = (my_ads1115.unit == ADS1115_OUTPUT_UNIT_mv)?val:(val/1000.0); |
||||
log_i( " f %06f",my_ads1115.voltage_mv); |
||||
my_ads1115.state = ADS1115_WORK_STATE_GET_DATA_OK ; |
||||
break;
|
||||
case ADS1115_WORK_STATE_GET_DATA_OK: |
||||
osDelay(10); |
||||
break; |
||||
case ADS1115_WORK_STATE_ERROR: |
||||
log_w( " ADS1115 error ..... " ); |
||||
// my_ads1115.state = ADS1115_WORK_STATE_WAITING ;
|
||||
osDelay(10); |
||||
break;
|
||||
case ADS1115_WORK_STATE_STOP: |
||||
log_w( " ADS1115 stop..... " ); |
||||
// my_ads1115.state = ADS1115_WORK_STATE_WAITING ;
|
||||
osDelay(10); |
||||
break;
|
||||
default: |
||||
break; |
||||
} |
||||
|
||||
osDelay(200); |
||||
} |
||||
// for (;;)
|
||||
// {
|
||||
// // 启用中断发送,判断状态,
|
||||
// // 地址中断, 确认是哪I2C 设备通讯
|
||||
// /* code */
|
||||
// /* TODO 统一的超时机制 */
|
||||
|
||||
// /* 事件来管理 */
|
||||
// event_flags = osEventFlagsWait (
|
||||
// ads1115EventHandle
|
||||
// , ADS1115_Event_READY|ADS1115_Event_INIT|ADS1115_Event_TRANS_ONLY|ADS1115_Event_DATA_RCV
|
||||
// , 0
|
||||
// , portMAX_DELAY );
|
||||
// if ( event_flags & (ADS1115_Event_READY|ADS1115_Event_INIT)
|
||||
// == (ADS1115_Event_READY|ADS1115_Event_INIT) )
|
||||
// {
|
||||
// // if (HAL_I2C_GetError(&hi2c1)!= HAL_I2C_ERROR_AF)
|
||||
// // {
|
||||
// // Error_Handler();
|
||||
// // }
|
||||
// // if (HAL_I2C_GetState(&hi2c1)!= HAL_I2C_STATE_READY)
|
||||
// // {
|
||||
// // Error_Handler();
|
||||
// // }
|
||||
|
||||
// osEventFlagsClear(ads1115EventHandle, ADS1115_Event_INIT);
|
||||
// osEventFlagsSet(ads1115EventHandle, ADS1115_Event_INIT_SUCCESS);
|
||||
// }
|
||||
|
||||
// if ( event_flags & ( ADS1115_Event_READY|ADS1115_Event_TRANS_ONLY )
|
||||
// == (ADS1115_Event_READY|ADS1115_Event_TRANS_ONLY) )
|
||||
// {
|
||||
// osEventFlagsClear(ads1115EventHandle, ADS1115_Event_TRANS_ONLY);
|
||||
|
||||
// }
|
||||
|
||||
// if ( event_flags & ( ADS1115_Event_READY|ADS1115_Event_TRANS_FOR_DATA )
|
||||
// == (ADS1115_Event_READY|ADS1115_Event_TRANS_FOR_DATA) )
|
||||
// {
|
||||
// osEventFlagsClear(ads1115EventHandle, ADS1115_Event_TRANS_FOR_DATA);
|
||||
// osEventFlagsSet(ads1115EventHandle, ADS1115_Event_DATA_RCV);
|
||||
|
||||
// }
|
||||
// if ( event_flags & ( ADS1115_Event_READY|ADS1115_Event_DATA_RCV )
|
||||
// == ( ADS1115_Event_READY|ADS1115_Event_DATA_RCV ) )
|
||||
// {
|
||||
// osEventFlagsClear( ads1115EventHandle, ADS1115_Event_DATA_RCV );
|
||||
// }
|
||||
// // __HAL_I2C_GET_FLAG(&hi2c1, I2C_FLAG_TXE) ;
|
||||
// osDelay(20);
|
||||
// }
|
||||
} |
||||
|
||||
void ads1115_port(void) |
||||
{ |
||||
ads1115TaskHandle = osThreadNew(ads1115_task, NULL, &ads1115Task_attributes); |
||||
ads1115EventHandle = osEventFlagsNew (&ads1115Event_attributes); |
||||
} |
||||
|
||||
/**
|
||||
* @brief |
||||
* @param [in] ads1115_I2cHandle |
||||
* @param [in] pointADD -- 读的寄存器地址 |
||||
* @param [in] configH |
||||
* @param [in] configL |
||||
* |
||||
* @details |
||||
*/ |
||||
int ads1115_init(void) |
||||
{ |
||||
uint8_t reg_data[3];
|
||||
my_ads1115.hi2c= pADS1115_I2C; |
||||
my_ads1115.config_H = my_ads1115.config_os|my_ads1115.config_mux |
||||
|my_ads1115.config_PGA|my_ads1115.config_MODE; |
||||
my_ads1115.config_L = my_ads1115.config_DR|my_ads1115.config_COMP_MODE|my_ads1115.config_COMP_POL |
||||
|my_ads1115.config_COMP_LAT|my_ads1115.config_COMP_QUE ; |
||||
|
||||
// log_i( " %02X %02X %02X", 0x01,my_ads1115.config_H,my_ads1115.config_L );
|
||||
my_ads1115.reg_data[0] = 0x01; // point addr 8bit 配置寄存器
|
||||
my_ads1115.reg_data[1] = my_ads1115.config_H; // config_reg 高位
|
||||
my_ads1115.reg_data[2] = my_ads1115.config_L; // config_reg 低位
|
||||
// log_i( " %02X %02X %02X", my_ads1115.reg_data[0],my_ads1115.reg_data[1],my_ads1115.reg_data[2] );
|
||||
|
||||
// TODO 阻塞式 仅init 使用
|
||||
// my_ads1115.state = ADS1115_WORK_STATE_INIT;
|
||||
// osEventFlagsSet ( ads1115TaskHandle, ADS1115_Event_INIT );
|
||||
if (HAL_I2C_Master_Transmit(pADS1115_I2C, ADS1115_WRITE_ADDRESS, my_ads1115.reg_data, 3,1000 ) != HAL_OK) |
||||
{ |
||||
return -1; |
||||
} |
||||
return 0; |
||||
|
||||
} |
||||
|
||||
int ads1115_setup(ADS1115_REG_CONFIG_MUX_Diff_TypeDef mux) |
||||
{ |
||||
my_ads1115.config_H &= ~0x70; |
||||
my_ads1115.config_H &= mux; |
||||
return 0; |
||||
} |
||||
|
||||
int16_t ads1115_read_data( ) |
||||
{ |
||||
int16_t data; |
||||
uint8_t rx_data[2] = {0}; |
||||
|
||||
// TODO 阻塞式, 改为 DMA 中断模式
|
||||
// 读寄存器 0x00 十六位
|
||||
while (HAL_I2C_Master_Transmit(pADS1115_I2C, ADS1115_WRITE_ADDRESS, 0x00, 1, 2000) != HAL_OK) |
||||
{ |
||||
if (HAL_I2C_GetError(pADS1115_I2C) != HAL_I2C_ERROR_AF) |
||||
{ |
||||
printf("ads1115 convert Register error!!!\r\n"); |
||||
} |
||||
} |
||||
// 读两位
|
||||
while (HAL_I2C_Master_Receive(pADS1115_I2C, ADS1115_READ_ADDRESS, rx_data, 2, 2000) != HAL_OK) |
||||
{ |
||||
if ( HAL_I2C_GetError(pADS1115_I2C) != HAL_I2C_ERROR_AF ) |
||||
{ |
||||
printf("ads1115 read data error!!!\r\n"); |
||||
} |
||||
} |
||||
data = rx_data[0] * 256 + rx_data[1]; |
||||
return data; |
||||
} |
||||
|
||||
double ads1115_get_voltage_val( ) |
||||
{ |
||||
double val; |
||||
int16_t ad_val; |
||||
// TODO 去掉延时,使用寄存器的指示, setup 和读取数据分开执行
|
||||
// ads1115_setup( pADS1115_I2C, pointADD, configH, configL );
|
||||
ads1115_setup( ADS1115_REG_CONFIG_MUX_SINGLE_0 ); |
||||
|
||||
HAL_Delay(10); |
||||
ad_val = ads1115_read_data( pADS1115_I2C ); |
||||
if ( (ad_val == 0x7FFF) | (ad_val == 0X8000)) // 是否超量程了
|
||||
{ |
||||
ad_val = 0; |
||||
// printf("over PGA\r\n");
|
||||
} |
||||
switch ((0x0E & my_ads1115.config_H) >> 1) // 量程对应的分辨率
|
||||
{ |
||||
case (0x00): |
||||
val = (double)ad_val * 187.5 / 1000.0; //
|
||||
break; |
||||
case (0x01): |
||||
val = (double)ad_val * 125 / 1000.0; |
||||
break; |
||||
case (0x02): |
||||
val = (double)ad_val * 62.5 / 1000.0; |
||||
break; |
||||
case (0x03): |
||||
val = (double)ad_val * 31.25 / 1000.0; |
||||
break; |
||||
case (0x04): |
||||
val = (double)ad_val * 15.625 / 1000.0; |
||||
break; |
||||
case (0x05): |
||||
val = (double)ad_val * 7.8125 / 1000.0; |
||||
break; |
||||
} |
||||
|
||||
return (my_ads1115.unit == ADS1115_OUTPUT_UNIT_mv)?val:(val/1000.0); |
||||
|
||||
} |
||||
|
||||
|
||||
void ads1115_get_data_start(void) |
||||
{ |
||||
// log_w( " ADS1115 ********** start.. " );
|
||||
// osEventFlagsSet( ads1115TaskHandle, ADS1115_Event_Get_Data );
|
||||
my_ads1115.state =ADS1115_WORK_STATE_GET_DATA_START; |
||||
}
|
||||
|
||||
|
||||
void I2C1_EV_IRQHandler(void) |
||||
{ |
||||
|
||||
// if (__HAL_I2C_GET_FLAG(&hi2c1, I2C_FLAG_TC) != RESET)
|
||||
// {
|
||||
// log_i( " i2c master send cplt ******");
|
||||
// }
|
||||
|
||||
log_i( " i2c master send cplt ******"); |
||||
|
||||
HAL_I2C_EV_IRQHandler(&hi2c1); |
||||
|
||||
} |
||||
|
||||
|
||||
void I2C1_ER_IRQHandler(void) |
||||
{ |
||||
|
||||
HAL_I2C_ER_IRQHandler(&hi2c1); |
||||
|
||||
} |
||||
|
||||
|
||||
// void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c)
|
||||
// {
|
||||
// log_i( " i2c master send cplt ------------------- ");
|
||||
// if (my_ads1115.state = ADS1115_WORK_STATE_INIT)
|
||||
// {
|
||||
// osEventFlagsSet( ads1115TaskHandle, ADS1115_Event_INIT );
|
||||
// }
|
||||
// if (my_ads1115.state = ADS1115_WORK_STATE_GET_DATA_Convert_Register)
|
||||
// {
|
||||
// osEventFlagsSet( ads1115TaskHandle, ADS1115_Event_Get_Data_Convert_Register );
|
||||
// }
|
||||
// // //发送完成回调函数
|
||||
// // {
|
||||
// // //一些其他操作
|
||||
// // }
|
||||
// // HAL_I2C_Master_Receive_IT(&I2cHandle,i2c_slave_recv,I2C_REC_BYTES);
|
||||
// // {
|
||||
// // //一些其他操作
|
||||
// // }
|
||||
// }
|
||||
|
||||
// void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c)
|
||||
// {
|
||||
// log_i( " i2c master rx cplt ------------------- ");
|
||||
// // //接收完成回调函数
|
||||
// // {
|
||||
// // //一些其他操作
|
||||
// // }
|
||||
// // HAL_I2C_Slave_Transmit_IT(&I2cHandle,send_buffer,send_cnt);
|
||||
// // {
|
||||
// // //一些其他操作
|
||||
// // }
|
||||
// }
|
||||
|
||||
// void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c)
|
||||
// {
|
||||
// //错误异常回调函数
|
||||
// }
|
@ -1,492 +0,0 @@ |
||||
// i2c_ads1115.c
|
||||
#include "i2c_ads1115.h" |
||||
#include "stdlib.h" |
||||
#include "stdio.h" |
||||
#include "elog.h" |
||||
|
||||
/*
|
||||
多路测量的话, 需要配置不同的 config_H config_L |
||||
*/ |
||||
|
||||
static I2C_HandleTypeDef *pADS1115_I2C = &hi2c1; |
||||
|
||||
osThreadId_t ads1115TaskHandle; |
||||
const osThreadAttr_t ads1115Task_attributes = { |
||||
.name = "ads1115Task", |
||||
.stack_size = 256 * 4, |
||||
.priority = (osPriority_t) osPriorityNormal, |
||||
}; |
||||
|
||||
osEventFlagsId_t ads1115EventHandle; |
||||
const osEventFlagsAttr_t ads1115Event_attributes = { |
||||
.name = "ads1115Event", |
||||
}; |
||||
|
||||
// ads1115EventHandle = osEventFlagsNew (&ads1115Event_attributes);
|
||||
// typedef enum
|
||||
// {
|
||||
// EV_READY, /*!< Startup finished. */
|
||||
// EV_FRAME_RECEIVED, /*!< Frame received. */
|
||||
// EV_EXECUTE, /*!< Execute function. */
|
||||
// EV_FRAME_SENT /*!< Frame sent. */
|
||||
// } eMBEventType;
|
||||
// osEventFlagsSet(modbusEventHandle,eEvent);
|
||||
// osEventFlagsClear (osEventFlagsId_t ef_id, uint32_t flags)
|
||||
// recvedEvent = osEventFlagsWait (modbusEventHandle,
|
||||
// EV_READY | EV_FRAME_RECEIVED | EV_EXECUTE |
|
||||
// EV_FRAME_SENT, /* 接收任务感兴趣的事件 */
|
||||
// 0,
|
||||
// portMAX_DELAY); /* 指定超时事件,无限等待 */
|
||||
|
||||
ADS1115_TypeDef my_ads1115 = |
||||
{ |
||||
ads1115_init, |
||||
ads1115_port, |
||||
ads1115_test, |
||||
ads1115_start, |
||||
ads1115_stop, |
||||
NULL, |
||||
ADS1115_REG_CONFIG_OS_START, |
||||
ADS1115_REG_CONFIG_MUX_SINGLE_0, |
||||
ADS1115_REG_CONFIG_PGA_4, |
||||
ADS1115_REG_CONFIG_MODE_SINGLE, |
||||
ADS1115_REG_CONFIG_DR_128, |
||||
ADS1115_REG_CONFIG_COMP_MODE_TRADITIONAL, |
||||
ADS1115_REG_CONFIG_COMP_POL_LOW, |
||||
ADS1115_REG_CONFIG_COMP_LAT_NONLATCH, |
||||
ADS1115_REG_CONFIG_COMP_QUE_DIS, |
||||
0, // point addr
|
||||
0, // config_H
|
||||
0, // config_L
|
||||
{ 0, 0, 0 }, // reg_data[3]
|
||||
ADS1115_OUTPUT_UNIT_mv, // 默认输出毫伏
|
||||
0, // event_flags
|
||||
0, // state
|
||||
{0,0}, // result
|
||||
}; |
||||
|
||||
void ads1115_task(void) |
||||
{ |
||||
uint8_t event_flags; |
||||
uint8_t reg_data[3] ={0};
|
||||
for (;;) |
||||
{ |
||||
switch ( my_ads1115.state ) |
||||
{ |
||||
case ADS1115_WORK_STATE_WAITING: |
||||
osDelay(20); |
||||
break; |
||||
|
||||
// Init
|
||||
case ADS1115_WORK_STATE_INIT: |
||||
// log_i("ads1115 init .... %d ", osEventFlagsGet( ads1115EventHandle));
|
||||
|
||||
if ( osEventFlagsGet( ads1115EventHandle) == 0 ) |
||||
{ |
||||
osEventFlagsSet( ads1115EventHandle, ADS1115_Event_INIT ); |
||||
|
||||
my_ads1115.reg_data[0] = 0x01; // point addr 8bit 配置寄存器
|
||||
my_ads1115.reg_data[1] = my_ads1115.config_H; // config_reg 高位
|
||||
my_ads1115.time_ticks = osKernelGetTickCount( ); |
||||
if ( HAL_I2C_Master_Transmit_IT( pADS1115_I2C, ADS1115_WRITE_ADDRESS, my_ads1115.reg_data, 3 ) != HAL_OK) |
||||
{ |
||||
// log_e( "ads1115 set register failure while reading!!!" );
|
||||
my_ads1115.state == ADS1115_WORK_STATE_ERROR ; |
||||
}
|
||||
} |
||||
if ( (osKernelGetTickCount() - my_ads1115.time_ticks) > 5 *1000) |
||||
{ |
||||
my_ads1115.state == ADS1115_WORK_STATE_TIMEOUT ; |
||||
} |
||||
break;
|
||||
case ADS1115_WORK_STATE_INIT_SUCCESS: |
||||
// log_i("ads1115 init success ... " );
|
||||
osEventFlagsClear( ads1115EventHandle, ADS1115_Event_INIT ); |
||||
osEventFlagsSet( ads1115EventHandle, ADS1115_Event_READY ); |
||||
break;
|
||||
|
||||
// SET REGISTER
|
||||
case ADS1115_WORK_STATE_SET_REGISTER: |
||||
// log_i("ads1115 set register .... %d ", osEventFlagsGet( ads1115EventHandle));
|
||||
|
||||
if ( osEventFlagsGet( ads1115EventHandle) == 0 ) |
||||
{ |
||||
osEventFlagsSet( ads1115EventHandle, ADS1115_Event_SET_REGISTER ); |
||||
|
||||
my_ads1115.reg_data[0] = 0x01; // point addr 8bit 配置寄存器
|
||||
my_ads1115.reg_data[1] = my_ads1115.config_H; // config_reg 高位
|
||||
my_ads1115.time_ticks = osKernelGetTickCount( ); |
||||
if ( HAL_I2C_Master_Transmit_IT( pADS1115_I2C, ADS1115_WRITE_ADDRESS, my_ads1115.reg_data, 3 ) != HAL_OK) |
||||
{ |
||||
// log_e("ads1115 set register failure while reading!!!");
|
||||
my_ads1115.state = ADS1115_WORK_STATE_ERROR ; |
||||
} |
||||
} |
||||
if ( (osKernelGetTickCount() - my_ads1115.time_ticks) > 5 *1000) |
||||
{ |
||||
my_ads1115.state = ADS1115_WORK_STATE_TIMEOUT ; |
||||
} |
||||
break;
|
||||
case ADS1115_WORK_STATE_SET_REGISTER_SUCCESS: |
||||
// log_e("ads1115 set register.....succ");
|
||||
osEventFlagsClear( ads1115EventHandle, ADS1115_Event_SET_REGISTER ); |
||||
osEventFlagsSet( ads1115EventHandle, ADS1115_Event_READY ); |
||||
my_ads1115.state = ADS1115_WORK_STATE_SET_POINT_ADDR ; |
||||
break;
|
||||
|
||||
// SET POINT ADDR
|
||||
case ADS1115_WORK_STATE_SET_POINT_ADDR: |
||||
// log_i("ads1115 set point addr .... %d ", osEventFlagsGet( ads1115EventHandle));
|
||||
if ( osEventFlagsGet( ads1115EventHandle) == 0 ) |
||||
{ |
||||
osEventFlagsSet( ads1115EventHandle, ADS1115_Event_SET_POINT_ADDR ); |
||||
my_ads1115.time_ticks = osKernelGetTickCount( ); |
||||
if ( HAL_I2C_Master_Transmit_IT(pADS1115_I2C, ADS1115_WRITE_ADDRESS, 0x00, 1 ) != HAL_OK ) |
||||
{ |
||||
// log_e("ads1115 set register failure while reading!!!");
|
||||
my_ads1115.state = ADS1115_WORK_STATE_ERROR ; |
||||
} |
||||
} |
||||
if ( (osKernelGetTickCount() - my_ads1115.time_ticks) > 5 *1000 ) |
||||
{ |
||||
my_ads1115.state = ADS1115_WORK_STATE_TIMEOUT ; |
||||
} |
||||
break;
|
||||
case ADS1115_WORK_STATE_SET_POINT_ADDR_SUCCESS: |
||||
// log_e("ads1115 set point addr.....succ");
|
||||
osEventFlagsClear( ads1115EventHandle, ADS1115_Event_SET_POINT_ADDR ); |
||||
osEventFlagsSet( ads1115EventHandle, ADS1115_Event_READY ); |
||||
my_ads1115.state = ADS1115_WORK_STATE_RCV_DATA ; |
||||
break;
|
||||
|
||||
// RCV DATA
|
||||
case ADS1115_WORK_STATE_RCV_DATA: |
||||
// log_i("ads1115 rcv data .... %d ", osEventFlagsGet( ads1115EventHandle));
|
||||
if ( osEventFlagsGet( ads1115EventHandle) == 0 ) |
||||
{ |
||||
// log_e("ads1115 set rcv data *** .....");
|
||||
my_ads1115.time_ticks = osKernelGetTickCount( ); |
||||
osEventFlagsSet( ads1115EventHandle, ADS1115_Event_RCV_DATA ); |
||||
if ( HAL_I2C_Master_Receive_IT( pADS1115_I2C, ADS1115_READ_ADDRESS, my_ads1115.result , 2 ) != HAL_OK ) |
||||
{ |
||||
// log_e("ads1115 set register failure while reading!!!");
|
||||
my_ads1115.state = ADS1115_WORK_STATE_ERROR ; |
||||
} |
||||
} |
||||
if ( (osKernelGetTickCount() - my_ads1115.time_ticks) > 5 *1000 ) |
||||
{ |
||||
my_ads1115.state = ADS1115_WORK_STATE_TIMEOUT ; |
||||
} |
||||
break;
|
||||
case ADS1115_WORK_STATE_RCV_DATA_SUCCESS: |
||||
// log_w("ads1115 rcv data .....succ result : %d ", my_ads1115.result );
|
||||
osEventFlagsClear( ads1115EventHandle, ADS1115_Event_RCV_DATA ); |
||||
osEventFlagsSet( ads1115EventHandle, ADS1115_Event_READY ); |
||||
my_ads1115.state = ADS1115_WORK_STATE_DATA_OK ; |
||||
|
||||
// log_i( "ad val : %d ", 256*my_ads1115.result[0] +my_ads1115.result[1] );
|
||||
break;
|
||||
case ADS1115_WORK_STATE_DATA_OK: |
||||
osDelay(20); |
||||
break;
|
||||
case ADS1115_WORK_STATE_ERROR: |
||||
log_e("ads1115 error!!!"); |
||||
break;
|
||||
case ADS1115_WORK_STATE_TIMEOUT: |
||||
log_e("ads1115 timeout!!!"); |
||||
break; |
||||
case ADS1115_WORK_STATE_STOP: |
||||
break;
|
||||
default: |
||||
break; |
||||
} |
||||
osDelay( 20 ); |
||||
|
||||
}
|
||||
} |
||||
|
||||
void ads1115_port(void) |
||||
{ |
||||
ads1115TaskHandle = osThreadNew(ads1115_task, NULL, &ads1115Task_attributes); |
||||
ads1115EventHandle = osEventFlagsNew ( &ads1115Event_attributes ); |
||||
} |
||||
|
||||
/**
|
||||
* @brief |
||||
* @param [in] ads1115_I2cHandle |
||||
* @param [in] pointADD -- 读的寄存器地址 |
||||
* @param [in] configH |
||||
* @param [in] configL |
||||
* |
||||
* @details |
||||
*/ |
||||
int ads1115_init() |
||||
{ |
||||
uint8_t reg_data[3];
|
||||
my_ads1115.hi2c= pADS1115_I2C; |
||||
my_ads1115.config_H = my_ads1115.config_os|my_ads1115.config_mux |
||||
|my_ads1115.config_PGA|my_ads1115.config_MODE; |
||||
my_ads1115.config_L = my_ads1115.config_DR|my_ads1115.config_COMP_MODE|my_ads1115.config_COMP_POL |
||||
|my_ads1115.config_COMP_LAT|my_ads1115.config_COMP_QUE ; |
||||
my_ads1115.reg_data[0] = 0x01; // point addr 8bit 配置寄存器 0x01
|
||||
my_ads1115.reg_data[1] = my_ads1115.config_H; // config_reg 高位
|
||||
my_ads1115.reg_data[2] = my_ads1115.config_L; // config_reg 低位
|
||||
|
||||
ads1115_set_state( ADS1115_WORK_STATE_INIT ); |
||||
// osEventFlagsSet ( ads1115EventHandle, ADS1115_Event_INIT );
|
||||
// if (HAL_I2C_Master_Transmit_IT(pADS1115_I2C, ADS1115_WRITE_ADDRESS, my_ads1115.reg_data, 3 ) != HAL_OK)
|
||||
// {
|
||||
// return -1;
|
||||
// }
|
||||
return 0; |
||||
} |
||||
|
||||
int ads1115_test() |
||||
{ |
||||
|
||||
return 0; |
||||
} |
||||
|
||||
void ads1115_start( ) // set register开始测量
|
||||
{ |
||||
osEventFlagsSet( ads1115EventHandle, ADS1115_Event_READY ); |
||||
ads1115_set_state( ADS1115_WORK_STATE_SET_REGISTER ); |
||||
} |
||||
void ads1115_stop( ) // 结束测量 等待
|
||||
{ |
||||
ads1115_set_state( ADS1115_WORK_STATE_WAITING ); |
||||
} |
||||
|
||||
int ads1115_setup(ADS1115_REG_CONFIG_MUX_Diff_TypeDef mux) |
||||
{ |
||||
my_ads1115.config_mux &= mux; |
||||
my_ads1115.config_H =my_ads1115.config_os|my_ads1115.config_mux |
||||
|my_ads1115.config_PGA|my_ads1115.config_MODE; |
||||
my_ads1115.reg_data[1] = my_ads1115.config_H; |
||||
return 0; |
||||
} |
||||
|
||||
void ads1115_set_event_flags(ADS1115_Event_TypeDef evt) |
||||
{ |
||||
osEventFlagsSet ( ads1115EventHandle, evt ); |
||||
} |
||||
|
||||
void ads1115_set_state(ADS1115_WORK_STATE_TypeDef state) |
||||
{ |
||||
my_ads1115.state = state; |
||||
} |
||||
|
||||
int16_t ads1115_read_data( ) |
||||
{ |
||||
int16_t data; |
||||
uint8_t rx_data[2] = {0}; |
||||
|
||||
// TODO 阻塞式, 改为 DMA 中断模式
|
||||
// 读寄存器 0x00 十六位
|
||||
while (HAL_I2C_Master_Transmit(pADS1115_I2C, ADS1115_WRITE_ADDRESS, 0x00, 1, 2000) != HAL_OK) |
||||
// while ( HAL_I2C_Master_Transmit_IT(pADS1115_I2C, ADS1115_WRITE_ADDRESS, 0x00, 1 ) != HAL_OK )
|
||||
{ |
||||
if (HAL_I2C_GetError(pADS1115_I2C) != HAL_I2C_ERROR_AF) |
||||
{ |
||||
printf("ads1115 convert Register error!!!\r\n"); |
||||
} |
||||
} |
||||
// 读两位
|
||||
// while (HAL_I2C_Master_Receive(pADS1115_I2C, ADS1115_READ_ADDRESS, rx_data, 2, 2000) != HAL_OK)
|
||||
while ( HAL_I2C_Master_Receive_IT(pADS1115_I2C, ADS1115_READ_ADDRESS, rx_data, 2 ) != HAL_OK ) |
||||
{ |
||||
if ( HAL_I2C_GetError(pADS1115_I2C) != HAL_I2C_ERROR_AF ) |
||||
{ |
||||
printf("ads1115 read data error!!!\r\n"); |
||||
} |
||||
} |
||||
data = rx_data[0] * 256 + rx_data[1]; |
||||
return data; |
||||
} |
||||
|
||||
double ads1115_get_voltage_val( ) |
||||
{ |
||||
double val; |
||||
int16_t ad_val; |
||||
// TODO 去掉延时,使用寄存器的指示, setup 和读取数据分开执行
|
||||
// ads1115_setup( pADS1115_I2C, pointADD, configH, configL );
|
||||
// ads1115_setup( ADS1115_REG_CONFIG_MUX_SINGLE_0 );
|
||||
|
||||
HAL_Delay(10); |
||||
// ad_val = ads1115_read_data( pADS1115_I2C );
|
||||
ad_val = my_ads1115.result[0] * 256 + my_ads1115.result[1]; |
||||
if ( (ad_val == 0x7FFF) | (ad_val == 0X8000)) // 是否超量程了
|
||||
{ |
||||
ad_val = 0; |
||||
// printf("over PGA\r\n");
|
||||
} |
||||
switch ((0x0E & my_ads1115.config_H) >> 1) // 量程对应的分辨率
|
||||
{ |
||||
case (0x00): |
||||
val = (double)ad_val * 187.5 / 1000.0; //
|
||||
break; |
||||
case (0x01): |
||||
val = (double)ad_val * 125 / 1000.0; |
||||
break; |
||||
case (0x02): |
||||
val = (double)ad_val * 62.5 / 1000.0; |
||||
break; |
||||
case (0x03): |
||||
val = (double)ad_val * 31.25 / 1000.0; |
||||
break; |
||||
case (0x04): |
||||
val = (double)ad_val * 15.625 / 1000.0; |
||||
break; |
||||
case (0x05): |
||||
val = (double)ad_val * 7.8125 / 1000.0; |
||||
break; |
||||
} |
||||
return (my_ads1115.unit == ADS1115_OUTPUT_UNIT_mv)?val:(val/1000.0); |
||||
} |
||||
|
||||
uint16_t ADS1115_Get_Coeff_BY_128( ) |
||||
{ |
||||
uint16_t val; |
||||
|
||||
switch ((0x0E & my_ads1115.config_H) >> 1) // 量程对应的分辨率
|
||||
{ |
||||
case (0x00): |
||||
val = (int)( 187.5 * 128.0); //
|
||||
break; |
||||
case (0x01): |
||||
val = (int)( 125.5 * 128.0);
|
||||
break; |
||||
case (0x02): |
||||
val = (int)( 62.5 * 128.0);
|
||||
break; |
||||
case (0x03): |
||||
val = (int)( 31.25 * 128.0);
|
||||
break; |
||||
case (0x04): |
||||
val = (int)( 15.625 * 128.0);
|
||||
break; |
||||
case (0x05): |
||||
val = (int)( 7.8125 * 128.0);
|
||||
break; |
||||
} |
||||
|
||||
return val; |
||||
} |
||||
|
||||
double ADS1115_Get_Voltage_From_U16( uint16_t voltage) |
||||
{ |
||||
double val; |
||||
if ( ( voltage == 0x7FFF) | (voltage == 0X8000)) // 是否超量程了
|
||||
{ |
||||
voltage = 0; |
||||
// printf("over PGA\r\n");
|
||||
} |
||||
switch ((0x0E & my_ads1115.config_H) >> 1) // 量程对应的分辨率
|
||||
{ |
||||
case (0x00): |
||||
val = (double)voltage * 187.5 / 1000.0; //
|
||||
break; |
||||
case (0x01): |
||||
val = (double)voltage * 125 / 1000.0; |
||||
break; |
||||
case (0x02): |
||||
val = (double)voltage * 62.5 / 1000.0; |
||||
break; |
||||
case (0x03): |
||||
val = (double)voltage * 31.25 / 1000.0; |
||||
break; |
||||
case (0x04): |
||||
val = (double)voltage * 15.625 / 1000.0; |
||||
break; |
||||
case (0x05): |
||||
val = (double)voltage * 7.8125 / 1000.0; |
||||
break; |
||||
} |
||||
|
||||
return val; |
||||
} |
||||
|
||||
//主机模式发送回调函数
|
||||
void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *I2cHandle) |
||||
{ |
||||
if (I2cHandle == pADS1115_I2C) |
||||
{ |
||||
log_i("ads1115 send cplt..."); |
||||
if ( my_ads1115.state == ADS1115_WORK_STATE_INIT )
|
||||
{ |
||||
my_ads1115.state = ADS1115_WORK_STATE_INIT_SUCCESS; |
||||
// osEventFlagsSet( ads1115EventHandle, ADS1115_Event_INIT_SUCCESS );
|
||||
// osEventFlagsClear( ads1115EventHandle, ADS1115_Event_INIT );
|
||||
} |
||||
if ( my_ads1115.state == ADS1115_WORK_STATE_SET_REGISTER )
|
||||
{ |
||||
my_ads1115.state = ADS1115_WORK_STATE_SET_REGISTER_SUCCESS; |
||||
// osEventFlagsSet( ads1115EventHandle, ADS1115_Event_SET_REGISTER_SUCCESS );
|
||||
} |
||||
if ( my_ads1115.state == ADS1115_WORK_STATE_SET_POINT_ADDR )
|
||||
{ |
||||
my_ads1115.state = ADS1115_WORK_STATE_SET_POINT_ADDR_SUCCESS; |
||||
// osEventFlagsSet( ads1115EventHandle, ADS1115_Event_TRANS_SUCCESS );
|
||||
} |
||||
} |
||||
} |
||||
//主机模式接收回调函数
|
||||
void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *I2cHandle) |
||||
{ |
||||
if (I2cHandle == pADS1115_I2C) |
||||
{ |
||||
log_i("ads1115 rcv cplt..."); |
||||
if ( my_ads1115.state == ADS1115_WORK_STATE_RCV_DATA )
|
||||
{ |
||||
my_ads1115.state = ADS1115_WORK_STATE_RCV_DATA_SUCCESS; |
||||
// osEventFlagsSet( ads1115EventHandle, ADS1115_Event_RCV_DATA_SUCCESS );
|
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
// int ads1115_test()
|
||||
// {
|
||||
|
||||
// log_i( "ads1115_test -> " );
|
||||
// uint32_t flag;
|
||||
|
||||
// flag = osEventFlagsWait ( ads1115EventHandle,
|
||||
// ADS1115_Event_READY|ADS1115_Event_INIT|ADS1115_Event_SET_REGISTER|ADS1115_Event_SET_POINT_ADDR|ADS1115_Event_RCV_DATA,
|
||||
// 0,
|
||||
// 10);
|
||||
// log_i( "flag -> %d ", flag );
|
||||
|
||||
|
||||
// log_i( " -> %d ", osEventFlagsGet( ads1115EventHandle) );
|
||||
// osEventFlagsSet( ads1115EventHandle, ADS1115_Event_READY ) ;
|
||||
// log_i( " ready -> %d ", osEventFlagsGet( ads1115EventHandle) );
|
||||
// osEventFlagsSet( ads1115EventHandle, ADS1115_Event_INIT ) ;
|
||||
// log_i( " init -> %d ", osEventFlagsGet( ads1115EventHandle) );
|
||||
|
||||
// osEventFlagsSet( ads1115EventHandle, ADS1115_Event_RCV_DATA ) ;
|
||||
// log_i( " set register -> %d ", osEventFlagsGet( ads1115EventHandle) );
|
||||
|
||||
// osEventFlagsSet( ads1115EventHandle, ADS1115_Event_SET_REGISTER ) ;
|
||||
// osEventFlagsSet( ads1115EventHandle, ADS1115_Event_SET_POINT_ADDR ) ;
|
||||
// log_i( " set register -> %d ", osEventFlagsGet( ads1115EventHandle) );
|
||||
|
||||
|
||||
// osEventFlagsClear( ads1115EventHandle, ADS1115_Event_SET_POINT_ADDR ) ;
|
||||
// log_i( " clear -> %d ", osEventFlagsGet( ads1115EventHandle) );
|
||||
// flag = osEventFlagsWait ( ads1115EventHandle,
|
||||
// ADS1115_Event_READY|ADS1115_Event_INIT|ADS1115_Event_SET_REGISTER|ADS1115_Event_SET_POINT_ADDR|ADS1115_Event_RCV_DATA,
|
||||
// 0,
|
||||
// 10);
|
||||
// log_i( "flag 2 -> %d ", flag );
|
||||
|
||||
// if (flag&ADS1115_Event_SET_POINT_ADDR == 0)
|
||||
// {
|
||||
// log_i("get ...... ");
|
||||
// }else{
|
||||
// log_i(" not get ... ");
|
||||
|
||||
// }
|
||||
|
||||
// return 0;
|
||||
// }
|
Loading…
Reference in new issue