Question: Hello, I need help editing my code to now use timers to trigger LEDs ( Using the stm 3 2 in C coding language and
Hello, I need help editing my code to now use timers to trigger LEDs Using the stm in C coding language and button inputs as interrupts below I'll attach my code, the requirements needed, and an example of the timer being used. thanks
#include "main.h
UARTHandleTypeDef huart;
void SystemClockConfigvoid;
static void MXGPIOInitvoid;
static void MXUSARTUARTInitvoid;
mainvoid
HALInit;
SystemClockConfig;
MXGPIOInit;
MXUSARTUARTInit;
while
void SystemClockConfigvoid
RCCOscInitTypeDef RCCOscInitStruct ;
RCCClkInitTypeDef RCCClkInitStruct ;
HALRCCPWRCLKENABLE;
HALPWRVOLTAGESCALINGCONFIGPWRREGULATORVOLTAGESCALE;
RCCOscInitStruct.OscillatorType RCCOSCILLATORTYPEHSI;
RCCOscInitStruct.HSIState RCCHSION;
RCCOscInitStruct.HSICalibrationValue RCCHSICALIBRATIONDEFAULT;
RCCOscInitStruct.PLLPLLState RCCPLLON;
RCCOscInitStruct.PLLPLLSource RCCPLLSOURCEHSI;
RCCOscInitStruct.PLLPLLM ;
RCCOscInitStruct.PLLPLLN ;
RCCOscInitStruct.PLLPLLP RCCPLLPDIV;
RCCOscInitStruct.PLLPLLQ ;
RCCOscInitStruct.PLLPLLR ;
if HALRCCOscConfig&RCCOscInitStruct HALOK
ErrorHandler;
RCCClkInitStruct.ClockType RCCCLOCKTYPEHCLKRCCCLOCKTYPESYSCLK
RCCCLOCKTYPEPCLKRCCCLOCKTYPEPCLK;void HALGPIOEXTICallbackui
RCCClkInitStruct.SYSCLKSource RCCSYSCLKSOURCEPLLCLK;
RCCClkInitStruct.AHBCLKDivider RCCSYSCLKDIV;
RCCClkInitStruct.APBCLKDivider RCCHCLKDIV;
RCCClkInitStruct.APBCLKDivider RCCHCLKDIV;
if HALRCCClockConfig&RCCClkInitStruct, FLASHLATENCY HALOK
ErrorHandler;
static void MXUSARTUARTInitvoid
huartInstance USART;
huartInit.BaudRate ;
huartInit.WordLength UARTWORDLENGTHB;
huartInit.StopBits UARTSTOPBITS;
huartInit.Parity UARTPARITYNONE;
huartInit.Mode UARTMODETXRX;
huartInit.HwFlowCtl UARTHWCONTROLNONE;
huartInit.OverSampling UARTOVERSAMPLING;
if HALUARTInit&huart HALOK
ErrorHandler;
static void MXGPIOInitvoid
GPIOInitTypeDef GPIOInitStruct ;
HALRCCGPIOCCLKENABLE;
HALRCCGPIOHCLKENABLE;
HALRCCGPIOACLKENABLE;
HALRCCGPIOBCLKENABLE;
HALGPIOWritePinLDGPIOPort, LDPin, GPIOPINRESET;
HALGPIOWritePinGPIOB GPIOPINGPIOPINGPIOPINGPIOPIN GPIOPINRESET;
Configure GPIO pin : BPin
GPIOInitStruct.Pin BPin;
GPIOInitStruct.Mode GPIOMODEITFALLING;
GPIOInitStruct.Pull GPIOPULLUP;
HALGPIOInitBGPIOPort, &GPIOInitStruct;
Configure GPIO pin : LDPin
GPIOInitStruct.Pin LDPin;
GPIOInitStruct.Mode GPIOMODEOUTPUTPP;
GPIOInitStruct.Pull GPIOPULLUP;
GPIOInitStruct.Speed GPIOSPEEDFREQLOW;
HALGPIOInitLDGPIOPort, &GPIOInitStruct;
Configure GPIO pin : PA
GPIOInitStruct.Pin GPIOPIN;
GPIOInitStruct.Mode GPIOMODEITRISINGFALLING;
GPIOInitStruct.Pull GPIOPULLUP;
HALGPIOInitGPIOA &GPIOInitStruct;
Configure GPIO pin : PA
GPIOInitStruct.Pin GPIOPIN;
GPIOInitStruct.Mode GPIOMODEITFALLING;
GPIOInitStruct.Pull GPIOPULLUP;
HALGPIOInitGPIOA &GPIOInitStruct;
Configure GPIO pins : PC PC
GPIOInitStruct.Pin GPIOPINGPIOPIN;
GPIOInitStruct.Mode GPIOMODEITRISING;
GPIOInitStruct.Pull GPIOPULLUP;
HALGPIOInitGPIOC &GPIOInitStruct;
Configure GPIO pins : PB PB PB PB
GPIOInitStruct.Pin GPIOPINGPIOPINGPIOPINGPIOPIN;
GPIOInitStruct.Mode GPIOMODEOUTPUTPP;
GPIOInitStruct.Pull GPIOPULLUP;
GPIOInitStruct.Speed GPIOSPEEDFREQLOW;
HALGPIOInitGPIOB &GPIOInitStruct;
EXTI interrupt init
HALNVICSetPriorityEXTIIRQn, ;
HALNVICEnableIRQEXTIIRQn;
HALNVICSetPriorityEXTIIRQn, ;
HALNVICEnableIRQEXTIIRQn;
HALNVICSetPriorityEXTIIRQn, ;
HALNVICEnableIRQEXTIIRQn;
Begin Interrupt
void HALGPIOEXTICallbackuintt GPIOPin
Button Hold
ifGPIOPin GPIOPIN
ifHALGPIOReadPinGPIOA GPIOPIN
HALGPIOWritePinGPIOA GPIOPIN;
else
HALGPIOWritePinGPIOA GPIOPIN;
Button Falling Edge Toggling Cycle
ifGPIOPin GPIOPIN
HALGPIOTogglePinGPIOB GPIOPIN;
Button Rising Edge Toggling Cycle
ifGPIOPin GPIOPIN
HALGPIOTogglePinGPIOB GPIOPIN;
Button Double Click Falling Edge Toggling Cycle
ifGPIOPin GPIOPIN
static int count ;
count;
ifcount
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
