OpenEdv-开源电子网

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

关于USART_IT_TC发送完成中断

[复制链接]

16

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
166
金钱
166
注册时间
2013-9-22
在线时间
18 小时
发表于 2014-3-11 18:44:40 | 显示全部楼层 |阅读模式
在USART 2配置中打开USART_IT_TC中断并且在串口中断中清除发送中断完成标志位可以,为什么在USART 1中设置如上中断,且也在串口中断中清除该标志位就整个程序失效,就拿原子哥的实验4-串口例程来说,烧写源程序,正常工作,当配置成这个中断后再烧写,为什么整个程序就失效了,到底哪边不对,各位大神跪求指导啊
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2014-3-11 23:31:58 | 显示全部楼层
回复【楼主位】970931626:
---------------------------------
这是发送完成中断,你在中断里面怎么处理的?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

16

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
166
金钱
166
注册时间
2013-9-22
在线时间
18 小时
 楼主| 发表于 2014-3-12 08:39:00 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
/****************************************************************************
* 名    称:void USART2_IRQHandler(void) 
* 功    能:串口2中断函数,在这里接收主机的数据
* 入口参数:无
* 出口参数:无
* 说    明:
* 调用方法:无 
****************************************************************************/  
void USART2_IRQHandler(void)
{
  unsigned int j;
  static unsigned char i=0;
  /*当USART接收到数据后进入中断*/
  if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)    //接收到数据
  { 
     uart.jieshou[uart.jishu]=USART_ReceiveData(USART2);
 uart.jishu++;
 if (uart.jishu==1)                                   //当接收到第一个字节时开始计时(计时5MS)
 {   
   uart.flag=1;   //接收到第一个字节标志
   uart.jishi=0;
 }
 if (uart.jishu>=1)                                   //当接收一个数据后每中断一次都把计时累加变量清0
 {
   uart.jishi=0;   //清0
 }
  }
  /*当USART数据发送完成后进入中断*/
  if(USART_GetITStatus(USART2, USART_IT_TC) != RESET) 
  { 
 uart.flag=uart.jishi=uart.jishu=0;
 USART_ClearFlag(USART2,USART_FLAG_TC);  //清发送完成标志
 Delay(300);
 GPIO_SetBits(GPIOA,GPIO_Pin_11);                  //进入接收模式                
  }     
} 这是串口2的中断,串口1的依葫芦画瓢,串口1的就不行
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2014-3-12 11:34:57 | 显示全部楼层
回复【3楼】970931626:
---------------------------------
没问题哦。
不过不建议使用发送完成中断...着实没啥用,还可能导致接收不正常。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

16

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
166
金钱
166
注册时间
2013-9-22
在线时间
18 小时
 楼主| 发表于 2014-3-12 12:11:40 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
嗯啊,好奇怪,串口一没用,串口二我试了就可以,原子哥可以有空试试,串口一打开完成中断程序直接就没用了
回复 支持 反对

使用道具 举报

0

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2018-5-28
在线时间
14 小时
发表于 2019-8-2 10:03:39 | 显示全部楼层
我一旦配置USART_IT_TC  程序就死机 真是求而不得不知道什么原因
回复 支持 反对

使用道具 举报

5

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2012-12-8
在线时间
30 小时
发表于 2020-8-19 12:30:42 | 显示全部楼层
我也是一旦配置USART_IT_TC  就死机他妹子的  唉
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2018-8-7
在线时间
4 小时
发表于 2022-10-24 21:51:33 | 显示全部楼层
也有遇到,使能串口发送完成中断,在中断服务函数中清除TC标志,导致串口收发异常
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 22:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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