---vl6180dr
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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*/
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -14,9 +14,11 @@ Mcu.IP1=NVIC
|
||||
Mcu.IP2=RCC
|
||||
Mcu.IP3=SYS
|
||||
Mcu.IP4=TIM3
|
||||
Mcu.IP5=USART1
|
||||
Mcu.IP6=USART2
|
||||
Mcu.IPNb=7
|
||||
Mcu.IP5=TIM14
|
||||
Mcu.IP6=TIM16
|
||||
Mcu.IP7=USART1
|
||||
Mcu.IP8=USART2
|
||||
Mcu.IPNb=9
|
||||
Mcu.Name=STM32G070CBTx
|
||||
Mcu.Package=LQFP48
|
||||
Mcu.Pin0=PF0-OSC_IN (PF0)
|
||||
@@ -32,6 +34,8 @@ Mcu.Pin17=VP_SYS_VS_Systick
|
||||
Mcu.Pin18=VP_SYS_VS_DBSignals
|
||||
Mcu.Pin19=VP_TIM3_VS_ClockSourceINT
|
||||
Mcu.Pin2=PA0
|
||||
Mcu.Pin20=VP_TIM14_VS_ClockSourceINT
|
||||
Mcu.Pin21=VP_TIM16_VS_ClockSourceINT
|
||||
Mcu.Pin3=PA1
|
||||
Mcu.Pin4=PA2
|
||||
Mcu.Pin5=PA3
|
||||
@@ -39,7 +43,7 @@ Mcu.Pin6=PA4
|
||||
Mcu.Pin7=PA5
|
||||
Mcu.Pin8=PA8
|
||||
Mcu.Pin9=PA11 [PA9]
|
||||
Mcu.PinsNb=20
|
||||
Mcu.PinsNb=22
|
||||
Mcu.ThirdPartyNb=0
|
||||
Mcu.UserConstants=
|
||||
Mcu.UserName=STM32G070CBTx
|
||||
@@ -52,6 +56,7 @@ NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
NVIC.SVC_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true
|
||||
NVIC.SysTick_IRQn=true\:3\:0\:false\:false\:true\:false\:true\:false
|
||||
NVIC.TIM16_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
|
||||
NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
|
||||
NVIC.USART2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
|
||||
PA0.Locked=true
|
||||
@@ -76,10 +81,8 @@ PA2.Mode=Asynchronous
|
||||
PA2.Signal=USART2_TX
|
||||
PA3.Mode=Asynchronous
|
||||
PA3.Signal=USART2_RX
|
||||
PA4.GPIOParameters=GPIO_Label
|
||||
PA4.GPIO_Label=LIGHTING_EN
|
||||
PA4.Locked=true
|
||||
PA4.Signal=GPIO_Output
|
||||
PA4.Signal=S_TIM14_CH1
|
||||
PA5.GPIOParameters=GPIO_Label
|
||||
PA5.GPIO_Label=READER_EN
|
||||
PA5.Locked=true
|
||||
@@ -167,8 +170,18 @@ SH.GPXTI0.0=GPIO_EXTI0
|
||||
SH.GPXTI0.ConfNb=1
|
||||
SH.GPXTI1.0=GPIO_EXTI1
|
||||
SH.GPXTI1.ConfNb=1
|
||||
SH.S_TIM14_CH1.0=TIM14_CH1,PWM Generation1 CH1
|
||||
SH.S_TIM14_CH1.ConfNb=1
|
||||
SH.S_TIM3_CH2.0=TIM3_CH2,PWM Generation2 CH2
|
||||
SH.S_TIM3_CH2.ConfNb=1
|
||||
TIM14.Channel=TIM_CHANNEL_1
|
||||
TIM14.IPParameters=Channel,Period,Pulse,Prescaler
|
||||
TIM14.Period=63999
|
||||
TIM14.Prescaler=1
|
||||
TIM14.Pulse=32000
|
||||
TIM16.IPParameters=Prescaler,Period
|
||||
TIM16.Period=63999
|
||||
TIM16.Prescaler=999
|
||||
TIM3.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
|
||||
TIM3.IPParameters=Channel-PWM Generation2 CH2,Period,Pulse-PWM Generation2 CH2
|
||||
TIM3.Period=21332
|
||||
@@ -184,6 +197,10 @@ VP_SYS_VS_DBSignals.Mode=DisableDeadBatterySignals
|
||||
VP_SYS_VS_DBSignals.Signal=SYS_VS_DBSignals
|
||||
VP_SYS_VS_Systick.Mode=SysTick
|
||||
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
|
||||
VP_TIM14_VS_ClockSourceINT.Mode=Enable_Timer
|
||||
VP_TIM14_VS_ClockSourceINT.Signal=TIM14_VS_ClockSourceINT
|
||||
VP_TIM16_VS_ClockSourceINT.Mode=Enable_Timer
|
||||
VP_TIM16_VS_ClockSourceINT.Signal=TIM16_VS_ClockSourceINT
|
||||
VP_TIM3_VS_ClockSourceINT.Mode=Internal
|
||||
VP_TIM3_VS_ClockSourceINT.Signal=TIM3_VS_ClockSourceINT
|
||||
board=custom
|
||||
|
||||
Reference in New Issue
Block a user