Add buttons

This commit is contained in:
Dylan Smith
2026-01-14 13:14:34 -05:00
parent 197a361ce8
commit 66cb2436c7
3 changed files with 94 additions and 66 deletions

View File

@@ -213,10 +213,20 @@ void Error_Handler(void);
#define D2_GPIO_Port GPIOD
#define D3_Pin GPIO_PIN_1
#define D3_GPIO_Port GPIOD
#define BUTTON1_Pin GPIO_PIN_2
#define BUTTON1_GPIO_Port GPIOD
#define G7_Pin GPIO_PIN_3
#define G7_GPIO_Port GPIOD
#define BUTTON2_Pin GPIO_PIN_4
#define BUTTON2_GPIO_Port GPIOD
#define BUTTON3_Pin GPIO_PIN_5
#define BUTTON3_GPIO_Port GPIOD
#define B2_Pin GPIO_PIN_6
#define B2_GPIO_Port GPIOD
#define BUTTON4_Pin GPIO_PIN_7
#define BUTTON4_GPIO_Port GPIOD
#define BUTTON5_Pin GPIO_PIN_9
#define BUTTON5_GPIO_Port GPIOG
#define G3_Pin GPIO_PIN_10
#define G3_GPIO_Port GPIOG
#define B3_Pin GPIO_PIN_11

View File

