diff --git a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/BH1750/BH1750.c b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/BH1750/BH1750.c index 64149313..077b84a6 100644 --- a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/BH1750/BH1750.c +++ b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/BH1750/BH1750.c @@ -9,10 +9,10 @@ int result; /*************************************************************** -* 函数名称: Init_BH1750 -* 说 明: 写命令初始化BH1750 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: Init_BH1750 +* 璇 鏄: 鍐欏懡浠ゅ垵濮嬪寲BH1750 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 ***************************************************************/ void Init_BH1750(void) { @@ -21,10 +21,10 @@ void Init_BH1750(void) } /*************************************************************** -* 函数名称: Start_BH1750 -* 说 明: 启动BH1750 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: Start_BH1750 +* 璇 鏄: 鍚姩BH1750 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 ***************************************************************/ void Start_BH1750(void) { @@ -35,19 +35,19 @@ void Start_BH1750(void) /*************************************************************** -* 函数名称: Convert_BH1750 -* 说 明: 数值转换 -* 参 数: 无 -* 返 回 值: 光强值 +* 鍑芥暟鍚嶇О: Convert_BH1750 +* 璇 鏄: 鏁板艰浆鎹 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鍏夊己鍊 ***************************************************************/ float Convert_BH1750(void) { - Start_BH1750(); - HAL_Delay(180); - HAL_I2C_Master_Receive(&hi2c1, BH1750_Addr+1,BUF,2,0xff); - result=BUF[0]; - result=(result<<8)+BUF[1]; //合成数据,即光照数据 - result_lx=(float)(result/1.2); - return result_lx; + Start_BH1750(); + HAL_Delay(180); + HAL_I2C_Master_Receive(&hi2c1, BH1750_Addr+1,BUF,2,0xff); + result=BUF[0]; + result=(result<<8)+BUF[1]; //鍚堟垚鏁版嵁锛屽嵆鍏夌収鏁版嵁 + result_lx=(float)(result/1.2); + return result_lx; } diff --git a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/BH1750/bh1750.h b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/BH1750/bh1750.h index 8347fc08..d7ff052f 100644 --- a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/BH1750/bh1750.h +++ b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/BH1750/bh1750.h @@ -1,11 +1,11 @@ #ifndef __BH1750_H__ #define __BH1750_H__ -/* 包含头文件 ----------------------------------------------------------------*/ +/* 鍖呭惈澶存枃浠 ----------------------------------------------------------------*/ #include "stm32l4xx_hal.h" -/* 类型定义 ------------------------------------------------------------------*/ -/* 宏定义 --------------------------------------------------------------------*/ -#define I2C_OWN_ADDRESS 0x0A +/* 绫诲瀷瀹氫箟 ------------------------------------------------------------------*/ +/* 瀹忓畾涔 --------------------------------------------------------------------*/ +#define I2C_OWN_ADDRESS 0x0A #define BH1750_Addr 0x46 #define BH1750_ON 0x01 @@ -15,25 +15,21 @@ /*************************************************************** -* 函数名称: BH1750_Data_TypeDef -* 说 明: BH1750结构体 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: BH1750_Data_TypeDef +* 璇 鏄: BH1750缁撴瀯浣 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 ***************************************************************/ typedef struct { - char Lux[5]; //光强 + char Lux[5]; //鍏夊己 }BH1750_Data_TypeDef; - -void Init_BH1750(void); //IO初始化, -void Start_BH1750(void); //上电,设置清除数据寄存器 -//void Read_BH1750(void); //连续的读取内部寄存器数据 +void Init_BH1750(void); //IO鍒濆鍖栵紝 +void Start_BH1750(void); //涓婄數锛岃缃竻闄ゆ暟鎹瘎瀛樺櫒 +//void Read_BH1750(void); //杩炵画鐨勮鍙栧唴閮ㄥ瘎瀛樺櫒鏁版嵁 float Convert_BH1750(void); -#endif - - - +#endif /* __BH1750_H__ */ diff --git a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_IA1/E53_IA1.c b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_IA1/E53_IA1.c index 01882a75..1e082b80 100644 --- a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_IA1/E53_IA1.c +++ b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_IA1/E53_IA1.c @@ -39,16 +39,16 @@ void Start_BH1750(void) ***************************************************************/ float Convert_BH1750(void) { - float result_lx; - uint8_t BUF[2]; - int result; - Start_BH1750(); - HAL_Delay(180); - HAL_I2C_Master_Receive(&hi2c1, BH1750_Addr+1,BUF,2,0xff); - result=BUF[0]; - result=(result<<8)+BUF[1]; //Synthetic Digital Illumination Intensity Data - result_lx=(float)(result/1.2); - return result_lx; + float result_lx; + uint8_t BUF[2]; + int result; + Start_BH1750(); + HAL_Delay(180); + HAL_I2C_Master_Receive(&hi2c1, BH1750_Addr+1,BUF,2,0xff); + result=BUF[0]; + result=(result<<8)+BUF[1]; //Synthetic Digital Illumination Intensity Data + result_lx=(float)(result/1.2); + return result_lx; } /*************************************************************** @@ -59,10 +59,9 @@ float Convert_BH1750(void) ***************************************************************/ void SHT30_reset(void) { - uint8_t SHT3X_Resetcommand_Buffer[2]={0x30,0xA2}; //soft reset + uint8_t SHT3X_Resetcommand_Buffer[2]={0x30,0xA2}; //soft reset HAL_I2C_Master_Transmit(&hi2c1,SHT30_Addr<<1,SHT3X_Resetcommand_Buffer,2,0x10); HAL_Delay(15); - } /*************************************************************** @@ -73,18 +72,17 @@ void SHT30_reset(void) ***************************************************************/ void Init_SHT30(void) { - uint8_t SHT3X_Modecommand_Buffer[2]={0x22,0x36}; //periodic mode commands - HAL_I2C_Master_Transmit(&hi2c1,SHT30_Addr<<1,SHT3X_Modecommand_Buffer,2,0x10); //send periodic mode commands - + uint8_t SHT3X_Modecommand_Buffer[2]={0x22,0x36}; //periodic mode commands + HAL_I2C_Master_Transmit(&hi2c1,SHT30_Addr<<1,SHT3X_Modecommand_Buffer,2,0x10); //send periodic mode commands } /*************************************************************** * 鍑芥暟鍚嶇О: SHT3x_CheckCrc * 璇 鏄: 妫鏌ユ暟鎹纭 * 鍙 鏁: data锛氳鍙栧埌鐨勬暟鎹 - nbrOfBytes锛氶渶瑕佹牎楠岀殑鏁伴噺 - checksum锛氳鍙栧埌鐨勬牎瀵规瘮楠屽 -* 杩 鍥 鍊: 鏍¢獙缁撴灉锛0-鎴愬姛 1-澶辫触 + nbrOfBytes锛氶渶瑕佹牎楠岀殑鏁伴噺 + checksum锛氳鍙栧埌鐨勬牎瀵规瘮楠屽 +* 杩 鍥 鍊: 鏍¢獙缁撴灉锛0-鎴愬姛 1-澶辫触 ***************************************************************/ uint8_t SHT3x_CheckCrc(char data[], char nbrOfBytes, char checksum) { @@ -105,10 +103,9 @@ uint8_t SHT3x_CheckCrc(char data[], char nbrOfBytes, char checksum) } if(crc != checksum) - return 1; + return 1; else - return 0; - + return 0; } /*************************************************************** @@ -120,7 +117,7 @@ uint8_t SHT3x_CheckCrc(char data[], char nbrOfBytes, char checksum) float SHT3x_CalcTemperatureC(unsigned short u16sT) { - float temperatureC = 0; // variable for result + float temperatureC = 0; // variable for result u16sT &= ~0x0003; // clear bits [1..0] (status bits) //-- calculate temperature [鈩僝 -- @@ -139,7 +136,7 @@ float SHT3x_CalcTemperatureC(unsigned short u16sT) float SHT3x_CalcRH(unsigned short u16sRH) { - float humidityRH = 0; // variable for result + float humidityRH = 0; // variable for result u16sRH &= ~0x0003; // clear bits [1..0] (status bits) //-- calculate relative humidity [%RH] -- @@ -157,49 +154,47 @@ float SHT3x_CalcRH(unsigned short u16sRH) ***************************************************************/ void Init_Motor(void) { - GPIO_InitTypeDef GPIO_InitStruct; + GPIO_InitTypeDef GPIO_InitStruct; - /* GPIO Ports Clock Enable */ - IA1_Motor_GPIO_CLK_ENABLE(); + /* GPIO Ports Clock Enable */ + IA1_Motor_GPIO_CLK_ENABLE(); - /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(IA1_Motor_GPIO_Port, IA1_Motor_Pin, GPIO_PIN_RESET); - E53_IA1_Data.MotorMode=0; - /*Configure GPIO pin : PtPin */ - GPIO_InitStruct.Pin = IA1_Motor_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - HAL_GPIO_Init(IA1_Motor_GPIO_Port, &GPIO_InitStruct); + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(IA1_Motor_GPIO_Port, IA1_Motor_Pin, GPIO_PIN_RESET); + E53_IA1_Data.MotorMode=0; + /*Configure GPIO pin : PtPin */ + GPIO_InitStruct.Pin = IA1_Motor_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(IA1_Motor_GPIO_Port, &GPIO_InitStruct); } void motor_control(char mode){ - if(mode==1) - { - E53_IA1_Data.MotorMode=1; - HAL_GPIO_WritePin(IA1_Motor_GPIO_Port, IA1_Motor_Pin, GPIO_PIN_SET); - } - else if(mode==0) - { - E53_IA1_Data.MotorMode=0; - HAL_GPIO_WritePin(IA1_Motor_GPIO_Port, IA1_Motor_Pin, GPIO_PIN_RESET); - } - + if(mode==1) + { + E53_IA1_Data.MotorMode=1; + HAL_GPIO_WritePin(IA1_Motor_GPIO_Port, IA1_Motor_Pin, GPIO_PIN_SET); + } + else if(mode==0) + { + E53_IA1_Data.MotorMode=0; + HAL_GPIO_WritePin(IA1_Motor_GPIO_Port, IA1_Motor_Pin, GPIO_PIN_RESET); + } } void light_control(char mode){ - if(mode==1) - { - E53_IA1_Data.LightMode=1; - HAL_GPIO_WritePin(IA1_Light_GPIO_Port, IA1_Light_Pin, GPIO_PIN_SET); - } - else if(mode==0) - { - E53_IA1_Data.LightMode=0; - HAL_GPIO_WritePin(IA1_Light_GPIO_Port, IA1_Light_Pin, GPIO_PIN_RESET); - } - + if(mode==1) + { + E53_IA1_Data.LightMode=1; + HAL_GPIO_WritePin(IA1_Light_GPIO_Port, IA1_Light_Pin, GPIO_PIN_SET); + } + else if(mode==0) + { + E53_IA1_Data.LightMode=0; + HAL_GPIO_WritePin(IA1_Light_GPIO_Port, IA1_Light_Pin, GPIO_PIN_RESET); + } } /*************************************************************** @@ -210,20 +205,20 @@ void light_control(char mode){ ***************************************************************/ void Init_Light(void) { - GPIO_InitTypeDef GPIO_InitStruct; + GPIO_InitTypeDef GPIO_InitStruct; - /* GPIO Ports Clock Enable */ - IA1_Light_GPIO_CLK_ENABLE(); + /* GPIO Ports Clock Enable */ + IA1_Light_GPIO_CLK_ENABLE(); - /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(IA1_Light_GPIO_Port, IA1_Light_Pin, GPIO_PIN_RESET); - E53_IA1_Data.LightMode=0; - /*Configure GPIO pin : PtPin */ - GPIO_InitStruct.Pin = IA1_Light_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - HAL_GPIO_Init(IA1_Light_GPIO_Port, &GPIO_InitStruct); + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(IA1_Light_GPIO_Port, IA1_Light_Pin, GPIO_PIN_RESET); + E53_IA1_Data.LightMode=0; + /*Configure GPIO pin : PtPin */ + GPIO_InitStruct.Pin = IA1_Light_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(IA1_Light_GPIO_Port, &GPIO_InitStruct); } /*************************************************************** * 鍑芥暟鍚嶇О: Init_E53_IA1 @@ -234,7 +229,7 @@ void Init_Light(void) void Init_E53_IA1(void) { //printf("E53_sensor_board init!\n"); - MX_I2C1_Init(); + MX_I2C1_Init(); Init_BH1750(); Init_SHT30(); Init_Motor(); @@ -254,7 +249,7 @@ void E53_IA1_Read_Data(void) char data[3]; //data array for checksum verification unsigned short tmp = 0; uint16_t dat; - uint8_t SHT3X_Fetchcommand_Bbuffer[2]={0xE0,0x00}; //read the measurement results + uint8_t SHT3X_Fetchcommand_Bbuffer[2]={0xE0,0x00}; //read the measurement results uint8_t SHT3X_Data_Buffer[6]; //byte 0,1 is temperature byte 4,5 is humidity E53_IA1_Data.Lux=Convert_BH1750(); //Read bh1750 sensor data @@ -289,4 +284,3 @@ void E53_IA1_Read_Data(void) } - diff --git a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_IA1/E53_IA1.h b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_IA1/E53_IA1.h index 2ba91d97..b682e97f 100644 --- a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_IA1/E53_IA1.h +++ b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_IA1/E53_IA1.h @@ -15,19 +15,19 @@ /* E53_IA1浼犳劅鍣ㄦ暟鎹被鍨嬪畾涔 ------------------------------------------------------------*/ typedef struct { - float Lux; //鍏夌収寮哄害 - float Humidity; //婀垮害 - float Temperature; //娓╁害 - char MotorMode; - char LightMode; + float Lux; //鍏夌収寮哄害 + float Humidity; //婀垮害 + float Temperature; //娓╁害 + char MotorMode; + char LightMode; } E53_IA1_Data_TypeDef; extern E53_IA1_Data_TypeDef E53_IA1_Data; /* 瀵勫瓨鍣ㄥ畯瀹氫箟 --------------------------------------------------------------------*/ -#define I2C_OWN_ADDRESS 0x0A +#define I2C_OWN_ADDRESS 0x0A -#define SHT30_Addr 0x44 +#define SHT30_Addr 0x44 #define BH1750_Addr 0x46 #define BH1750_ON 0x01 @@ -38,9 +38,5 @@ extern E53_IA1_Data_TypeDef E53_IA1_Data; void Init_E53_IA1(void); void E53_IA1_Read_Data(void); -#endif - - - - +#endif /* __E53_IA1_H__ */ diff --git a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_SF1/E53_SF1.c b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_SF1/E53_SF1.c index c8194c4a..458671f9 100644 --- a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_SF1/E53_SF1.c +++ b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_SF1/E53_SF1.c @@ -15,52 +15,52 @@ TIM_HandleTypeDef htim16; /* TIM16 init function */ void MX_TIM16_Init(void) { - TIM_OC_InitTypeDef sConfigOC; - TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig; + TIM_OC_InitTypeDef sConfigOC; + TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig; - htim16.Instance = TIM16; - htim16.Init.Prescaler = 79; - htim16.Init.CounterMode = TIM_COUNTERMODE_UP; - htim16.Init.Period = 999; - htim16.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; - htim16.Init.RepetitionCounter = 0; - htim16.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; - if (HAL_TIM_Base_Init(&htim16) != HAL_OK) - { - Error_Handler(); - } + htim16.Instance = TIM16; + htim16.Init.Prescaler = 79; + htim16.Init.CounterMode = TIM_COUNTERMODE_UP; + htim16.Init.Period = 999; + htim16.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim16.Init.RepetitionCounter = 0; + htim16.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + if (HAL_TIM_Base_Init(&htim16) != HAL_OK) + { + Error_Handler(); + } - if (HAL_TIM_PWM_Init(&htim16) != HAL_OK) - { - Error_Handler(); - } + if (HAL_TIM_PWM_Init(&htim16) != HAL_OK) + { + Error_Handler(); + } - sConfigOC.OCMode = TIM_OCMODE_PWM1; - sConfigOC.Pulse = 499; - sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; - sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH; - sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; - sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET; - sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET; - if (HAL_TIM_PWM_ConfigChannel(&htim16, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) - { - Error_Handler(); - } + sConfigOC.OCMode = TIM_OCMODE_PWM1; + sConfigOC.Pulse = 499; + sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; + sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH; + sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; + sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET; + sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET; + if (HAL_TIM_PWM_ConfigChannel(&htim16, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) + { + Error_Handler(); + } - sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE; - sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE; - sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF; - sBreakDeadTimeConfig.DeadTime = 0; - sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE; - sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH; - sBreakDeadTimeConfig.BreakFilter = 0; - sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE; - if (HAL_TIMEx_ConfigBreakDeadTime(&htim16, &sBreakDeadTimeConfig) != HAL_OK) - { - Error_Handler(); - } + sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE; + sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE; + sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF; + sBreakDeadTimeConfig.DeadTime = 0; + sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE; + sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH; + sBreakDeadTimeConfig.BreakFilter = 0; + sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE; + if (HAL_TIMEx_ConfigBreakDeadTime(&htim16, &sBreakDeadTimeConfig) != HAL_OK) + { + Error_Handler(); + } - HAL_TIM_MspPostInit(&htim16); + HAL_TIM_MspPostInit(&htim16); } /*************************************************************** @@ -72,17 +72,17 @@ void MX_TIM16_Init(void) void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) { - if(tim_baseHandle->Instance==TIM16) - { - /* USER CODE BEGIN TIM16_MspInit 0 */ + if(tim_baseHandle->Instance==TIM16) + { + /* USER CODE BEGIN TIM16_MspInit 0 */ - /* USER CODE END TIM16_MspInit 0 */ - /* TIM16 clock enable */ - __HAL_RCC_TIM16_CLK_ENABLE(); - /* USER CODE BEGIN TIM16_MspInit 1 */ + /* USER CODE END TIM16_MspInit 0 */ + /* TIM16 clock enable */ + __HAL_RCC_TIM16_CLK_ENABLE(); + /* USER CODE BEGIN TIM16_MspInit 1 */ - /* USER CODE END TIM16_MspInit 1 */ - } + /* USER CODE END TIM16_MspInit 1 */ + } } /*************************************************************** @@ -94,27 +94,27 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) { - GPIO_InitTypeDef GPIO_InitStruct; - if(timHandle->Instance==TIM16) - { - /* USER CODE BEGIN TIM16_MspPostInit 0 */ + GPIO_InitTypeDef GPIO_InitStruct; + if(timHandle->Instance==TIM16) + { + /* USER CODE BEGIN TIM16_MspPostInit 0 */ - /* USER CODE END TIM16_MspPostInit 0 */ + /* USER CODE END TIM16_MspPostInit 0 */ - /**TIM16 GPIO Configuration - PB8 ------> TIM16_CH1 - */ - GPIO_InitStruct.Pin = SF1_Beep_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF14_TIM16; - HAL_GPIO_Init(SF1_Beep_GPIO_Port, &GPIO_InitStruct); + /**TIM16 GPIO Configuration + PB8 ------> TIM16_CH1 + */ + GPIO_InitStruct.Pin = SF1_Beep_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF14_TIM16; + HAL_GPIO_Init(SF1_Beep_GPIO_Port, &GPIO_InitStruct); - /* USER CODE BEGIN TIM16_MspPostInit 1 */ + /* USER CODE BEGIN TIM16_MspPostInit 1 */ - /* USER CODE END TIM16_MspPostInit 1 */ - } + /* USER CODE END TIM16_MspPostInit 1 */ + } } @@ -126,43 +126,43 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) ***************************************************************/ void MX_ADC1_Init(void) { - ADC_ChannelConfTypeDef sConfig; + ADC_ChannelConfTypeDef sConfig; /**Common config */ - hadc1.Instance = ADC1; - hadc1.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1; - hadc1.Init.Resolution = ADC_RESOLUTION_12B; - hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; - hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE; - hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV; - hadc1.Init.LowPowerAutoWait = DISABLE; - hadc1.Init.ContinuousConvMode = DISABLE; - hadc1.Init.NbrOfConversion = 1; - hadc1.Init.DiscontinuousConvMode = DISABLE; - hadc1.Init.NbrOfDiscConversion = 1; - hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; - hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; - hadc1.Init.DMAContinuousRequests = DISABLE; - hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED; - hadc1.Init.OversamplingMode = DISABLE; - if (HAL_ADC_Init(&hadc1) != HAL_OK) - { - Error_Handler(); - } + hadc1.Instance = ADC1; + hadc1.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1; + hadc1.Init.Resolution = ADC_RESOLUTION_12B; + hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; + hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE; + hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV; + hadc1.Init.LowPowerAutoWait = DISABLE; + hadc1.Init.ContinuousConvMode = DISABLE; + hadc1.Init.NbrOfConversion = 1; + hadc1.Init.DiscontinuousConvMode = DISABLE; + hadc1.Init.NbrOfDiscConversion = 1; + hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; + hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; + hadc1.Init.DMAContinuousRequests = DISABLE; + hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED; + hadc1.Init.OversamplingMode = DISABLE; + if (HAL_ADC_Init(&hadc1) != HAL_OK) + { + Error_Handler(); + } /**Configure Regular Channel */ - sConfig.Channel = ADC_CHANNEL_3; - sConfig.Rank = ADC_REGULAR_RANK_1; - sConfig.SamplingTime = ADC_SAMPLETIME_2CYCLES_5; - sConfig.SingleDiff = ADC_SINGLE_ENDED; - sConfig.OffsetNumber = ADC_OFFSET_NONE; - sConfig.Offset = 0; - if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) - { - Error_Handler(); - } + sConfig.Channel = ADC_CHANNEL_3; + sConfig.Rank = ADC_REGULAR_RANK_1; + sConfig.SamplingTime = ADC_SAMPLETIME_2CYCLES_5; + sConfig.SingleDiff = ADC_SINGLE_ENDED; + sConfig.OffsetNumber = ADC_OFFSET_NONE; + sConfig.Offset = 0; + if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) + { + Error_Handler(); + } } @@ -175,26 +175,26 @@ void MX_ADC1_Init(void) void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle) { - GPIO_InitTypeDef GPIO_InitStruct; - if(adcHandle->Instance==ADC1) - { - /* USER CODE BEGIN ADC1_MspInit 0 */ + GPIO_InitTypeDef GPIO_InitStruct; + if(adcHandle->Instance==ADC1) + { + /* USER CODE BEGIN ADC1_MspInit 0 */ - /* USER CODE END ADC1_MspInit 0 */ - /* ADC1 clock enable */ - __HAL_RCC_ADC_CLK_ENABLE(); + /* USER CODE END ADC1_MspInit 0 */ + /* ADC1 clock enable */ + __HAL_RCC_ADC_CLK_ENABLE(); - /**ADC1 GPIO Configuration - PC2 ------> ADC1_IN3 - */ - GPIO_InitStruct.Pin = GPIO_PIN_2; - GPIO_InitStruct.Mode = GPIO_MODE_ANALOG_ADC_CONTROL; - GPIO_InitStruct.Pull = GPIO_NOPULL; - HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + /**ADC1 GPIO Configuration + PC2 ------> ADC1_IN3 + */ + GPIO_InitStruct.Pin = GPIO_PIN_2; + GPIO_InitStruct.Mode = GPIO_MODE_ANALOG_ADC_CONTROL; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); - /* USER CODE BEGIN ADC1_MspInit 1 */ + /* USER CODE BEGIN ADC1_MspInit 1 */ - /* USER CODE END ADC1_MspInit 1 */ + /* USER CODE END ADC1_MspInit 1 */ } } @@ -206,20 +206,20 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle) ***************************************************************/ void Init_Beep(void) { - GPIO_InitTypeDef GPIO_InitStruct; + GPIO_InitTypeDef GPIO_InitStruct; - /* GPIO Ports Clock Enable */ - SF1_Beep_GPIO_CLK_ENABLE(); + /* GPIO Ports Clock Enable */ + SF1_Beep_GPIO_CLK_ENABLE(); - /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(SF1_Beep_GPIO_Port, SF1_Beep_Pin, GPIO_PIN_RESET); + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(SF1_Beep_GPIO_Port, SF1_Beep_Pin, GPIO_PIN_RESET); - /*Configure GPIO pin : PtPin */ - GPIO_InitStruct.Pin = SF1_Beep_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - HAL_GPIO_Init(SF1_Beep_GPIO_Port, &GPIO_InitStruct); + /*Configure GPIO pin : PtPin */ + GPIO_InitStruct.Pin = SF1_Beep_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(SF1_Beep_GPIO_Port, &GPIO_InitStruct); } /*************************************************************** @@ -230,20 +230,20 @@ void Init_Beep(void) ***************************************************************/ void Init_LED(void) { - GPIO_InitTypeDef GPIO_InitStruct; + GPIO_InitTypeDef GPIO_InitStruct; - /* GPIO Ports Clock Enable */ - SF1_LED_GPIO_CLK_ENABLE(); + /* GPIO Ports Clock Enable */ + SF1_LED_GPIO_CLK_ENABLE(); - /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(SF1_LED_GPIO_Port, SF1_LED_Pin, GPIO_PIN_SET); + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(SF1_LED_GPIO_Port, SF1_LED_Pin, GPIO_PIN_SET); - /*Configure GPIO pin : PtPin */ - GPIO_InitStruct.Pin = SF1_LED_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - HAL_GPIO_Init(SF1_LED_GPIO_Port, &GPIO_InitStruct); + /*Configure GPIO pin : PtPin */ + GPIO_InitStruct.Pin = SF1_LED_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(SF1_LED_GPIO_Port, &GPIO_InitStruct); } /*************************************************************** * 鍑芥暟鍚嶇О: Init_E53_SF1 @@ -253,10 +253,10 @@ void Init_LED(void) ***************************************************************/ void Init_E53_SF1(void) { - MX_ADC1_Init(); - Init_Beep(); - Init_LED(); - MX_TIM16_Init(); + MX_ADC1_Init(); + Init_Beep(); + Init_LED(); + MX_TIM16_Init(); } /*************************************************************** * 鍑芥暟鍚嶇О: E53_SF1_Read_Data @@ -266,37 +266,37 @@ void Init_E53_SF1(void) ***************************************************************/ void E53_SF1_Read_Data(void) { - HAL_ADC_Start(&hadc1); - HAL_ADC_PollForConversion(&hadc1, 50); - E53_SF1_Data.Smoke_Value = HAL_ADC_GetValue(&hadc1); + HAL_ADC_Start(&hadc1); + HAL_ADC_PollForConversion(&hadc1, 50); + E53_SF1_Data.Smoke_Value = HAL_ADC_GetValue(&hadc1); } /*************************************************************** * 鍑芥暟鍚嶇О: E53SF1_LED_StatusSet * 璇 鏄: E53SF1寮鍙戞澘涓婄殑LED鐏殑浜伃鎺у埗 * 鍙 鏁: status,LED鐏殑鐘舵 -* 闈1,鍏崇伅 -* 1,寮鐏 +* 闈1,鍏崇伅 +* 1,寮鐏 * 杩 鍥 鍊: 鏃 ***************************************************************/ void E53SF1_LED_StatusSet(E53SF1_Status_ENUM status) { - HAL_GPIO_WritePin(SF1_LED_GPIO_Port, SF1_LED_Pin, status != ON ? GPIO_PIN_RESET : GPIO_PIN_SET ); + HAL_GPIO_WritePin(SF1_LED_GPIO_Port, SF1_LED_Pin, status != ON ? GPIO_PIN_RESET : GPIO_PIN_SET ); } /*************************************************************** * 鍑芥暟鍚嶇О: E53SF1_BEEP * 璇 鏄: E53SF1铚傞福鍣ㄦ姤璀︿笌鍚 * 鍙 鏁: status,LED_ENUM鏋氫妇鐨勬暟鎹 -* LED_OFF,鍏崇伅 -* LED_ON,寮鐏 +* LED_OFF,鍏崇伅 +* LED_ON,寮鐏 * 杩 鍥 鍊: 鏃 ***************************************************************/ void E53SF1_Beep(E53SF1_Status_ENUM status) { - if(status == ON) - HAL_TIM_PWM_Start(&htim16,TIM_CHANNEL_1); - if(status == OFF) - HAL_TIM_PWM_Stop(&htim16,TIM_CHANNEL_1); + if(status == ON) + HAL_TIM_PWM_Start(&htim16,TIM_CHANNEL_1); + if(status == OFF) + HAL_TIM_PWM_Stop(&htim16,TIM_CHANNEL_1); } diff --git a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_SF1/E53_SF1.h b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_SF1/E53_SF1.h index 4291a9b5..bd0cb55d 100644 --- a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_SF1/E53_SF1.h +++ b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_SF1/E53_SF1.h @@ -20,19 +20,19 @@ extern TIM_HandleTypeDef htim16; /* E53_SF1浼犳劅鍣ㄦ暟鎹被鍨嬪畾涔 ------------------------------------------------------------*/ typedef struct { - int Smoke_Value; + int Smoke_Value; } E53_SF1_Data_TypeDef; extern E53_SF1_Data_TypeDef E53_SF1_Data; /*************************************************************** -* 鍚 绉: GasStatus_ENUM +* 鍚 绉: E53SF1_Status_ENUM * 璇 鏄庯細鏋氫妇鐘舵佺粨鏋勪綋 ***************************************************************/ typedef enum { - OFF = 0, - ON + OFF = 0, + ON } E53SF1_Status_ENUM; void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); @@ -41,9 +41,5 @@ void E53_SF1_Read_Data(void); void E53SF1_LED_StatusSet(E53SF1_Status_ENUM status); void E53SF1_Beep(E53SF1_Status_ENUM status); -#endif - - - - +#endif /* __E53_SF1_H__ */ diff --git a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_ST1/E53_ST1.c b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_ST1/E53_ST1.c index d63185a6..3cab776e 100644 --- a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_ST1/E53_ST1.c +++ b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_ST1/E53_ST1.c @@ -19,52 +19,52 @@ TIM_HandleTypeDef htim16; /* TIM16 init function */ void MX_TIM16_Init(void) { - TIM_OC_InitTypeDef sConfigOC; - TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig; + TIM_OC_InitTypeDef sConfigOC; + TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig; - htim16.Instance = TIM16; - htim16.Init.Prescaler = 79; - htim16.Init.CounterMode = TIM_COUNTERMODE_UP; - htim16.Init.Period = 999; - htim16.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; - htim16.Init.RepetitionCounter = 0; - htim16.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; - if (HAL_TIM_Base_Init(&htim16) != HAL_OK) - { - Error_Handler(); - } + htim16.Instance = TIM16; + htim16.Init.Prescaler = 79; + htim16.Init.CounterMode = TIM_COUNTERMODE_UP; + htim16.Init.Period = 999; + htim16.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim16.Init.RepetitionCounter = 0; + htim16.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + if (HAL_TIM_Base_Init(&htim16) != HAL_OK) + { + Error_Handler(); + } - if (HAL_TIM_PWM_Init(&htim16) != HAL_OK) - { - Error_Handler(); - } + if (HAL_TIM_PWM_Init(&htim16) != HAL_OK) + { + Error_Handler(); + } - sConfigOC.OCMode = TIM_OCMODE_PWM1; - sConfigOC.Pulse = 499; - sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; - sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH; - sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; - sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET; - sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET; - if (HAL_TIM_PWM_ConfigChannel(&htim16, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) - { - Error_Handler(); - } + sConfigOC.OCMode = TIM_OCMODE_PWM1; + sConfigOC.Pulse = 499; + sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; + sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH; + sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; + sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET; + sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET; + if (HAL_TIM_PWM_ConfigChannel(&htim16, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) + { + Error_Handler(); + } - sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE; - sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE; - sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF; - sBreakDeadTimeConfig.DeadTime = 0; - sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE; - sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH; - sBreakDeadTimeConfig.BreakFilter = 0; - sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE; - if (HAL_TIMEx_ConfigBreakDeadTime(&htim16, &sBreakDeadTimeConfig) != HAL_OK) - { - Error_Handler(); - } + sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE; + sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE; + sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF; + sBreakDeadTimeConfig.DeadTime = 0; + sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE; + sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH; + sBreakDeadTimeConfig.BreakFilter = 0; + sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE; + if (HAL_TIMEx_ConfigBreakDeadTime(&htim16, &sBreakDeadTimeConfig) != HAL_OK) + { + Error_Handler(); + } - HAL_TIM_MspPostInit(&htim16); + HAL_TIM_MspPostInit(&htim16); } /*************************************************************** @@ -76,16 +76,16 @@ void MX_TIM16_Init(void) void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) { - if(tim_baseHandle->Instance==TIM16) - { - /* USER CODE BEGIN TIM16_MspInit 0 */ + if(tim_baseHandle->Instance==TIM16) + { + /* USER CODE BEGIN TIM16_MspInit 0 */ - /* USER CODE END TIM16_MspInit 0 */ - /* TIM16 clock enable */ - __HAL_RCC_TIM16_CLK_ENABLE(); - /* USER CODE BEGIN TIM16_MspInit 1 */ + /* USER CODE END TIM16_MspInit 0 */ + /* TIM16 clock enable */ + __HAL_RCC_TIM16_CLK_ENABLE(); + /* USER CODE BEGIN TIM16_MspInit 1 */ - /* USER CODE END TIM16_MspInit 1 */ + /* USER CODE END TIM16_MspInit 1 */ } } @@ -98,26 +98,25 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) { - GPIO_InitTypeDef GPIO_InitStruct; - if(timHandle->Instance==TIM16) - { - /* USER CODE BEGIN TIM16_MspPostInit 0 */ + GPIO_InitTypeDef GPIO_InitStruct; + if(timHandle->Instance==TIM16) + { + /* USER CODE BEGIN TIM16_MspPostInit 0 */ - /* USER CODE END TIM16_MspPostInit 0 */ + /* USER CODE END TIM16_MspPostInit 0 */ - /**TIM16 GPIO Configuration - PB8 ------> TIM16_CH1 - */ - GPIO_InitStruct.Pin = ST1_Beep_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF14_TIM16; - HAL_GPIO_Init(ST1_Beep_GPIO_Port, &GPIO_InitStruct); + /**TIM16 GPIO Configuration + PB8 ------> TIM16_CH1 + */ + GPIO_InitStruct.Pin = ST1_Beep_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF14_TIM16; + HAL_GPIO_Init(ST1_Beep_GPIO_Port, &GPIO_InitStruct); - /* USER CODE BEGIN TIM16_MspPostInit 1 */ - - /* USER CODE END TIM16_MspPostInit 1 */ + /* USER CODE BEGIN TIM16_MspPostInit 1 */ + /* USER CODE END TIM16_MspPostInit 1 */ } } @@ -130,20 +129,20 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) ***************************************************************/ void Init_Beep(void) { - GPIO_InitTypeDef GPIO_InitStruct; + GPIO_InitTypeDef GPIO_InitStruct; - /* GPIO Ports Clock Enable */ - ST1_Beep_GPIO_CLK_ENABLE(); + /* GPIO Ports Clock Enable */ + ST1_Beep_GPIO_CLK_ENABLE(); - /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(ST1_Beep_GPIO_Port, ST1_Beep_Pin, GPIO_PIN_RESET); + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(ST1_Beep_GPIO_Port, ST1_Beep_Pin, GPIO_PIN_RESET); - /*Configure GPIO pin : PtPin */ - GPIO_InitStruct.Pin = ST1_Beep_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - HAL_GPIO_Init(ST1_Beep_GPIO_Port, &GPIO_InitStruct); + /*Configure GPIO pin : PtPin */ + GPIO_InitStruct.Pin = ST1_Beep_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(ST1_Beep_GPIO_Port, &GPIO_InitStruct); } /*************************************************************** @@ -154,20 +153,20 @@ void Init_Beep(void) ***************************************************************/ void Init_LED(void) { - GPIO_InitTypeDef GPIO_InitStruct; + GPIO_InitTypeDef GPIO_InitStruct; - /* GPIO Ports Clock Enable */ - ST1_LED_GPIO_CLK_ENABLE(); + /* GPIO Ports Clock Enable */ + ST1_LED_GPIO_CLK_ENABLE(); - /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(ST1_LED_GPIO_Port, ST1_LED_Pin, GPIO_PIN_SET); + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(ST1_LED_GPIO_Port, ST1_LED_Pin, GPIO_PIN_SET); - /*Configure GPIO pin : PtPin */ - GPIO_InitStruct.Pin = ST1_LED_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - HAL_GPIO_Init(ST1_LED_GPIO_Port, &GPIO_InitStruct); + /*Configure GPIO pin : PtPin */ + GPIO_InitStruct.Pin = ST1_LED_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(ST1_LED_GPIO_Port, &GPIO_InitStruct); } /*************************************************************** * 鍑芥暟鍚嶇О: Init_GPS_POW @@ -177,20 +176,20 @@ void Init_LED(void) ***************************************************************/ void Init_GPS_POW(void) { - GPIO_InitTypeDef GPIO_InitStruct; + GPIO_InitTypeDef GPIO_InitStruct; - /* GPIO Ports Clock Enable */ - ST1_GPS_POW_GPIO_CLK_ENABLE(); + /* GPIO Ports Clock Enable */ + ST1_GPS_POW_GPIO_CLK_ENABLE(); - /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(ST1_GPS_POW_GPIO_Port, ST1_GPS_POW_Pin, GPIO_PIN_RESET); + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(ST1_GPS_POW_GPIO_Port, ST1_GPS_POW_Pin, GPIO_PIN_RESET); - /*Configure GPIO pin : PtPin */ - GPIO_InitStruct.Pin = ST1_GPS_POW_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - HAL_GPIO_Init(ST1_GPS_POW_GPIO_Port, &GPIO_InitStruct); + /*Configure GPIO pin : PtPin */ + GPIO_InitStruct.Pin = ST1_GPS_POW_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(ST1_GPS_POW_GPIO_Port, &GPIO_InitStruct); } /*************************************************************** * 鍑芥暟鍚嶇О: GPS_Init @@ -200,10 +199,10 @@ void Init_GPS_POW(void) ***************************************************************/ void GPS_Init(void) { - MX_USART3_UART_Init(); //鍒濆鍖栦覆鍙 - HAL_UART_Transmit(&huart3, "$CCMSG,GGA,1,0,*19\r\n", 20, 200); - HAL_UART_Transmit(&huart3, "$CCMSG,GSA,1,0,*0D\r\n", 20, 200); - HAL_UART_Transmit(&huart3, "$CCMSG,GSV,1,0,*1A\r\n", 20, 200); + MX_USART3_UART_Init(); //鍒濆鍖栦覆鍙 + HAL_UART_Transmit(&huart3, "$CCMSG,GGA,1,0,*19\r\n", 20, 200); + HAL_UART_Transmit(&huart3, "$CCMSG,GSA,1,0,*0D\r\n", 20, 200); + HAL_UART_Transmit(&huart3, "$CCMSG,GSV,1,0,*1A\r\n", 20, 200); } /*************************************************************** @@ -214,121 +213,121 @@ void GPS_Init(void) ***************************************************************/ void Init_E53_ST1(void) { - GPS_Init(); - Init_Beep(); - Init_LED(); - Init_GPS_POW(); - MX_TIM16_Init(); + GPS_Init(); + Init_Beep(); + Init_LED(); + Init_GPS_POW(); + MX_TIM16_Init(); } /***************************************************\ * 鍑芥暟鍚嶇О: NMEA_Comma_Pos -* 鍑芥暟鍔熻兘锛氫粠buf閲岄潰寰楀埌绗琧x涓楀彿鎵鍦ㄧ殑浣嶇疆 -* 杈撳叆鍊硷細 -* 杩斿洖鍊硷細0~0xFE锛屼唬琛ㄩ楀彿鎵鍦ㄤ綅缃殑渚垮疁 -* 0xFF锛屼唬琛ㄤ笉瀛樺湪绗琧x涓楀彿 +* 鍑芥暟鍔熻兘锛氫粠buf閲岄潰寰楀埌绗琧x涓楀彿鎵鍦ㄧ殑浣嶇疆 +* 杈撳叆鍊硷細 +* 杩斿洖鍊硷細0~0xFE锛屼唬琛ㄩ楀彿鎵鍦ㄤ綅缃亸绉 +* 0xFF锛屼唬琛ㄤ笉瀛樺湪绗琧x涓楀彿 \***************************************************/ uint8_t NMEA_Comma_Pos(uint8_t *buf,uint8_t cx) { - uint8_t *p = buf; - while(cx) - { - if(*buf=='*'||*buf<' '||*buf>'z')return 0xFF; - if(*buf==',')cx--; - buf++; - } - return buf-p; + uint8_t *p = buf; + while(cx) + { + if(*buf=='*'||*buf<' '||*buf>'z')return 0xFF; + if(*buf==',')cx--; + buf++; + } + return buf-p; } /***************************************************\ * 鍑芥暟鍚嶇О: NMEA_Pow -* 鍑芥暟鍔熻兘锛氳繑鍥瀖鐨刵娆℃柟鍊 -* 杈撳叆鍊硷細搴曟暟m鍜屾寚鏁皀 -* 杩斿洖鍊硷細m^n +* 鍑芥暟鍔熻兘锛氳繑鍥瀖鐨刵娆℃柟鍊 +* 杈撳叆鍊硷細搴曟暟m鍜屾寚鏁皀 +* 杩斿洖鍊硷細m^n \***************************************************/ uint32_t NMEA_Pow(uint8_t m,uint8_t n) { - uint32_t result = 1; - while(n--)result *= m; - return result; + uint32_t result = 1; + while(n--)result *= m; + return result; } /***************************************************\ * 鍑芥暟鍚嶇О: NMEA_Str2num -* 鍑芥暟鍔熻兘锛歴tr鏁板瓧杞崲涓猴紙int锛夋暟瀛楋紝浠','鎴栬'*'缁撴潫 -* 杈撳叆鍊硷細buf锛屾暟瀛楀瓨鍌ㄥ尯 -* dx锛屽皬鏁扮偣浣嶆暟锛岃繑鍥炵粰璋冪敤鍑芥暟 -* 杩斿洖鍊硷細杞崲鍚庣殑鏁板 +* 鍑芥暟鍔熻兘锛歴tr鏁板瓧杞崲涓猴紙int锛夋暟瀛楋紝浠','鎴栬'*'缁撴潫 +* 杈撳叆鍊硷細buf锛屾暟瀛楀瓨鍌ㄥ尯 +* dx锛屽皬鏁扮偣浣嶆暟锛岃繑鍥炵粰璋冪敤鍑芥暟 +* 杩斿洖鍊硷細杞崲鍚庣殑鏁板 \***************************************************/ int NMEA_Str2num(uint8_t *buf,uint8_t*dx) { - uint8_t *p = buf; - uint32_t ires = 0,fres = 0; - uint8_t ilen = 0,flen = 0,i; - uint8_t mask = 0; - int res; - while(1) + uint8_t *p = buf; + uint32_t ires = 0,fres = 0; + uint8_t ilen = 0,flen = 0,i; + uint8_t mask = 0; + int res; + while(1) + { + if(*p=='-'){mask |= 0x02;p++;}//璇存槑鏈夎礋鏁 + if(*p==','||*p=='*')break;//閬囧埌缁撴潫绗 + if(*p=='.'){mask |= 0x01;p++;}//閬囧埌灏忔暟鐐 + else if(*p>'9'||(*p<'0'))//鏁板瓧涓嶅湪0鍜9涔嬪唴锛岃鏄庢湁闈炴硶瀛楃 { - if(*p=='-'){mask |= 0x02;p++;}//璇存槑鏈夎礋鏁 - if(*p==','||*p=='*')break;//閬囧埌缁撴潫绗 - if(*p=='.'){mask |= 0x01;p++;}//閬囧埌灏忔暟鐐 - else if(*p>'9'||(*p<'0'))//鏁板瓧涓嶅湪0鍜9涔嬪唴锛岃鏄庢湁闈炴硶瀛楃 - { - ilen = 0; - flen = 0; - break; - } - if(mask&0x01)flen++;//灏忔暟鐐圭殑浣嶆暟 - else ilen++;//str闀垮害鍔犱竴 - p++;//涓嬩竴涓瓧绗 + ilen = 0; + flen = 0; + break; } - if(mask&0x02)buf++;//绉诲埌涓嬩竴浣嶏紝闄ゅ幓璐熷彿 - for(i=0;i5)flen=5;//鏈澶氬彇浜斾綅灏忔暟 - *dx = flen; - for(i=0;i5)flen=5;//鏈澶氬彇浜斾綅灏忔暟 + *dx = flen; + for(i=0;ilatitude_bd=temp/NMEA_Pow(10,dx+2); //寰楀埌掳 - rs=temp%NMEA_Pow(10,dx+2); //寰楀埌' - gpsmsg->latitude_bd=gpsmsg->latitude_bd*NMEA_Pow(10,5)+(rs*NMEA_Pow(10,5-dx))/60;//杞崲涓郝 - } - posx=NMEA_Comma_Pos(p4,4); //鍗楃含杩樻槸鍖楃含 - if(posx!=0XFF)gpsmsg->nshemi_bd=*(p4+posx); - posx=NMEA_Comma_Pos(p4,5); //寰楀埌缁忓害 - if(posx!=0XFF) - { - temp=NMEA_Str2num(p4+posx,&dx); - gpsmsg->longitude_bd=temp/NMEA_Pow(10,dx+2); //寰楀埌掳 - rs=temp%NMEA_Pow(10,dx+2); //寰楀埌' - gpsmsg->longitude_bd=gpsmsg->longitude_bd*NMEA_Pow(10,5)+(rs*NMEA_Pow(10,5-dx))/60;//杞崲涓郝 - } - posx=NMEA_Comma_Pos(p4,6); //涓滅粡杩樻槸瑗跨粡 - if(posx!=0XFF)gpsmsg->ewhemi_bd=*(p4+posx); + uint8_t *p4,dx; + uint8_t posx; + uint32_t temp; + float rs; + p4=(uint8_t*)strstr((const char *)buf,"$GPRMC"); //"$GPRMC",缁忓父鏈&鍜孏PRMC鍒嗗紑鐨勬儏鍐,鏁呭彧鍒ゆ柇GPRMC. + posx=NMEA_Comma_Pos(p4,3); //寰楀埌绾害 + if(posx!=0XFF) + { + temp=NMEA_Str2num(p4+posx,&dx); + gpsmsg->latitude_bd=temp/NMEA_Pow(10,dx+2); //寰楀埌掳 + rs=temp%NMEA_Pow(10,dx+2); //寰楀埌' + gpsmsg->latitude_bd=gpsmsg->latitude_bd*NMEA_Pow(10,5)+(rs*NMEA_Pow(10,5-dx))/60;//杞崲涓郝 + } + posx=NMEA_Comma_Pos(p4,4); //鍗楃含杩樻槸鍖楃含 + if(posx!=0XFF)gpsmsg->nshemi_bd=*(p4+posx); + posx=NMEA_Comma_Pos(p4,5); //寰楀埌缁忓害 + if(posx!=0XFF) + { + temp=NMEA_Str2num(p4+posx,&dx); + gpsmsg->longitude_bd=temp/NMEA_Pow(10,dx+2); //寰楀埌掳 + rs=temp%NMEA_Pow(10,dx+2); //寰楀埌' + gpsmsg->longitude_bd=gpsmsg->longitude_bd*NMEA_Pow(10,5)+(rs*NMEA_Pow(10,5-dx))/60; //杞崲涓郝 + } + posx=NMEA_Comma_Pos(p4,6); //涓滅粡杩樻槸瑗跨粡 + if(posx!=0XFF)gpsmsg->ewhemi_bd=*(p4+posx); } /*************************************************************** @@ -339,39 +338,38 @@ void NMEA_BDS_GPRMC_Analysis(gps_msg *gpsmsg,uint8_t *buf) ***************************************************************/ void E53_ST1_Read_Data(void) { - HAL_UART_Receive_IT(&huart3,gps_uart,1000); - NMEA_BDS_GPRMC_Analysis(&gpsmsg,(uint8_t*)gps_uart); //鍒嗘瀽瀛楃涓 - E53_ST1_Data.Longitude=(float)((float)gpsmsg.longitude_bd/100000); - E53_ST1_Data.Latitude=(float)((float)gpsmsg.latitude_bd/100000); + HAL_UART_Receive_IT(&huart3,gps_uart,1000); + NMEA_BDS_GPRMC_Analysis(&gpsmsg,(uint8_t*)gps_uart); //鍒嗘瀽瀛楃涓 + E53_ST1_Data.Longitude=(float)((float)gpsmsg.longitude_bd/100000); + E53_ST1_Data.Latitude=(float)((float)gpsmsg.latitude_bd/100000); } /*************************************************************** -* 鍑芥暟鍚嶇О: E53SF1_LED_StatusSet -* 璇 鏄: E53SF1寮鍙戞澘涓婄殑LED鐏殑浜伃鎺у埗 +* 鍑芥暟鍚嶇О: E53_ST1_LED_StatusSet +* 璇 鏄: E53 ST1寮鍙戞澘涓婄殑LED鐏殑浜伃鎺у埗 * 鍙 鏁: status,LED鐏殑鐘舵 -* 闈1,鍏崇伅 -* 1,寮鐏 +* 闈1,鍏崇伅 +* 1,寮鐏 * 杩 鍥 鍊: 鏃 ***************************************************************/ void E53_ST1_LED_StatusSet(E53ST1_Status_ENUM status) { - HAL_GPIO_WritePin(ST1_LED_GPIO_Port, ST1_LED_Pin, status != ST1_ON ? GPIO_PIN_RESET : GPIO_PIN_SET ); + HAL_GPIO_WritePin(ST1_LED_GPIO_Port, ST1_LED_Pin, status != ST1_ON ? GPIO_PIN_RESET : GPIO_PIN_SET ); } /*************************************************************** -* 鍑芥暟鍚嶇О: E53SF1_BEEP -* 璇 鏄: E53SF1铚傞福鍣ㄦ姤璀︿笌鍚 +* 鍑芥暟鍚嶇О: E53_ST1_Beep +* 璇 鏄: E53 ST1铚傞福鍣ㄦ姤璀︿笌鍚 * 鍙 鏁: status,LED_ENUM鏋氫妇鐨勬暟鎹 -* LED_OFF,鍏崇伅 -* LED_ON,寮鐏 +* LED_OFF,鍏崇伅 +* LED_ON,寮鐏 * 杩 鍥 鍊: 鏃 ***************************************************************/ void E53_ST1_Beep(E53ST1_Status_ENUM status) { - if(status == ST1_ON) - HAL_TIM_PWM_Start(&htim16,TIM_CHANNEL_1); - if(status == ST1_OFF) - HAL_TIM_PWM_Stop(&htim16,TIM_CHANNEL_1); + if(status == ST1_ON) + HAL_TIM_PWM_Start(&htim16,TIM_CHANNEL_1); + if(status == ST1_OFF) + HAL_TIM_PWM_Stop(&htim16,TIM_CHANNEL_1); } - diff --git a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_ST1/E53_ST1.h b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_ST1/E53_ST1.h index 7a7ef30d..138115ec 100644 --- a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_ST1/E53_ST1.h +++ b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Hardware/E53_ST1/E53_ST1.h @@ -16,13 +16,13 @@ #define ST1_GPS_POW_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() /*************************************************************** -* 鍚 绉: GasStatus_ENUM +* 鍚 绉: E53ST1_Status_ENUM * 璇 鏄庯細鏋氫妇鐘舵佺粨鏋勪綋 ***************************************************************/ typedef enum { - ST1_OFF = 0, - ST1_ON + ST1_OFF = 0, + ST1_ON } E53ST1_Status_ENUM; /***************************************************\ @@ -31,25 +31,25 @@ typedef enum \***************************************************/ __packed typedef struct { - uint32_t latitude_bd; //绾害 鍒嗘墿澶100000鍊嶏紝瀹為檯瑕侀櫎浠100000 - uint8_t nshemi_bd; //鍖楃含/鍗楃含,N:鍖楃含;S:鍗楃含 - uint32_t longitude_bd; //缁忓害 鍒嗘墿澶100000鍊,瀹為檯瑕侀櫎浠100000 - uint8_t ewhemi_bd; //涓滅粡/瑗跨粡,E:涓滅粡;W:瑗跨粡 + uint32_t latitude_bd; //绾害 鍒嗘墿澶100000鍊,瀹為檯瑕侀櫎浠100000 + uint8_t nshemi_bd; //鍖楃含/鍗楃含,N:鍖楃含;S:鍗楃含 + uint32_t longitude_bd; //缁忓害 鍒嗘墿澶100000鍊,瀹為檯瑕侀櫎浠100000 + uint8_t ewhemi_bd; //涓滅粡/瑗跨粡,E:涓滅粡;W:瑗跨粡 }gps_msg; /* E53_ST1浼犳劅鍣ㄦ暟鎹被鍨嬪畾涔 ------------------------------------------------------------*/ typedef struct { - float Longitude; //缁忓害 - float Latitude; //绾害 + float Longitude; //缁忓害 + float Latitude; //绾害 } E53_ST1_Data_TypeDef; extern E53_ST1_Data_TypeDef E53_ST1_Data; typedef struct { - char Longitude[9]; //缁忓害 - char Latitude[8]; //绾害 + char Longitude[9]; //缁忓害 + char Latitude[8]; //绾害 } E53_ST1_Send_TypeDef; extern E53_ST1_Send_TypeDef E53_ST1_Send; @@ -62,9 +62,5 @@ void E53_ST1_Read_Data(void); void E53_ST1_LED_StatusSet(E53ST1_Status_ENUM status); void E53_ST1_Beep(E53ST1_Status_ENUM status); -#endif - - - - +#endif /* __E53_ST1_H__ */ diff --git a/devices/l610_tencent_firmware/mqtt_iot_explorer_tc_demo.c b/devices/l610_tencent_firmware/mqtt_iot_explorer_tc_demo.c index b1978658..5001a8b2 100644 --- a/devices/l610_tencent_firmware/mqtt_iot_explorer_tc_demo.c +++ b/devices/l610_tencent_firmware/mqtt_iot_explorer_tc_demo.c @@ -66,7 +66,7 @@ void mqtt_demo_task(void) printf("MQTT: %s\n", state == MQTT_STATE_CONNECTED ? "CONNECTED" : "DISCONNECTED"); } - /* 开始订阅topic */ + /* 驴陋脢录露漏脭脛topic */ size = snprintf(report_reply_topic_name, TOPIC_NAME_MAX_SIZE, "$thing/down/property/%s/%s", product_id, device_name); if (size < 0 || size > sizeof(report_reply_topic_name) - 1) { @@ -78,7 +78,7 @@ void mqtt_demo_task(void) printf("module mqtt sub success\n"); } - memset(report_topic_name, sizeof(report_topic_name), 0); + memset(report_topic_name, 0, sizeof(report_topic_name)); size = snprintf(report_topic_name, TOPIC_NAME_MAX_SIZE, "$thing/up/property/%s/%s", product_id, device_name); if (size < 0 || size > sizeof(report_topic_name) - 1) { @@ -88,7 +88,7 @@ void mqtt_demo_task(void) while (1) { - /* 上报值 */ + /* 脡脧卤篓脰碌 */ memset(payload, 0, sizeof(payload)); snprintf(payload, sizeof(payload), REPORT_DATA_TEMPLATE, 30);