STM8S单片机串口UART2接收中断一直在运行,出不来,怎么回事? 10
主函数intmain(void){ITC_DeInit();uart_init();ITC_SetSoftwarePriority(ITC_IRQ_UART2_RX,IT...
主函数
int main(void)
{
ITC_DeInit();
uart_init();
ITC_SetSoftwarePriority(ITC_IRQ_UART2_RX, ITC_PRIORITYLEVEL_2);
enableInterrupts(); /* 开启总中断 */
while (1);
}
中断函数
INTERRUPT_HANDLER(UART2_RX_IRQHandler, 21)
{
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
u8 REV;
REV = UART2_ReceiveData8();
uart_SendByte(REV);
UART2_ClearITPendingBit(UART2_IT_RXNE); //清中断标志
}
我用串口助手发一个1,就不停的接收1,这是怎么回事
void uart_init()
{
UART2_DeInit(); //可以不操作
UART2_Init((u32)600, UART2_WORDLENGTH_8D, UART2_STOPBITS_1,\
UART2_PARITY_NO, UART2_SYNCMODE_CLOCK_DISABLE, UART2_MODE_TXRX_ENABLE);
UART2_ITConfig(UART2_IT_RXNE_OR, ENABLE);
UART2_Cmd(ENABLE); //使能
}
void uart_SendByte(u8 data)
{
UART2_SendData8(data);
while(!UART2_GetFlagStatus(UART2_FLAG_TXE)); //等待发送完成
} 展开
int main(void)
{
ITC_DeInit();
uart_init();
ITC_SetSoftwarePriority(ITC_IRQ_UART2_RX, ITC_PRIORITYLEVEL_2);
enableInterrupts(); /* 开启总中断 */
while (1);
}
中断函数
INTERRUPT_HANDLER(UART2_RX_IRQHandler, 21)
{
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
u8 REV;
REV = UART2_ReceiveData8();
uart_SendByte(REV);
UART2_ClearITPendingBit(UART2_IT_RXNE); //清中断标志
}
我用串口助手发一个1,就不停的接收1,这是怎么回事
void uart_init()
{
UART2_DeInit(); //可以不操作
UART2_Init((u32)600, UART2_WORDLENGTH_8D, UART2_STOPBITS_1,\
UART2_PARITY_NO, UART2_SYNCMODE_CLOCK_DISABLE, UART2_MODE_TXRX_ENABLE);
UART2_ITConfig(UART2_IT_RXNE_OR, ENABLE);
UART2_Cmd(ENABLE); //使能
}
void uart_SendByte(u8 data)
{
UART2_SendData8(data);
while(!UART2_GetFlagStatus(UART2_FLAG_TXE)); //等待发送完成
} 展开
3个回答
展开全部
不知道你的uart_SendByte(REV);函数实现是不是等待发送完成才返回的,还是立即返回
如果是立即返回,那么后面的清除完标志之后,发送标志会在发送完成之后置位,然后会再进入中断,至于REV仍然存在数据1,大概是因为没有其它的操作覆盖掉数据。
如果是立即返回,那么后面的清除完标志之后,发送标志会在发送完成之后置位,然后会再进入中断,至于REV仍然存在数据1,大概是因为没有其它的操作覆盖掉数据。
更多追问追答
追问
是等待发送完毕才回去的,那个中断也是接收中断,和发送没关系吧
追答
中断向量表是怎么配置的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主,我最近也遇到这个问题 请问你问题解决了么,能否说说怎么解决的?谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询