2019-07-20 08:33发布
正点原子 发表于 2018-4-22 01:49 检查中断服务函数。
清风徐徐 发表于 2018-4-23 08:22 我怎么记得串口中断是需要清中断标志啊,楼主没清啊。
最多设置5个标签!
谢谢!
中断服务函数,读取串口寄存器到缓冲区,然后置了一个标志。
代码如下:
void USART1_IRQHandler(void)
{
if(((USART1->ISR & USART_ISR_RXNE) != RESET) && ((USART1->CR1 & USART_CR1_RXNEIE) != RESET)) //接收到数据
{
USART1_RX_Buf[USART1_RX_Buf_P] = USART1->RDR; //将接收到的数据存入缓冲区
USART1_RX_Buf_P++;
USART1_RX_NewByte_Flag = 0x55; //置串口1接收到新字节标志
}
}
一包数据有5个字节。
不需要手动清也可以的。
数据收发都正常的,主要是接收中断影响了声音的播放。
一周热门 更多>