---vl6180dr

This commit is contained in:
Mysteo91
2023-07-31 17:06:17 +03:00
parent bbe0faf31d
commit 0934ae33ff
9 changed files with 217 additions and 36 deletions

View File

@@ -61,8 +61,6 @@ void Error_Handler(void);
#define GPIO_RESET_Pin GPIO_PIN_1
#define GPIO_RESET_GPIO_Port GPIOA
#define GPIO_RESET_EXTI_IRQn EXTI0_1_IRQn
#define LIGHTING_EN_Pin GPIO_PIN_4
#define LIGHTING_EN_GPIO_Port GPIOA
#define READER_EN_Pin GPIO_PIN_5
#define READER_EN_GPIO_Port GPIOA
#define CS_PROXIMITY_Pin GPIO_PIN_8

View File

@@ -53,6 +53,7 @@ void SVC_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);
void EXTI0_1_IRQHandler(void);
void TIM16_IRQHandler(void);
void USART1_IRQHandler(void);
void USART2_IRQHandler(void);
/* USER CODE BEGIN EFP */

View File

@@ -32,13 +32,19 @@ extern "C" {
/* USER CODE END Includes */
extern TIM_HandleTypeDef htim3;
extern TIM_HandleTypeDef htimZummer;
extern TIM_HandleTypeDef htimLighitng;
extern TIM_HandleTypeDef htimSecTimer;
/* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */
void MX_TIM3_Init(void);
void MX_TIM14_Init(void);
void MX_TIM16_Init(void);
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);

View File

@@ -50,7 +50,7 @@ void MX_GPIO_Init(void)
__HAL_RCC_GPIOB_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOA, LIGHTING_EN_Pin|READER_EN_Pin|CS_PROXIMITY_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOA, READER_EN_Pin|CS_PROXIMITY_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin : PA0 */
GPIO_InitStruct.Pin = GPIO_PIN_0;
@@ -64,8 +64,8 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIO_RESET_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pins : PAPin PAPin PAPin */
GPIO_InitStruct.Pin = LIGHTING_EN_Pin|READER_EN_Pin|CS_PROXIMITY_Pin;
/*Configure GPIO pins : PAPin PAPin */
GPIO_InitStruct.Pin = READER_EN_Pin|CS_PROXIMITY_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
@@ -74,7 +74,7 @@ void MX_GPIO_Init(void)
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = CONTROL_PIN_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
HAL_GPIO_Init(CONTROL_PIN_GPIO_Port, &GPIO_InitStruct);
/* EXTI interrupt init*/

View File

@@ -110,6 +110,8 @@ int main(void) {
MX_GPIO_Init();
MX_I2C2_Init();
MX_TIM3_Init();
MX_TIM14_Init();
MX_TIM16_Init();
/* USER CODE BEGIN 2 */
/* Initialize the user program application. */
AppInit();

View File

@@ -56,6 +56,7 @@
/* USER CODE END 0 */
/* External variables --------------------------------------------------------*/
extern TIM_HandleTypeDef htimSecTimer;
/* USER CODE BEGIN EV */
@@ -154,10 +155,23 @@ void EXTI0_1_IRQHandler(void)
/* USER CODE END EXTI0_1_IRQn 1 */
}
/**
* @brief This function handles TIM16 global interrupt.
*/
void TIM16_IRQHandler(void)
{
/* USER CODE BEGIN TIM16_IRQn 0 */
/* USER CODE END TIM16_IRQn 0 */
HAL_TIM_IRQHandler(&htimSecTimer);
/* USER CODE BEGIN TIM16_IRQn 1 */
/* USER CODE END TIM16_IRQn 1 */
}
/**
* @brief This function handles USART1 global interrupt / USART1 wake-up interrupt through EXTI line 25.
*/
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */

View File

