请选择 进入手机版 | 继续访问电脑版

普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 3747|回复: 3

串口通信实验,中断中不需要检测和清除发送完成标志位(TC)

[复制链接]

2

主题

3

帖子

134

积分

注册会员

Rank: 2

积分
134
发表于 2020-5-27 15:08:15 | 显示全部楼层 |阅读模式
直接上中断服务函数
  1. void USART1_IRQHandler(void)
  2. {
  3.         u8 r;
  4.         if(USART_GetITStatus(USART1,USART_IT_RXNE) != RESET)
  5.         {
  6.                 r = USART_ReceiveData(USART1);
  7.                 USART_SendData(USART1,r);
  8. //                while(USART_GetFlagStatus(USART1,USART_FLAG_TC) != SET);
  9.         }
  10. //        USART_ClearFlag(USART1,USART_FLAG_TC);
  11. }
复制代码


相应的,把判断是否发送完成与清除发送完成标志位这两语句注释掉即可
根据数据手册,当读取 USART_SR 寄存器,然后写入
USART_DR 寄存器,TC会清零。

如有谬误,还请指正,谢谢。
回复

使用道具 举报

27

主题

337

帖子

3294

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3294
发表于 2020-5-28 08:48:15 | 显示全部楼层
如果你是发送一大串数据,且速度很快的时候,你有测试吗?
回复 支持 反对

使用道具 举报

2

主题

3

帖子

134

积分

注册会员

Rank: 2

积分
134
 楼主| 发表于 2020-5-28 22:35:51 | 显示全部楼层
admin 发表于 2020-5-28 08:48
如果你是发送一大串数据,且速度很快的时候,你有测试吗?

有测试,一次发送16个字符会少一个,32个会少两个
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-3-28 19:47 , Processed in 0.367568 second(s), 33 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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