添加红外避障模块

This commit is contained in:
EN 2024-07-16 20:06:16 +08:00
parent ad06576a5a
commit 3f95b59ed3
9 changed files with 230 additions and 46 deletions

89
CAR.ioc
View File

@ -20,49 +20,54 @@ Mcu.CPN=STM32F103C8T6
Mcu.Family=STM32F1 Mcu.Family=STM32F1
Mcu.IP0=DMA Mcu.IP0=DMA
Mcu.IP1=I2C2 Mcu.IP1=I2C2
Mcu.IP10=USART2
Mcu.IP2=NVIC Mcu.IP2=NVIC
Mcu.IP3=RCC Mcu.IP3=RCC
Mcu.IP4=SYS Mcu.IP4=SYS
Mcu.IP5=TIM2 Mcu.IP5=TIM1
Mcu.IP6=TIM3 Mcu.IP6=TIM2
Mcu.IP7=TIM4 Mcu.IP7=TIM3
Mcu.IP8=USART1 Mcu.IP8=TIM4
Mcu.IP9=USART2 Mcu.IP9=USART1
Mcu.IPNb=10 Mcu.IPNb=11
Mcu.Name=STM32F103C(8-B)Tx Mcu.Name=STM32F103C(8-B)Tx
Mcu.Package=LQFP48 Mcu.Package=LQFP48
Mcu.Pin0=PC13-TAMPER-RTC Mcu.Pin0=PC13-TAMPER-RTC
Mcu.Pin1=PC14-OSC32_IN Mcu.Pin1=PC14-OSC32_IN
Mcu.Pin10=PB0 Mcu.Pin10=PA6
Mcu.Pin11=PB1 Mcu.Pin11=PA7
Mcu.Pin12=PB10 Mcu.Pin12=PB0
Mcu.Pin13=PB11 Mcu.Pin13=PB1
Mcu.Pin14=PB12 Mcu.Pin14=PB10
Mcu.Pin15=PA9 Mcu.Pin15=PB11
Mcu.Pin16=PA10 Mcu.Pin16=PB12
Mcu.Pin17=PA12 Mcu.Pin17=PA9
Mcu.Pin18=PA13 Mcu.Pin18=PA10
Mcu.Pin19=PA14 Mcu.Pin19=PA11
Mcu.Pin2=PC15-OSC32_OUT Mcu.Pin2=PC15-OSC32_OUT
Mcu.Pin20=PA15 Mcu.Pin20=PA12
Mcu.Pin21=PB4 Mcu.Pin21=PA13
Mcu.Pin22=PB5 Mcu.Pin22=PA14
Mcu.Pin23=PB6 Mcu.Pin23=PA15
Mcu.Pin24=PB7 Mcu.Pin24=PB4
Mcu.Pin25=PB8 Mcu.Pin25=PB5
Mcu.Pin26=PB9 Mcu.Pin26=PB6
Mcu.Pin27=VP_SYS_VS_Systick Mcu.Pin27=PB7
Mcu.Pin28=VP_TIM2_VS_ClockSourceINT Mcu.Pin28=PB8
Mcu.Pin29=VP_TIM3_VS_ClockSourceINT Mcu.Pin29=PB9
Mcu.Pin3=PD0-OSC_IN Mcu.Pin3=PD0-OSC_IN
Mcu.Pin30=VP_TIM4_VS_ClockSourceINT Mcu.Pin30=VP_SYS_VS_Systick
Mcu.Pin31=VP_TIM1_VS_ClockSourceINT
Mcu.Pin32=VP_TIM2_VS_ClockSourceINT
Mcu.Pin33=VP_TIM3_VS_ClockSourceINT
Mcu.Pin34=VP_TIM4_VS_ClockSourceINT
Mcu.Pin4=PD1-OSC_OUT Mcu.Pin4=PD1-OSC_OUT
Mcu.Pin5=PA0-WKUP Mcu.Pin5=PA0-WKUP
Mcu.Pin6=PA1 Mcu.Pin6=PA1
Mcu.Pin7=PA2 Mcu.Pin7=PA2
Mcu.Pin8=PA3 Mcu.Pin8=PA3
Mcu.Pin9=PA7 Mcu.Pin9=PA4
Mcu.PinsNb=31 Mcu.PinsNb=35
Mcu.ThirdPartyNb=0 Mcu.ThirdPartyNb=0
Mcu.UserConstants= Mcu.UserConstants=
Mcu.UserName=STM32F103C8Tx Mcu.UserName=STM32F103C8Tx
@ -96,8 +101,12 @@ PA1.PinState=GPIO_PIN_SET
PA1.Signal=GPIO_Output PA1.Signal=GPIO_Output
PA10.Mode=Asynchronous PA10.Mode=Asynchronous
PA10.Signal=USART1_RX PA10.Signal=USART1_RX
PA11.GPIOParameters=GPIO_Label
PA11.GPIO_Label=SERVO
PA11.Locked=true
PA11.Signal=S_TIM1_CH4
PA12.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI PA12.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
PA12.GPIO_Label=Echo PA12.GPIO_Label=ECHO
PA12.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING PA12.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
PA12.GPIO_PuPd=GPIO_PULLDOWN PA12.GPIO_PuPd=GPIO_PULLDOWN
PA12.Locked=true PA12.Locked=true
@ -107,7 +116,7 @@ PA13.Signal=SYS_JTMS-SWDIO
PA14.Mode=Serial_Wire PA14.Mode=Serial_Wire
PA14.Signal=SYS_JTCK-SWCLK PA14.Signal=SYS_JTCK-SWCLK
PA15.GPIOParameters=GPIO_Speed,GPIO_Label PA15.GPIOParameters=GPIO_Speed,GPIO_Label
PA15.GPIO_Label=Trig PA15.GPIO_Label=TRIG
PA15.GPIO_Speed=GPIO_SPEED_FREQ_HIGH PA15.GPIO_Speed=GPIO_SPEED_FREQ_HIGH
PA15.Locked=true PA15.Locked=true
PA15.Signal=GPIO_Output PA15.Signal=GPIO_Output
@ -115,6 +124,14 @@ PA2.Mode=Asynchronous
PA2.Signal=USART2_TX PA2.Signal=USART2_TX
PA3.Mode=Asynchronous PA3.Mode=Asynchronous
PA3.Signal=USART2_RX PA3.Signal=USART2_RX
PA4.GPIOParameters=GPIO_Label
PA4.GPIO_Label=HWR
PA4.Locked=true
PA4.Signal=GPIO_Input
PA6.GPIOParameters=GPIO_Label
PA6.GPIO_Label=HWL
PA6.Locked=true
PA6.Signal=GPIO_Input
PA7.GPIOParameters=GPIO_Label PA7.GPIOParameters=GPIO_Label
PA7.GPIO_Label=LED_B_TIM3CH2 PA7.GPIO_Label=LED_B_TIM3CH2
PA7.Locked=true PA7.Locked=true
@ -217,7 +234,7 @@ ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath= ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath= ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=false ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_I2C2_Init-I2C2-false-HAL-true,5-MX_TIM2_Init-TIM2-false-HAL-true,6-MX_TIM3_Init-TIM3-false-HAL-true,7-MX_TIM4_Init-TIM4-false-HAL-true,8-MX_USART1_UART_Init-USART1-false-HAL-true,9-MX_USART2_UART_Init-USART2-false-HAL-true ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_I2C2_Init-I2C2-false-HAL-true,5-MX_TIM1_Init-TIM1-false-HAL-true,6-MX_TIM2_Init-TIM2-false-HAL-true,7-MX_TIM3_Init-TIM3-false-HAL-true,8-MX_TIM4_Init-TIM4-false-HAL-true,9-MX_USART1_UART_Init-USART1-false-HAL-true,10-MX_USART2_UART_Init-USART2-false-HAL-true
RCC.ADCFreqValue=36000000 RCC.ADCFreqValue=36000000
RCC.AHBFreq_Value=72000000 RCC.AHBFreq_Value=72000000
RCC.APB1CLKDivider=RCC_HCLK_DIV2 RCC.APB1CLKDivider=RCC_HCLK_DIV2
@ -241,6 +258,8 @@ RCC.USBFreq_Value=72000000
RCC.VCOOutput2Freq_Value=8000000 RCC.VCOOutput2Freq_Value=8000000
SH.GPXTI12.0=GPIO_EXTI12 SH.GPXTI12.0=GPIO_EXTI12
SH.GPXTI12.ConfNb=1 SH.GPXTI12.ConfNb=1
SH.S_TIM1_CH4.0=TIM1_CH4,PWM Generation4 CH4
SH.S_TIM1_CH4.ConfNb=1
SH.S_TIM3_CH2.0=TIM3_CH2,PWM Generation2 CH2 SH.S_TIM3_CH2.0=TIM3_CH2,PWM Generation2 CH2
SH.S_TIM3_CH2.ConfNb=1 SH.S_TIM3_CH2.ConfNb=1
SH.S_TIM3_CH3.0=TIM3_CH3,PWM Generation3 CH3 SH.S_TIM3_CH3.0=TIM3_CH3,PWM Generation3 CH3
@ -251,6 +270,10 @@ SH.S_TIM4_CH1.0=TIM4_CH1,PWM Generation1 CH1
SH.S_TIM4_CH1.ConfNb=1 SH.S_TIM4_CH1.ConfNb=1
SH.S_TIM4_CH2.0=TIM4_CH2,PWM Generation2 CH2 SH.S_TIM4_CH2.0=TIM4_CH2,PWM Generation2 CH2
SH.S_TIM4_CH2.ConfNb=1 SH.S_TIM4_CH2.ConfNb=1
TIM1.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4
TIM1.IPParameters=Prescaler,Period,Channel-PWM Generation4 CH4
TIM1.Period=20000 - 1
TIM1.Prescaler=72 - 1
TIM2.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_DISABLE TIM2.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_DISABLE
TIM2.IPParameters=Prescaler,Period,AutoReloadPreload TIM2.IPParameters=Prescaler,Period,AutoReloadPreload
TIM2.Period=72 - 1 TIM2.Period=72 - 1
@ -282,6 +305,8 @@ USART2.IPParameters=VirtualMode,BaudRate
USART2.VirtualMode=VM_ASYNC USART2.VirtualMode=VM_ASYNC
VP_SYS_VS_Systick.Mode=SysTick VP_SYS_VS_Systick.Mode=SysTick
VP_SYS_VS_Systick.Signal=SYS_VS_Systick VP_SYS_VS_Systick.Signal=SYS_VS_Systick
VP_TIM1_VS_ClockSourceINT.Mode=Internal
VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT
VP_TIM2_VS_ClockSourceINT.Mode=Internal VP_TIM2_VS_ClockSourceINT.Mode=Internal
VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT
VP_TIM3_VS_ClockSourceINT.Mode=Internal VP_TIM3_VS_ClockSourceINT.Mode=Internal