@@ -24,7 +24,9 @@
/* USER CODE END 0 */
TIM_HandleTypeDef htim3;
TIM_HandleTypeDef htimZummer;
TIM_HandleTypeDef htimLighitng;
TIM_HandleTypeDef htimSecTimer;
/* TIM3 init function */
void MX_TIM3_Init(void)
@@ -41,28 +43,28 @@ void MX_TIM3_Init(void)
/* USER CODE BEGIN TIM3_Init 1 */
/* USER CODE END TIM3_Init 1 */
htim3.Instance = TIM3;
htim3.Init.Prescaler = 0;
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
htim3.Init.Period = 21332;
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim3) != HAL_OK)
htimZummer.Instance = TIM3;
htimZummer.Init.Prescaler = 0;
htimZummer.Init.CounterMode = TIM_COUNTERMODE_UP;
htimZummer.Init.Period = 21332;
htimZummer.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htimZummer.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htimZummer) != HAL_OK)
{
Error_Handler();
}
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK)
if (HAL_TIM_ConfigClockSource(&htimZummer, &sClockSourceConfig) != HAL_OK)
{
Error_Handler();
}
if (HAL_TIM_PWM_Init(&htim3) != HAL_OK)
if (HAL_TIM_PWM_Init(&htimZummer) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
if (HAL_TIMEx_MasterConfigSynchronization(&htimZummer, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
@@ -70,14 +72,82 @@ void MX_TIM3_Init(void)
sConfigOC.Pulse = 10616;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
if (HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
if (HAL_TIM_PWM_ConfigChannel(&htimZummer, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM3_Init 2 */
/* USER CODE END TIM3_Init 2 */
HAL_TIM_MspPostInit(&htim3);
HAL_TIM_MspPostInit(&htimZummer);
}
/* TIM14 init function */
void MX_TIM14_Init(void)
{
/* USER CODE BEGIN TIM14_Init 0 */
/* USER CODE END TIM14_Init 0 */
TIM_OC_InitTypeDef sConfigOC = {0};
/* USER CODE BEGIN TIM14_Init 1 */
/* USER CODE END TIM14_Init 1 */
htimLighitng.Instance = TIM14;
htimLighitng.Init.Prescaler = 1;
htimLighitng.Init.CounterMode = TIM_COUNTERMODE_UP;
htimLighitng.Init.Period = 63999;
htimLighitng.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htimLighitng.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htimLighitng) != HAL_OK)
{
Error_Handler();
}
if (HAL_TIM_PWM_Init(&htimLighitng) != HAL_OK)
{
Error_Handler();
}
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 32000;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
if (HAL_TIM_PWM_ConfigChannel(&htimLighitng, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM14_Init 2 */
/* USER CODE END TIM14_Init 2 */
HAL_TIM_MspPostInit(&htimLighitng);
}
/* TIM16 init function */
void MX_TIM16_Init(void)
{
/* USER CODE BEGIN TIM16_Init 0 */
/* USER CODE END TIM16_Init 0 */
/* USER CODE BEGIN TIM16_Init 1 */
/* USER CODE END TIM16_Init 1 */
htimSecTimer.Instance = TIM16;
htimSecTimer.Init.Prescaler = 999;
htimSecTimer.Init.CounterMode = TIM_COUNTERMODE_UP;
htimSecTimer.Init.Period = 63999;
htimSecTimer.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htimSecTimer.Init.RepetitionCounter = 0;
htimSecTimer.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htimSecTimer) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM16_Init 2 */
/* USER CODE END TIM16_Init 2 */
}
@@ -95,6 +165,32 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
/* USER CODE END TIM3_MspInit 1 */
}
else if(tim_baseHandle->Instance==TIM14)
{
/* USER CODE BEGIN TIM14_MspInit 0 */
/* USER CODE END TIM14_MspInit 0 */
/* TIM14 clock enable */
__HAL_RCC_TIM14_CLK_ENABLE();
/* USER CODE BEGIN TIM14_MspInit 1 */
/* USER CODE END TIM14_MspInit 1 */
}
else 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();
/* TIM16 interrupt Init */
HAL_NVIC_SetPriority(TIM16_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(TIM16_IRQn);
/* USER CODE BEGIN TIM16_MspInit 1 */
/* USER CODE END TIM16_MspInit 1 */
}
}
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
{
@@ -105,7 +201,6 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
/* USER CODE BEGIN TIM3_MspPostInit 0 */
/* USER CODE END TIM3_MspPostInit 0 */
__HAL_RCC_GPIOB_CLK_ENABLE();
/**TIM3 GPIO Configuration
PB5 ------> TIM3_CH2
@@ -121,6 +216,27 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
/* USER CODE END TIM3_MspPostInit 1 */
}
else if(timHandle->Instance==TIM14)
{
/* USER CODE BEGIN TIM14_MspPostInit 0 */
/* USER CODE END TIM14_MspPostInit 0 */
__HAL_RCC_GPIOA_CLK_ENABLE();
/**TIM14 GPIO Configuration
PA4 ------> TIM14_CH1
*/
GPIO_InitStruct.Pin = GPIO_PIN_4;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF4_TIM14;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* USER CODE BEGIN TIM14_MspPostInit 1 */
/* USER CODE END TIM14_MspPostInit 1 */
}
}
@@ -138,6 +254,31 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
/* USER CODE END TIM3_MspDeInit 1 */
}
else if(tim_baseHandle->Instance==TIM14)
{
/* USER CODE BEGIN TIM14_MspDeInit 0 */
/* USER CODE END TIM14_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM14_CLK_DISABLE();
/* USER CODE BEGIN TIM14_MspDeInit 1 */
/* USER CODE END TIM14_MspDeInit 1 */
}
else if(tim_baseHandle->Instance==TIM16)
{
/* USER CODE BEGIN TIM16_MspDeInit 0 */
/* USER CODE END TIM16_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM16_CLK_DISABLE();
/* TIM16 interrupt Deinit */
HAL_NVIC_DisableIRQ(TIM16_IRQn);
/* USER CODE BEGIN TIM16_MspDeInit 1 */
/* USER CODE END TIM16_MspDeInit 1 */
}
}
/* USER CODE BEGIN 1 */