串口没开发送中断,为什么会进入中断?
串口初始化时候只打开了唯一的接收RXNE中断。串口发送用查询法:
void Usart2_Send(void)
{
unsigned char i;
if(0 == BufUsart2.lenTx) return;
for(i=0; i< BufUsart2.lenTx; i++)
{
USART_SendData(USART2, BufUsart2.bufTx);
while(USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);
}
while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);
BufUsart2.lenTx = 0;
}为什么程序跑起来后,会进入发送中断?
正常情况下不应该的发送中断有两个位可以产生中断看一下配置有没有问题
可能程序其他地方有配置也可以仿真的时候看一下寄存器
先根据寄存器和单步运行确定中断源,再考虑怎么解决。 楼主看一下你的配置,如果不确定可以在线仿真,进入中断后,再查看串口寄存器的状态,判断一下产生中断的原因。 估计过会就要拍自己脑袋
页:
[1]