OpenEdv-开源电子网

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

我的串口3初始化好之后为什么一直自行进中断?

[复制链接]

28

主题

176

帖子

0

精华

高级会员

Rank: 4

积分
738
金钱
738
注册时间
2014-7-1
在线时间
180 小时
发表于 2016-9-24 11:03:47 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 qingyu111 于 2016-9-24 11:05 编辑

        USART_InitStructure.USART_BaudRate = 921600;

        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
        USART_Init(USART3 , &USART_InitStructure);
        USART_ITConfig(USART3, USART_IT_RXNE , ENABLE);
        //USART_ITConfig(UART4, USART_IT_TC , ENABLE);
        USART_Cmd(USART3 , ENABLE);

void USART3_IRQHandler(void)
{
        if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)
        {
                uint8_t c;
                c=USART_ReceiveData(USART3);
                CPM_Recv_Buf[CPM_Recv_End++] = c;
                CPM_Recv_End &= (CPM_Recv_Buf_Size-1);
                CPM_Recv();
        }

        if(USART_GetITStatus(USART3, USART_IT_TC) != RESET)
        {
        
                if(g_USART3_RxHead == g_USART3_RxEnd)
                {
                        USART_ITConfig(USART3, USART_IT_TC , DISABLE);
                }
                else
                {
                        USART_SendData(USART3,g_USART3_TxBuf[g_USART3_TxHead++]);
                        g_USART3_TxHead &= USART3_TXBUFLENGTH-1;
                }
        
        }
}
程序下载到板子上后,什么也不做,只是在调试状态,不停自行进入串口3 的中断函数里面,进去后USART_IT_RXNE仍然是0,所以也没执行if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)下面的函数,只是在if语句上判断一下就出中断了,并且是不停的进,有遇见过这种情况的吗?

最佳答案

查看完整内容[请看2#楼]

原来是硬件的原因。。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

28

主题

176

帖子

0

精华

高级会员

Rank: 4

积分
738
金钱
738
注册时间
2014-7-1
在线时间
180 小时
 楼主| 发表于 2016-9-24 11:03:48 | 显示全部楼层
原来是硬件的原因。。。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-24 13:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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