stm32_serDes_protobuf_project/bsp/stm32f4xx_it.c
2024-05-13 15:02:23 +03:00

42 lines
909 B
C

#include "stm32f4xx_it.h"
#include "ring_buffer.h"
static volatile uint32_t sysTick = 0;
void TIM7_IRQHandler()
{
TIM_ClearITPendingBit(TIM7, TIM_IT_Update);
if(get_lwip_status()->link_status == LINK_UP) {
GPIO_ToggleBits(GPIOB, GPIO_Pin_7);
}
else {
GPIO_ResetBits(GPIOB, GPIO_Pin_7);
}
}
void USART2_IRQHandler()
{
ringbuf_uint8t* printf_buffer = get_printf_buffer();
while(!rb_is_empty(printf_buffer)) {
while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);
USART_SendData(USART2, (uint16_t)(rb_get(printf_buffer)));
}
USART1->CR1 &= ~USART_CR1_TXEIE;
GPIO_ToggleBits(GPIOB, GPIO_Pin_7);
}
void SysTick_Handler(void)
{
static uint32_t cnt = 0;
if (cnt == 500) {
GPIO_ToggleBits(GPIOB, GPIO_Pin_0);
cnt = 0;
}
sysTick++;
cnt++;
}
uint32_t getSysTick() {
return sysTick;
}