野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9506|回复: 6

发中断、收中断如何使用两个中断处理函数来实现?

[复制链接]
发表于 2016-12-13 11:22:09 | 显示全部楼层 |阅读模式
见附图
从STM32F042的开始文件startup_stm32f042.s中看到,USART2只有一个中断处理函数:USART2_IRQHandler。

现在,我想把USART2 发中断和收中断 用两个中断函数来处理,请问,该如何实现 ?

谢谢 !

附图
无标题.png

主题推荐

回复

使用道具 举报

发表于 2016-12-13 11:37:54 | 显示全部楼层
USART_ITConfig(USARTx, USART_IT_TXE, ENABLE);使能发送中断
USART_ITConfig(USARTx, USART_IT_RXNE, ENABLE);使能接收中断

回复 支持 1 反对 0

使用道具 举报

发表于 2016-12-13 11:39:53 | 显示全部楼层
if(USART_GetITStatus(USART2, USART_IT_TXE) != RESET){

}
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET){

}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-13 13:12:05 | 显示全部楼层
wqy_1000 发表于 2016-12-13 11:39
if(USART_GetITStatus(USART2, USART_IT_TXE) != RESET){

}

谢谢大侠 !明白了

void USART2_IRQHandler(void)
{

        if(USART_GetITStatus(USART2, USART_IT_TXE) != RESET)
        {

        }
        if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
        {

        }
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-13 18:24:56 | 显示全部楼层
wqy_1000 发表于 2016-12-13 11:37
USART_ITConfig(USARTx, USART_IT_TXE, ENABLE);使能发送中断
USART_ITConfig(USARTx, USART_IT_RXNE, EN ...

谢谢大侠指点!

请问:使用 USART_ITConfig(USART2, USART_IT_TC, ENABLE); 使能发送中断可以吗 ?
回复 支持 反对

使用道具 举报

发表于 2016-12-13 21:19:29 | 显示全部楼层
myWF 发表于 2016-12-13 18:24
谢谢大侠指点!

请问:使用 USART_ITConfig(USART2, USART_IT_TC, ENABLE); 使能发送中断可以吗 ?

这是几个不同中断,发送空\接收非空\发送完成,其实buff都要先送到移位寄存器才能发送,一位位发送出去就是TC中断了,而发送空并不表示发送真正完成。
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-12-14 08:43:25 | 显示全部楼层
zl1215 发表于 2016-12-13 21:19
这是几个不同中断,发送空\接收非空\发送完成,其实buff都要先送到移位寄存器才能发送,一位位发送出去就 ...

谢谢大侠 !

看来 还是用TC中断吧,发送真正完成后,再发下一个吧
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-22 04:35 , Processed in 0.031746 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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