From 3f95b59ed3126955421b3077a6dcc9ce5ed53dc6 Mon Sep 17 00:00:00 2001 From: EN Date: Tue, 16 Jul 2024 20:06:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BA=A2=E5=A4=96=E9=81=BF?= =?UTF-8?q?=E9=9A=9C=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CAR.ioc | 89 ++++++++++++++++++----------- Core/Inc/main.h | 16 ++++-- Core/Inc/tim.h | 3 + Core/Src/gpio.c | 16 ++++-- Core/Src/main.c | 1 + Core/Src/stm32f1xx_it.c | 2 +- Core/Src/tim.c | 117 +++++++++++++++++++++++++++++++++++++- Peripheral/Inc/infrared.h | 21 +++++++ Peripheral/Src/infrared.c | 11 ++++ 9 files changed, 230 insertions(+), 46 deletions(-) create mode 100644 Peripheral/Inc/infrared.h create mode 100644 Peripheral/Src/infrared.c diff --git a/CAR.ioc b/CAR.ioc index f8e7797..13989ae 100644 --- a/CAR.ioc +++ b/CAR.ioc @@ -20,49 +20,54 @@ Mcu.CPN=STM32F103C8T6 Mcu.Family=STM32F1 Mcu.IP0=DMA Mcu.IP1=I2C2 +Mcu.IP10=USART2 Mcu.IP2=NVIC Mcu.IP3=RCC Mcu.IP4=SYS -Mcu.IP5=TIM2 -Mcu.IP6=TIM3 -Mcu.IP7=TIM4 -Mcu.IP8=USART1 -Mcu.IP9=USART2 -Mcu.IPNb=10 +Mcu.IP5=TIM1 +Mcu.IP6=TIM2 +Mcu.IP7=TIM3 +Mcu.IP8=TIM4 +Mcu.IP9=USART1 +Mcu.IPNb=11 Mcu.Name=STM32F103C(8-B)Tx Mcu.Package=LQFP48 Mcu.Pin0=PC13-TAMPER-RTC Mcu.Pin1=PC14-OSC32_IN -Mcu.Pin10=PB0 -Mcu.Pin11=PB1 -Mcu.Pin12=PB10 -Mcu.Pin13=PB11 -Mcu.Pin14=PB12 -Mcu.Pin15=PA9 -Mcu.Pin16=PA10 -Mcu.Pin17=PA12 -Mcu.Pin18=PA13 -Mcu.Pin19=PA14 +Mcu.Pin10=PA6 +Mcu.Pin11=PA7 +Mcu.Pin12=PB0 +Mcu.Pin13=PB1 +Mcu.Pin14=PB10 +Mcu.Pin15=PB11 +Mcu.Pin16=PB12 +Mcu.Pin17=PA9 +Mcu.Pin18=PA10 +Mcu.Pin19=PA11 Mcu.Pin2=PC15-OSC32_OUT -Mcu.Pin20=PA15 -Mcu.Pin21=PB4 -Mcu.Pin22=PB5 -Mcu.Pin23=PB6 -Mcu.Pin24=PB7 -Mcu.Pin25=PB8 -Mcu.Pin26=PB9 -Mcu.Pin27=VP_SYS_VS_Systick -Mcu.Pin28=VP_TIM2_VS_ClockSourceINT -Mcu.Pin29=VP_TIM3_VS_ClockSourceINT +Mcu.Pin20=PA12 +Mcu.Pin21=PA13 +Mcu.Pin22=PA14 +Mcu.Pin23=PA15 +Mcu.Pin24=PB4 +Mcu.Pin25=PB5 +Mcu.Pin26=PB6 +Mcu.Pin27=PB7 +Mcu.Pin28=PB8 +Mcu.Pin29=PB9 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.Pin5=PA0-WKUP Mcu.Pin6=PA1 Mcu.Pin7=PA2 Mcu.Pin8=PA3 -Mcu.Pin9=PA7 -Mcu.PinsNb=31 +Mcu.Pin9=PA4 +Mcu.PinsNb=35 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32F103C8Tx @@ -96,8 +101,12 @@ PA1.PinState=GPIO_PIN_SET PA1.Signal=GPIO_Output PA10.Mode=Asynchronous 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.GPIO_Label=Echo +PA12.GPIO_Label=ECHO PA12.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING PA12.GPIO_PuPd=GPIO_PULLDOWN PA12.Locked=true @@ -107,7 +116,7 @@ PA13.Signal=SYS_JTMS-SWDIO PA14.Mode=Serial_Wire PA14.Signal=SYS_JTCK-SWCLK PA15.GPIOParameters=GPIO_Speed,GPIO_Label -PA15.GPIO_Label=Trig +PA15.GPIO_Label=TRIG PA15.GPIO_Speed=GPIO_SPEED_FREQ_HIGH PA15.Locked=true PA15.Signal=GPIO_Output @@ -115,6 +124,14 @@ PA2.Mode=Asynchronous PA2.Signal=USART2_TX PA3.Mode=Asynchronous 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.GPIO_Label=LED_B_TIM3CH2 PA7.Locked=true @@ -217,7 +234,7 @@ ProjectManager.ToolChainLocation= ProjectManager.UAScriptAfterPath= ProjectManager.UAScriptBeforePath= 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.AHBFreq_Value=72000000 RCC.APB1CLKDivider=RCC_HCLK_DIV2 @@ -241,6 +258,8 @@ RCC.USBFreq_Value=72000000 RCC.VCOOutput2Freq_Value=8000000 SH.GPXTI12.0=GPIO_EXTI12 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.ConfNb=1 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_CH2.0=TIM4_CH2,PWM Generation2 CH2 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.IPParameters=Prescaler,Period,AutoReloadPreload TIM2.Period=72 - 1 @@ -282,6 +305,8 @@ USART2.IPParameters=VirtualMode,BaudRate USART2.VirtualMode=VM_ASYNC VP_SYS_VS_Systick.Mode=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.Signal=TIM2_VS_ClockSourceINT VP_TIM3_VS_ClockSourceINT.Mode=Internal diff --git a/Core/Inc/main.h b/Core/Inc/main.h index 27e5206..d01cff8 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -67,6 +67,10 @@ void Error_Handler(void); #define FM_K2_POWERC_GPIO_Port GPIOA #define FAN_GS_Pin GPIO_PIN_1 #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_GPIO_Port GPIOA #define LED_G_TIM3CH3_Pin GPIO_PIN_0 @@ -79,11 +83,13 @@ void Error_Handler(void); #define MPU6050_SDA_GPIO_Port GPIOB #define LineSeek_R2_Pin GPIO_PIN_12 #define LineSeek_R2_GPIO_Port GPIOB -#define Echo_Pin GPIO_PIN_12 -#define Echo_GPIO_Port GPIOA -#define Echo_EXTI_IRQn EXTI15_10_IRQn -#define Trig_Pin GPIO_PIN_15 -#define Trig_GPIO_Port GPIOA +#define SERVO_Pin GPIO_PIN_11 +#define SERVO_GPIO_Port GPIOA +#define ECHO_Pin GPIO_PIN_12 +#define ECHO_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_GPIO_Port GPIOB #define R_BACKWARD_Pin GPIO_PIN_5 diff --git a/Core/Inc/tim.h b/Core/Inc/tim.h index 10a8e1b..4615e6b 100644 --- a/Core/Inc/tim.h +++ b/Core/Inc/tim.h @@ -32,6 +32,8 @@ extern "C" { /* USER CODE END Includes */ +extern TIM_HandleTypeDef htim1; + extern TIM_HandleTypeDef htim2; extern TIM_HandleTypeDef htim3; @@ -42,6 +44,7 @@ extern TIM_HandleTypeDef htim4; /* USER CODE END Private defines */ +void MX_TIM1_Init(void); void MX_TIM2_Init(void); void MX_TIM3_Init(void); void MX_TIM4_Init(void); diff --git a/Core/Src/gpio.c b/Core/Src/gpio.c index d22c305..be247f2 100644 --- a/Core/Src/gpio.c +++ b/Core/Src/gpio.c @@ -54,7 +54,7 @@ void MX_GPIO_Init(void) HAL_GPIO_WritePin(GPIOA, FM_K2_POWERC_Pin|FAN_GS_Pin, GPIO_PIN_SET); /*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 */ 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; 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 */ GPIO_InitStruct.Pin = LineSeek_R2_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; @@ -79,17 +85,17 @@ void MX_GPIO_Init(void) HAL_GPIO_Init(LineSeek_R2_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : PtPin */ - GPIO_InitStruct.Pin = Echo_Pin; + GPIO_InitStruct.Pin = ECHO_Pin; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING; 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 */ - GPIO_InitStruct.Pin = Trig_Pin; + GPIO_InitStruct.Pin = TRIG_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; 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 */ GPIO_InitStruct.Pin = R_FORWARD_Pin|R_BACKWARD_Pin|L_BACKWARD_Pin|L_FORWARD_Pin; diff --git a/Core/Src/main.c b/Core/Src/main.c index 0d3bd6a..6b15d2e 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -97,6 +97,7 @@ int main(void) MX_GPIO_Init(); MX_DMA_Init(); MX_I2C2_Init(); + MX_TIM1_Init(); MX_TIM2_Init(); MX_TIM3_Init(); MX_TIM4_Init(); diff --git a/Core/Src/stm32f1xx_it.c b/Core/Src/stm32f1xx_it.c index cd1dc7d..9258712 100644 --- a/Core/Src/stm32f1xx_it.c +++ b/Core/Src/stm32f1xx_it.c @@ -265,7 +265,7 @@ void EXTI15_10_IRQHandler(void) /* USER CODE BEGIN 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 END EXTI15_10_IRQn 1 */ diff --git a/Core/Src/tim.c b/Core/Src/tim.c index ec3e6eb..2ea1948 100644 --- a/Core/Src/tim.c +++ b/Core/Src/tim.c @@ -24,10 +24,80 @@ /* USER CODE END 0 */ +TIM_HandleTypeDef htim1; TIM_HandleTypeDef htim2; TIM_HandleTypeDef htim3; 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 */ void MX_TIM2_Init(void) { @@ -192,7 +262,18 @@ void MX_TIM4_Init(void) 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 */ @@ -234,11 +315,30 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) { 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 END TIM3_MspPostInit 0 */ + __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); /**TIM3 GPIO Configuration @@ -286,7 +386,18 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) 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 */ diff --git a/Peripheral/Inc/infrared.h b/Peripheral/Inc/infrared.h new file mode 100644 index 0000000..3d6a90e --- /dev/null +++ b/Peripheral/Inc/infrared.h @@ -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 diff --git a/Peripheral/Src/infrared.c b/Peripheral/Src/infrared.c new file mode 100644 index 0000000..c391b02 --- /dev/null +++ b/Peripheral/Src/infrared.c @@ -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); +}