@@ -19,14 +19,12 @@
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "cmsis_os.h"
#include "graphics.h"
#include "stm32f4xx_hal_ltdc.h"
#include "stm32f4xx_hal_spi.h"
#include "usb_host.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "display.h"
#include "graphics.h"
#include "font.h"
#include "menu.h"
/* USER CODE END Includes */
@@ -892,6 +890,18 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/*Configure GPIO pins : BUTTON1_Pin BUTTON2_Pin BUTTON3_Pin BUTTON4_Pin */
GPIO_InitStruct.Pin = BUTTON1_Pin|BUTTON2_Pin|BUTTON3_Pin|BUTTON4_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/*Configure GPIO pin : BUTTON5_Pin */
GPIO_InitStruct.Pin = BUTTON5_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(BUTTON5_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pins : LD3_Pin LD4_Pin */
GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

View File

@@ -28,6 +28,7 @@ FREERTOS.configUSE_IDLE_HOOK=1
FREERTOS.configUSE_MALLOC_FAILED_HOOK=1
FREERTOS.configUSE_RECURSIVE_MUTEXES=1
File.Version=6
GPIO.groupedBy=Group By Peripherals
KeepUserPlacement=false
LTDC.ActiveH=320
LTDC.ActiveW=240
@@ -53,8 +54,6 @@ Mcu.IP0=CRC
Mcu.IP1=DMA2D
Mcu.IP10=TIM1
Mcu.IP11=USART1
Mcu.IP12=USB_HOST
Mcu.IP13=USB_OTG_HS
Mcu.IP2=FMC
Mcu.IP3=FREERTOS
Mcu.IP4=I2C3
@@ -63,12 +62,14 @@ Mcu.IP6=NVIC
Mcu.IP7=RCC
Mcu.IP8=SPI5
Mcu.IP9=SYS
Mcu.IPNb=14
Mcu.IPNb=12
Mcu.Name=STM32F429ZITx
Mcu.Package=LQFP144
Mcu.Pin0=PC14/OSC32_IN
Mcu.Pin1=PC15/OSC32_OUT
Mcu.Pin10=PF9
Mcu.Pin100=VP_SYS_VS_tim6
Mcu.Pin101=VP_TIM1_VS_ClockSourceINT
Mcu.Pin11=PF10
Mcu.Pin12=PH0/OSC_IN
Mcu.Pin13=PH1/OSC_OUT
@@ -142,29 +143,31 @@ Mcu.Pin74=PA15
Mcu.Pin75=PC10
Mcu.Pin76=PD0
Mcu.Pin77=PD1
Mcu.Pin78=PD3
Mcu.Pin79=PD6
Mcu.Pin78=PD2
Mcu.Pin79=PD3
Mcu.Pin8=PF7
Mcu.Pin80=PG10
Mcu.Pin81=PG11
Mcu.Pin82=PG12
Mcu.Pin83=PG13
Mcu.Pin84=PG14
Mcu.Pin85=PG15
Mcu.Pin86=PB5
Mcu.Pin87=PB6
Mcu.Pin88=PB8
Mcu.Pin89=PB9
Mcu.Pin80=PD4
Mcu.Pin81=PD5
Mcu.Pin82=PD6
Mcu.Pin83=PD7
Mcu.Pin84=PG9
Mcu.Pin85=PG10
Mcu.Pin86=PG11
Mcu.Pin87=PG12
Mcu.Pin88=PG13
Mcu.Pin89=PG14
Mcu.Pin9=PF8
Mcu.Pin90=PE0
Mcu.Pin91=PE1
Mcu.Pin92=VP_CRC_VS_CRC
Mcu.Pin93=VP_DMA2D_VS_DMA2D
Mcu.Pin94=VP_FREERTOS_VS_CMSIS_V1
Mcu.Pin95=VP_SYS_VS_tim6
Mcu.Pin96=VP_TIM1_VS_ClockSourceINT
Mcu.Pin97=VP_USB_HOST_VS_USB_HOST_CDC_HS
Mcu.PinsNb=98
Mcu.Pin90=PG15
Mcu.Pin91=PB5
Mcu.Pin92=PB6
Mcu.Pin93=PB8
Mcu.Pin94=PB9
Mcu.Pin95=PE0
Mcu.Pin96=PE1
Mcu.Pin97=VP_CRC_VS_CRC
Mcu.Pin98=VP_DMA2D_VS_DMA2D
Mcu.Pin99=VP_FREERTOS_VS_CMSIS_V1
Mcu.PinsNb=102
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F429ZITx
@@ -178,7 +181,6 @@ NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
NVIC.LTDC_IRQn=true\:5\:0\:true\:false\:true\:true\:true\:true\:true
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
NVIC.OTG_HS_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false\:false
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:false\:false\:false
@@ -334,7 +336,6 @@ PB13.GPIO_Label=VBUS_HS
PB13.GPIO_Mode=GPIO_MODE_INPUT
PB13.GPIO_PuPd=GPIO_NOPULL
PB13.Locked=true
PB13.Mode=Activate_VBUS_FS
PB13.Signal=USB_OTG_HS_VBUS
PB14.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
PB14.GPIO_Label=OTG_HS_DM
@@ -342,7 +343,6 @@ PB14.GPIO_Mode=GPIO_MODE_AF_PP
PB14.GPIO_PuPd=GPIO_NOPULL
PB14.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PB14.Locked=true
PB14.Mode=Host_FS
PB14.Signal=USB_OTG_HS_DM
PB15.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
PB15.GPIO_Label=OTG_HS_DP
@@ -350,7 +350,6 @@ PB15.GPIO_Mode=GPIO_MODE_AF_PP
PB15.GPIO_PuPd=GPIO_NOPULL
PB15.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PB15.Locked=true
PB15.Mode=Host_FS
PB15.Signal=USB_OTG_HS_DP
PB2/BOOT1.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode
PB2/BOOT1.GPIO_Label=BOOT1
@@ -518,6 +517,11 @@ PD15.GPIO_PuPd=GPIO_NOPULL
PD15.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PD15.Locked=true
PD15.Signal=FMC_D1_DA1
PD2.GPIOParameters=GPIO_PuPd,GPIO_Label
PD2.GPIO_Label=BUTTON1
PD2.GPIO_PuPd=GPIO_PULLUP
PD2.Locked=true
PD2.Signal=GPIO_Input
PD3.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
PD3.GPIO_Label=G7
PD3.GPIO_Mode=GPIO_MODE_AF_PP
@@ -526,6 +530,16 @@ PD3.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PD3.Locked=true
PD3.Mode=RGB565
PD3.Signal=LTDC_G7
PD4.GPIOParameters=GPIO_PuPd,GPIO_Label
PD4.GPIO_Label=BUTTON2
PD4.GPIO_PuPd=GPIO_PULLUP
PD4.Locked=true
PD4.Signal=GPIO_Input
PD5.GPIOParameters=GPIO_PuPd,GPIO_Label
PD5.GPIO_Label=BUTTON3
PD5.GPIO_PuPd=GPIO_PULLUP
PD5.Locked=true
PD5.Signal=GPIO_Input
PD6.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
PD6.GPIO_Label=B2
PD6.GPIO_Mode=GPIO_MODE_AF_PP
@@ -533,6 +547,11 @@ PD6.GPIO_PuPd=GPIO_NOPULL
PD6.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PD6.Locked=true
PD6.Signal=LTDC_B2
PD7.GPIOParameters=GPIO_PuPd,GPIO_Label
PD7.GPIO_Label=BUTTON4
PD7.GPIO_PuPd=GPIO_PULLUP
PD7.Locked=true
PD7.Signal=GPIO_Input
PD8.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
PD8.GPIO_Label=D13
PD8.GPIO_Mode=GPIO_MODE_AF_PP
@@ -829,6 +848,11 @@ PG8.GPIO_PuPd=GPIO_NOPULL
PG8.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PG8.Locked=true
PG8.Signal=FMC_SDCLK
PG9.GPIOParameters=GPIO_PuPd,GPIO_Label
PG9.GPIO_Label=BUTTON5
PG9.GPIO_PuPd=GPIO_PULLUP
PG9.Locked=true
PG9.Signal=GPIO_Input
PH0/OSC_IN.GPIOParameters=GPIO_Label
PH0/OSC_IN.GPIO_Label=PH0-OSC_IN
PH0/OSC_IN.Locked=true
@@ -872,41 +896,43 @@ ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_CRC_Init-CRC-false-HAL-true,4-MX_DMA2D_Init-DMA2D-false-HAL-true,5-MX_FMC_Init-FMC-false-HAL-true,6-MX_I2C3_Init-I2C3-false-HAL-true,7-MX_LTDC_Init-LTDC-false-HAL-true,8-MX_SPI5_Init-SPI5-false-HAL-true,9-MX_TIM1_Init-TIM1-false-HAL-true,10-MX_USART1_UART_Init-USART1-false-HAL-true,11-MX_USB_HOST_Init-USB_HOST-false-HAL-false
RCC.48MHZClocksFreq_Value=48000000
RCC.AHBFreq_Value=72000000
RCC.AHBCLKDivider=RCC_SYSCLK_DIV4
RCC.AHBFreq_Value=30000000
RCC.APB1CLKDivider=RCC_HCLK_DIV2
RCC.APB1Freq_Value=36000000
RCC.APB1TimFreq_Value=72000000
RCC.APB2Freq_Value=72000000
RCC.APB2TimFreq_Value=72000000
RCC.CortexFreq_Value=72000000
RCC.EthernetFreq_Value=72000000
RCC.FCLKCortexFreq_Value=72000000
RCC.APB1Freq_Value=15000000
RCC.APB1TimFreq_Value=30000000
RCC.APB2Freq_Value=30000000
RCC.APB2TimFreq_Value=30000000
RCC.CortexFreq_Value=30000000
RCC.EthernetFreq_Value=30000000
RCC.FCLKCortexFreq_Value=30000000
RCC.FamilyName=M
RCC.HCLKFreq_Value=72000000
RCC.HCLKFreq_Value=30000000
RCC.HSE_VALUE=8000000
RCC.HSI_VALUE=16000000
RCC.I2SClocksFreq_Value=192000000
RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LCDTFTFreq_Value,LSE_VALUE,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLN,PLLQ,PLLQCLKFreq_Value,PLLSAIDivR,PLLSAIN,PLLSAIR,RTCFreq_Value,RTCHSEDivFreq_Value,SAI_AClocksFreq_Value,SAI_BClocksFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAIOutputFreq_Value,VCOSAIOutputFreq_ValueQ,VCOSAIOutputFreq_ValueR,VcooutputI2S,VcooutputI2SQ
RCC.IPParameters=48MHZClocksFreq_Value,AHBCLKDivider,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LCDTFTFreq_Value,LSE_VALUE,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLN,PLLQ,PLLQCLKFreq_Value,PLLSAIDivR,PLLSAIN,PLLSAIR,PLLSourceVirtual,RTCFreq_Value,RTCHSEDivFreq_Value,SAI_AClocksFreq_Value,SAI_BClocksFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAIOutputFreq_Value,VCOSAIOutputFreq_ValueQ,VCOSAIOutputFreq_ValueR,VcooutputI2S,VcooutputI2SQ
RCC.LCDTFTFreq_Value=6000000
RCC.LSE_VALUE=32768
RCC.LSI_VALUE=32000
RCC.MCO2PinFreq_Value=72000000
RCC.PLLCLKFreq_Value=72000000
RCC.PLLN=72
RCC.PLLQ=3
RCC.MCO2PinFreq_Value=120000000
RCC.PLLCLKFreq_Value=120000000
RCC.PLLN=120
RCC.PLLQ=5
RCC.PLLQCLKFreq_Value=48000000
RCC.PLLSAIDivR=RCC_PLLSAIDIVR_16
RCC.PLLSAIN=192
RCC.PLLSAIR=4
RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
RCC.RTCFreq_Value=32000
RCC.RTCHSEDivFreq_Value=4000000
RCC.SAI_AClocksFreq_Value=96000000
RCC.SAI_BClocksFreq_Value=96000000
RCC.SYSCLKFreq_VALUE=72000000
RCC.SYSCLKFreq_VALUE=120000000
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
RCC.VCOI2SOutputFreq_Value=384000000
RCC.VCOInputFreq_Value=2000000
RCC.VCOOutputFreq_Value=144000000
RCC.VCOOutputFreq_Value=240000000
RCC.VCOSAIOutputFreq_Value=384000000
RCC.VCOSAIOutputFreq_ValueQ=96000000
RCC.VCOSAIOutputFreq_ValueR=96000000
@@ -995,29 +1021,13 @@ SH.GPXTI2.ConfNb=1
SH.GPXTI5.0=GPIO_EXTI5
SH.GPXTI5.ConfNb=1
SPI5.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_16
SPI5.CalculateBaudRate=4.5 MBits/s
SPI5.CalculateBaudRate=1.875 MBits/s
SPI5.Direction=SPI_DIRECTION_2LINES
SPI5.IPParameters=Mode,CalculateBaudRate,VirtualType,Direction,BaudRatePrescaler
SPI5.Mode=SPI_MODE_MASTER
SPI5.VirtualType=VM_MASTER
USART1.IPParameters=VirtualMode
USART1.VirtualMode=VM_ASYNC
USB_HOST.BSP.number=1
USB_HOST.IPParameters=VirtualModeHS,USBH_HandleTypeDef-CDC_HS
USB_HOST.USBH_HandleTypeDef-CDC_HS=hUsbHostHS
USB_HOST.VirtualModeHS=Cdc
USB_HOST0.BSP.STBoard=false
USB_HOST0.BSP.api=UnknownBspDriver
USB_HOST0.BSP.component=
USB_HOST0.BSP.condition=
USB_HOST0.BSP.instance=PC4
USB_HOST0.BSP.ip=GPIO
USB_HOST0.BSP.mode=Output
USB_HOST0.BSP.name=Drive_VBUS_HS
USB_HOST0.BSP.semaphore=
USB_HOST0.BSP.solution=PC4
USB_OTG_HS.IPParameters=VirtualMode-Host_FS
USB_OTG_HS.VirtualMode-Host_FS=Host_FS
VP_CRC_VS_CRC.Mode=CRC_Activate
VP_CRC_VS_CRC.Signal=CRC_VS_CRC
VP_DMA2D_VS_DMA2D.Mode=DMA2D_Activate
@@ -1028,8 +1038,6 @@ VP_SYS_VS_tim6.Mode=TIM6
VP_SYS_VS_tim6.Signal=SYS_VS_tim6
VP_TIM1_VS_ClockSourceINT.Mode=Internal
VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT
VP_USB_HOST_VS_USB_HOST_CDC_HS.Mode=CDC_HS
VP_USB_HOST_VS_USB_HOST_CDC_HS.Signal=USB_HOST_VS_USB_HOST_CDC_HS
board=STM32F429I-DISC1
boardIOC=true
rtos.0.ip=FREERTOS