View File

@ -67,6 +67,10 @@ void Error_Handler(void);
#define FM_K2_POWERC_GPIO_Port GPIOA #define FM_K2_POWERC_GPIO_Port GPIOA
#define FAN_GS_Pin GPIO_PIN_1 #define FAN_GS_Pin GPIO_PIN_1
#define FAN_GS_GPIO_Port GPIOA #define FAN_GS_GPIO_Port GPIOA
#define HWR_Pin GPIO_PIN_4
#define HWR_GPIO_Port GPIOA
#define HWL_Pin GPIO_PIN_6
#define HWL_GPIO_Port GPIOA
#define LED_B_TIM3CH2_Pin GPIO_PIN_7 #define LED_B_TIM3CH2_Pin GPIO_PIN_7
#define LED_B_TIM3CH2_GPIO_Port GPIOA #define LED_B_TIM3CH2_GPIO_Port GPIOA
#define LED_G_TIM3CH3_Pin GPIO_PIN_0 #define LED_G_TIM3CH3_Pin GPIO_PIN_0
@ -79,11 +83,13 @@ void Error_Handler(void);
#define MPU6050_SDA_GPIO_Port GPIOB #define MPU6050_SDA_GPIO_Port GPIOB
#define LineSeek_R2_Pin GPIO_PIN_12 #define LineSeek_R2_Pin GPIO_PIN_12
#define LineSeek_R2_GPIO_Port GPIOB #define LineSeek_R2_GPIO_Port GPIOB
#define Echo_Pin GPIO_PIN_12 #define SERVO_Pin GPIO_PIN_11
#define Echo_GPIO_Port GPIOA #define SERVO_GPIO_Port GPIOA
#define Echo_EXTI_IRQn EXTI15_10_IRQn #define ECHO_Pin GPIO_PIN_12
#define Trig_Pin GPIO_PIN_15 #define ECHO_GPIO_Port GPIOA
#define Trig_GPIO_Port GPIOA #define ECHO_EXTI_IRQn EXTI15_10_IRQn
#define TRIG_Pin GPIO_PIN_15
#define TRIG_GPIO_Port GPIOA
#define R_FORWARD_Pin GPIO_PIN_4 #define R_FORWARD_Pin GPIO_PIN_4
#define R_FORWARD_GPIO_Port GPIOB #define R_FORWARD_GPIO_Port GPIOB
#define R_BACKWARD_Pin GPIO_PIN_5 #define R_BACKWARD_Pin GPIO_PIN_5

