STM32 ZET6 144P 串口4 串口5,死在中断里,不出来,哪位大神帮我看一下。全部积分奉送 100

初学STM32,整了两天了,网上说过载了,我加进去了,不行,只要什么都不写,voidUART5_IRQHandler(void){if(USART_GetITStatus... 初学STM32,整了两天了,网上说过载了,我加进去了,不行,只要什么都不写,
void UART5_IRQHandler(void)
{
if(USART_GetITStatus(UART5, USART_IT_RXNE) != RESET)
{
USART_SendData(UART5, 0x03);
// USART_ClearITPendingBit(UART5, USART_IT_RXNE);//Çå³þ±ê־λ
}
}
这样,你随便给他发一个,进了中断,他就一直发03过来,按程序应该只发一次,他一直发,然后就死了,如果打开下面那一句,直接不进了。
麻烦大神帮我看下,积分全部给了
展开
 我来答
zhangmingsu
2015-02-07 · 超过75用户采纳过TA的回答
知道小有建树答主
回答量:246
采纳率:57%
帮助的人:89.8万
展开全部

USART_IT_RXNE 是接收中断. 


USART_IT_TXE 才是发生中断.

static char DTs[512];//发送缓冲空间
static volatile uint16_t DTCursorTop=0;
static volatile uint16_t DTCursorEnd=0;
void UART5_IRQHandler(void)
{ 雀宽裤    
    //接收顷简寄存器非空
     if(USART_GetITStatus(UART5, USART_IT_RXNE  ) != RESET)
    {
        char Data = UART5->DR;//抱歉不喜欢用函数调用.中断的地方能节省运行时间就节省运行时间
     }
     
     
    //发送寄存器为空
     if(USART_GetITStatus(UART5, USART_IT_TXE ) != RESET)
    {
    
        if(DTCursorTop == DTCursorEnd){
        
       Open_USARTx->CR1 &= 0xff7f;//发送完成清除中断发送标志位
       
       
       }
else{


        UART5->DR  = DTs[(DTCursorTop++)&0x1ff];//= 0x03;
      巧雀 //USART_SendData(UART5, 0x03);
       //两条语句是一样的功能,下面的会产生多余的指令和占用更多的堆栈空间
       
}


     }       
 }
 int sendchar(int ch){
     while((((DTCursorTop-DTCursorEnd)&0x1ff) ==1)){
// UART5->CR1 |= 0x80;//ÖÃλ·¢ËÍÖжÏ;//µ½´ï»·Ðνáβ
}

DTs[(DTCursorEnd++)&0x1ff] = ch;
UART5->CR1 |= USART_CR1_TXEIE;//置位触发发送中断

return 0;

}  /* in Serial.c */

你用错参数了. 纯手工编写,不是网上复制粘贴的.

追问
我就是接受中断不对,发送只是为了验证下我进中断没有,或者进了中断的状态
我没用发送中断,不能传文件,不然直接给你看。我注释的那条语句,注释了,就一直死在中断里,就是不停的发送0x03,不注释掉就直接不发送,是否进入中断不清楚,由于我的JTAG和端口冲突,我也没调试,看到底进中断没有。
追答
进了中断,而且启动了发送中断,你的中断时发送寄存器为空触发进入发送,发送完了又触发.

USART_IT_RXNE 是接收中断.

USART_IT_TXE 才是发生中断.

你把 USART_IT_RXNE 改为 USART_IT_TXE
如果中断有触发则单片机收到一个字节就会反馈一个0x03
查晓筠0i5
2015-02-07 · TA获得超过2752个赞
知道大有可为答主
回答量:2.1万
采纳率:1%
帮助的人:4951万
展开全部
关注这个问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式