串口使用的标准函数
HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
自定义实现串口中断
void USART1_IRQHandler(void) {
uint32_t isrflags = READ_REG(USART1->SR);
uint32_t errorflags = (isrflags & (uint32_t) (USART_SR_PE | USART_SR_FE | USART_SR_ORE | USART_SR_NE));
if (errorflags == RESET) {
if (((isrflags & USART_SR_RXNE) != RESET) && ((READ_REG(USART1->CR1) & USART_CR1_RXNEIE) != RESET)) {
uint8_t data = (uint8_t) (USART1->DR & (uint8_t) 0x00FF);
lwrb_write(&ringbuf, &data, 1);
}
} else {
}
}