View File

@ -32,6 +32,8 @@ extern "C" {
/* USER CODE END Includes */ /* USER CODE END Includes */
extern TIM_HandleTypeDef htim1;
extern TIM_HandleTypeDef htim2; extern TIM_HandleTypeDef htim2;
extern TIM_HandleTypeDef htim3; extern TIM_HandleTypeDef htim3;
@ -42,6 +44,7 @@ extern TIM_HandleTypeDef htim4;
/* USER CODE END Private defines */ /* USER CODE END Private defines */
void MX_TIM1_Init(void);
void MX_TIM2_Init(void); void MX_TIM2_Init(void);
void MX_TIM3_Init(void); void MX_TIM3_Init(void);
void MX_TIM4_Init(void); void MX_TIM4_Init(void);

View File

@ -54,7 +54,7 @@ void MX_GPIO_Init(void)
HAL_GPIO_WritePin(GPIOA, FM_K2_POWERC_Pin|FAN_GS_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOA, FM_K2_POWERC_Pin|FAN_GS_Pin, GPIO_PIN_SET);
/*Configure GPIO pin Output Level */ /*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(Trig_GPIO_Port, Trig_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(TRIG_GPIO_Port, TRIG_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */ /*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, R_FORWARD_Pin|R_BACKWARD_Pin|L_BACKWARD_Pin|L_FORWARD_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOB, R_FORWARD_Pin|R_BACKWARD_Pin|L_BACKWARD_Pin|L_FORWARD_Pin, GPIO_PIN_RESET);
@ -72,6 +72,12 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pins : PAPin PAPin */
GPIO_InitStruct.Pin = HWR_Pin|HWL_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */ /*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = LineSeek_R2_Pin; GPIO_InitStruct.Pin = LineSeek_R2_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
@ -79,17 +85,17 @@ void MX_GPIO_Init(void)
HAL_GPIO_Init(LineSeek_R2_GPIO_Port, &GPIO_InitStruct); HAL_GPIO_Init(LineSeek_R2_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */ /*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = Echo_Pin; GPIO_InitStruct.Pin = ECHO_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING;
GPIO_InitStruct.Pull = GPIO_PULLDOWN; GPIO_InitStruct.Pull = GPIO_PULLDOWN;
HAL_GPIO_Init(Echo_GPIO_Port, &GPIO_InitStruct); HAL_GPIO_Init(ECHO_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */ /*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = Trig_Pin; GPIO_InitStruct.Pin = TRIG_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(Trig_GPIO_Port, &GPIO_InitStruct); HAL_GPIO_Init(TRIG_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pins : PBPin PBPin PBPin PBPin */ /*Configure GPIO pins : PBPin PBPin PBPin PBPin */
GPIO_InitStruct.Pin = R_FORWARD_Pin|R_BACKWARD_Pin|L_BACKWARD_Pin|L_FORWARD_Pin; GPIO_InitStruct.Pin = R_FORWARD_Pin|R_BACKWARD_Pin|L_BACKWARD_Pin|L_FORWARD_Pin;

View File

@ -97,6 +97,7 @@ int main(void)
MX_GPIO_Init(); MX_GPIO_Init();
MX_DMA_Init(); MX_DMA_Init();
MX_I2C2_Init(); MX_I2C2_Init();
MX_TIM1_Init();
MX_TIM2_Init(); MX_TIM2_Init();
MX_TIM3_Init(); MX_TIM3_Init();
MX_TIM4_Init(); MX_TIM4_Init();

View File

@ -265,7 +265,7 @@ void EXTI15_10_IRQHandler(void)
/* USER CODE BEGIN EXTI15_10_IRQn 0 */ /* USER CODE BEGIN EXTI15_10_IRQn 0 */
/* USER CODE END EXTI15_10_IRQn 0 */ /* USER CODE END EXTI15_10_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(Echo_Pin); HAL_GPIO_EXTI_IRQHandler(ECHO_Pin);
/* USER CODE BEGIN EXTI15_10_IRQn 1 */ /* USER CODE BEGIN EXTI15_10_IRQn 1 */
/* USER CODE END EXTI15_10_IRQn 1 */ /* USER CODE END EXTI15_10_IRQn 1 */

View File

@ -24,10 +24,80 @@
/* USER CODE END 0 */ /* USER CODE END 0 */
TIM_HandleTypeDef htim1;
TIM_HandleTypeDef htim2; TIM_HandleTypeDef htim2;
TIM_HandleTypeDef htim3; TIM_HandleTypeDef htim3;
TIM_HandleTypeDef htim4; TIM_HandleTypeDef htim4;
/* TIM1 init function */
void MX_TIM1_Init(void)
{
/* USER CODE BEGIN TIM1_Init 0 */
/* USER CODE END TIM1_Init 0 */
TIM_ClockConfigTypeDef sClockSourceConfig = {0};
TIM_MasterConfigTypeDef sMasterConfig = {0};
TIM_OC_InitTypeDef sConfigOC = {0};
TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0};
/* USER CODE BEGIN TIM1_Init 1 */
/* USER CODE END TIM1_Init 1 */
htim1.Instance = TIM1;
htim1.Init.Prescaler = 72 - 1;
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
htim1.Init.Period = 20000 - 1;
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim1.Init.RepetitionCounter = 0;
htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
{
Error_Handler();
}
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
{
Error_Handler();
}
if (HAL_TIM_PWM_Init(&htim1) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 0;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_4) != 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.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM1_Init 2 */
/* USER CODE END TIM1_Init 2 */
HAL_TIM_MspPostInit(&htim1);
}
/* TIM2 init function */ /* TIM2 init function */
void MX_TIM2_Init(void) void MX_TIM2_Init(void)
{ {
@ -192,7 +262,18 @@ void MX_TIM4_Init(void)
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
{ {
if(tim_baseHandle->Instance==TIM2) if(tim_baseHandle->Instance==TIM1)
{
/* USER CODE BEGIN TIM1_MspInit 0 */
/* USER CODE END TIM1_MspInit 0 */
/* TIM1 clock enable */
__HAL_RCC_TIM1_CLK_ENABLE();
/* USER CODE BEGIN TIM1_MspInit 1 */
/* USER CODE END TIM1_MspInit 1 */
}
else if(tim_baseHandle->Instance==TIM2)
{ {
/* USER CODE BEGIN TIM2_MspInit 0 */ /* USER CODE BEGIN TIM2_MspInit 0 */
@ -234,11 +315,30 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
{ {
GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitTypeDef GPIO_InitStruct = {0};
if(timHandle->Instance==TIM3) if(timHandle->Instance==TIM1)
{
/* USER CODE BEGIN TIM1_MspPostInit 0 */
/* USER CODE END TIM1_MspPostInit 0 */
__HAL_RCC_GPIOA_CLK_ENABLE();
/**TIM1 GPIO Configuration
PA11 ------> TIM1_CH4
*/
GPIO_InitStruct.Pin = SERVO_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(SERVO_GPIO_Port, &GPIO_InitStruct);
/* USER CODE BEGIN TIM1_MspPostInit 1 */
/* USER CODE END TIM1_MspPostInit 1 */
}
else if(timHandle->Instance==TIM3)
{ {
/* USER CODE BEGIN TIM3_MspPostInit 0 */ /* USER CODE BEGIN TIM3_MspPostInit 0 */
/* USER CODE END TIM3_MspPostInit 0 */ /* USER CODE END TIM3_MspPostInit 0 */
__HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE();
/**TIM3 GPIO Configuration /**TIM3 GPIO Configuration
@ -286,7 +386,18 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
{ {
if(tim_baseHandle->Instance==TIM2) if(tim_baseHandle->Instance==TIM1)
{
/* USER CODE BEGIN TIM1_MspDeInit 0 */
/* USER CODE END TIM1_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM1_CLK_DISABLE();
/* USER CODE BEGIN TIM1_MspDeInit 1 */
/* USER CODE END TIM1_MspDeInit 1 */
}
else if(tim_baseHandle->Instance==TIM2)
{ {
/* USER CODE BEGIN TIM2_MspDeInit 0 */ /* USER CODE BEGIN TIM2_MspDeInit 0 */

21
Peripheral/Inc/infrared.h Normal file
View File

@ -0,0 +1,21 @@
#ifndef __INFRARED_H
#define __INFRARED_H
// 红外避障模块
#include "main.h"
// 有障碍
#define INFRARED_MEET 0
// 无障碍
#define INFRARED_NONE 1
/// @brief 红外模块检测左前方20-30厘米估计值是否有障碍
/// @return 有障碍INFRARED_MEET 无障碍INFRARED_NONE
uint8_t INFRARED_GetL();
/// @brief 红外模块检测右前方20-30厘米估计值是否有障碍
/// @return 有障碍INFRARED_MEET 无障碍INFRARED_NONE
uint8_t INFRARED_GetR();
#endif

11
Peripheral/Src/infrared.c Normal file
View File

@ -0,0 +1,11 @@
#include "infrared.h"
inline uint8_t INFRARED_GetL()
{
return HAL_GPIO_ReadPin(HWL_GPIO_Port, HWL_Pin);
}
inline uint8_t INFRARED_GetR()
{
return HAL_GPIO_ReadPin(HWR_GPIO_Port, HWR_Pin);
}