OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3432|回复: 2

串口中断问题求助

[复制链接]

4

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2014-8-26
在线时间
2 小时
发表于 2015-12-2 16:03:47 | 显示全部楼层 |阅读模式
5金钱
串口接收中断程序,实验现象是每次发送任意字符串,都会收到两次返回信息:
MESSAGE INCOMMING!
PRESS KEY0 TO READ,PRESS KEY1 TO IGNORE,PRESS WU_UP TO DELATE

MESSAGE INCOMMING!
PRESS KEY0 TO READ,PRESS KEY1 TO IGNORE,PRESS WU_UP TO DELATE


为何会两次进入串口中断?请教各位给挑挑错。

代码如下:
void USART1_IRQHandler()
{
    u8 n;

    char Dev[85]="MESSAGE INCOMMING!\r\nPRESS KEY0 TO READ,PRESS KEY1 TO IGNORE,PRESS WU_UP TO DELATE\r\n";

    if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)
    {
        u8 data;
        data=USART_ReceiveData(USART1);

        for(n=0;n<=85;n++)
        {
            USART_SendData(USART1,Dev[n]);
            while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
        }
        flag_LEDred=0;flag_LEDgreen=0;
        LEDgreen=0;LEDred=0;
    }
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2014-8-26
在线时间
2 小时
 楼主| 发表于 2015-12-2 16:49:36 | 显示全部楼层
回复【2楼】yklstudent:
---------------------------------
data=USART_ReceiveData(USART1);
读DR应该就会清零RXNE,再加一句没有必要啊

还有cCOM2是什么鬼?
回复

使用道具 举报

4

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2014-8-26
在线时间
2 小时
 楼主| 发表于 2015-12-3 09:20:53 | 显示全部楼层
void USART1_IRQHandler()
{
    u8 n; 

    char Dev[85]="MESSAGE INCOMMING!\r\nPRESS KEY0 TO READ,PRESS KEY1 TO IGNORE,PRESS WU_UP TO DELATE\r\n";

    if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)
    {
        u8 data; 
        data=USART_ReceiveData(USART1); 

        for(n=0;n<=85;n++)
        {
            USART_SendData(USART1,Dev[n]);
            while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
        }
        flag_LEDred=0;flag_LEDgreen=0;
        LEDgreen=0;LEDred=0;
     
}
     USART_ClearITPendingBit(USART1, USART_IT_RXNE); 

}

中断中使用指令再次清除RXNE标志位,可以只收到一条回复,新的问题是:只能进入一次中断,后续串口再发送任何信息都无效,中断无法再次触发了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 02:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表