void EnableUART3IRQ(void)
{
HAL_NVIC_SetPriority(USART3_IRQn, 0, 1);
HAL_NVIC_EnableIRQ(USART3_IRQn);
__HAL_UART_ENABLE_IT(&huart3, UART_IT_RXNE);
}
/**********************************************************************
* 函数名称: USART3_SendBytes
* 功能描述: 通过UART3发出多个数据
* 输入参数: buf-数据缓冲区
* 输入参数: len-数据长度
* 输出参数: 无
* 返 回 值: 0-成功
* -----------------------------------------------
***********************************************************************/
void USART3_SendBytes(char *buf, int len)
{
int i;
for (i = 0; i < len; i++)
{
while ((USART3->SR & (1<<7)) == 0);
USART3->DR = buf[i];
}
}
/**********************************************************************
* 函数名称: USART3_IRQHandler
* 功能描述: UART3中断函数,把接收到的数据放入环形缓冲区
* 输入参数: 无
* 输出参数: 无
* 返 回 值: 无
* 修改日期 版本号 修改人 修改内容
***********************************************************************/
void USART3_IRQHandler(void)
{
unsigned char c = 0;
if((USART3->SR &(1<<5)) != 0)
{
c = USART3->DR;
ring_buffer_write(c, uart3_ringbuffer);
}
HAL_UART_IRQHandler(&huart3);
}
串口3的手写函数中断接受
最新推荐文章于 2023-06-06 10:29:01 发布