51单片机TI发送中断标志位阻塞程序运行

2023-11-12

        在利用51单片机学习嵌入式开发的过程中,通常会利用单片机串口进行字符或字符串的收发操作,博主最近在写一个小程序的过程中遇到了这样一个问题,在主函数内利用串口进行一个字符串的发送操作,并且对发送中断标志位进行置零或置一,此外,在串口中断函数内再次进行中断标志位的置零或置一操作,如下代码片段,该代码片段会阻塞程序的执行,类似于死循环,解决方法是去掉中断函数内对发送标志位相关操作代码片段,并且不在中断函数内进行数据的发送操作。

void main()
{
	UARTInit(); //串口初始化
	while(1)
	{
		TI = 1;
		puts("大家好!欢迎学习单片机");
		while(!TI);
		TI = 0;
		delay(1000);
	}	
}

/* UART中断服务函数 */
void InterruptUART() interrupt 4
{
    EA = 0;
    if(RI)   //接收到字节
    {
        RI = 0;  //手动清零接收中断标志位
        RxdByte = SBUF;  //接收到的数据保存到接收字节变量中
        SBUF = RxdByte;  //接收到的数据又直接发回
    }
    if(TI)   //字节发送完毕
    {
        TI = 0;  //手动清零发送中断标志位
    }
    EA = 1;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

51单片机TI发送中断标志位阻塞程序运行 的相关文章

  • 【Vue + Koa 前后端分离项目实战9】使用开源框架==>快速搭建后台管理系统 -- part9 项目总结

    去读书 去学一门手艺 去做任何自己喜欢的事 永远不会晚 才不会辜负这份人生 本博客教学视频来源于imoom 0到1快速构建自己的后台管理系统 课程 官方演示地址 https talelin com 目录 一 项目介绍 1 技术准备 2 学到
  • doris tips

    1 schema表格式字段长度 如果是数字 字母这种的长度等于hive sql里面 length variable 的长度 如果是中文要占3 4个Char 2 表增加分区 可以通过脚本自己构造多个sql 语句 类似 ALTER TABLE
  • 【C语言】rand()函数(如何生成指定范围随机数)

    一 rand 函数简介 我们先来看一下cplusplus com The C Resources Network网站上rand函数的基本信息 系统生成随机数时需要使用rand函数 rand 会返回一个范围在0到RAND MAX 32767
  • groovy语言单元测试(spock)

    一 spock groovy单元测试的五种情况 单元测试 given mock单测中指定mock数据 模拟入参 when 触发行为 比如调用指定方法或函数 then 做出断言表达式 expect 期望的行为 when then的精简版 si

随机推荐

  • Linux的IO端口和IO内存

    Linux的IO端口和IO内存 分类 linux编程 2011 01 14 13 22 866人阅读 评论 1 收藏 举报 io linux linux内核 struct 平台 x86 CPU对外设端口物理地址的编址方式有两种 一种是IO映
  • 外界访问ubuntu端口bug解决

    跟着视频教程在ubuntu上部署了nacos 但是主机无法访问8848端口 虚拟机可以 检查防火墙以及8848端口 防火墙已关闭 端口也是开放的 virtual machine practice nacos logs sudo ufw st
  • iframe和form表单实现ajax请求上传数据

    form的target属性设置为iframe的name值时 表示提交到url后返回的数据显示到iframe区域
  • DeepSORT(工作流程)

    关于多目标跟踪 DeepSORT是针对多目标跟踪的跟踪算法 有人可能会想 将传统的单目标跟踪算法直接用于多目标跟踪 一起对每一个目标进行单目标跟踪不可以吗 理论上似乎可行 但是实际应用中会发现 单纯的套用单目标跟踪算法用于多个目标进行跟踪的
  • vue2在element UI的table中给指定列添加圆点标志,鼠标悬浮出提示信息

    项目场景 要求在列表数据给指定数据添加一些标志 鼠标悬浮提示指定数据 左侧为标志截图 右侧为悬浮提示截图 HTML布局 在template中想要添加标志的那一列添加圆点和悬浮提示信息两个节点 并添加单元格进入 退出事件两个事件 div cl
  • 想转行做软件测试?快来看看你适不适合

    我们来讨论这样一个问题 软件测试适合什么样的人干 每个人有每个人的看法 A 男生 B 女生 C 有耐性不足的人 沟通能力不好 抗打击能力不强的 逻辑太混乱 没有思路的人 比较懒的人 学习能力不强而又不积极主动的人 D 认真 负责 仔细 有恒
  • 【自然语言处理】BERT 讲解

    有任何的书写错误 排版错误 概念错误等 希望大家包含指正 在阅读本篇之前建议先学习 自然语言处理 Seq2Seq 讲解 自然语言处理 Attention 讲解 自然语言处理 ELMo 讲解 自然语言处理 Transformer 讲解 BER
  • vb中的三目运算

    IIf 函数 根据表达式的值 来返回两部分中的其中一个 语法 IIf expr truepart falsepart IIf 函数的语法含有下面这些命名参数 部分 描述 expr 必要参数 用来判断真伪的表达式 truepart 必要参数
  • 用爱思助手自签名ipa文件成功后安装失败

    设备 iPad pro 2021 系统版本 ios15 6 1 ipa文件已签名成功
  • python 将数组中取某一值的元素全部替换为其他元素的方法

    这里的问题是在做House Price Prediction的时候遇到的 尝试对GarageArea做log转化 但是由于有些房子没有车库 所以GarageArea 0 再通过log转化变成 inf了 所以我想把所有 inf的数据全部再转化
  • MySQL学习笔记

    自己学习MySQL时整理的笔记 包括实操中遇到的问题 不同版本之间的差异 后续也会继续完善 有PDF文档版 学习视频 https www bilibili com video BV1Kr4y1i7ru t 1 9 怎么学 收获 基础篇 初级
  • redis持久化(RDB、AOF)

    redis是内存数据库 但是不仅限于内存 redis有其持久化的方式 共有三种持久化的方式 方式1 生成dump rdb文件 方式2 生成appendonly aof文件 方式3 master slave 主从复制读写分离 RDB redi
  • 神州数码高端ERP系统在上海田岛工具顺利实施

    通过计算机和先进的管理软件实施企业高效管理 上海田岛工具有限公司是一家日资企业 位于上海工业之重的松江 松江工业园 经过近十年发展 已初具规模 并日益壮大 2001年二期厂房扩建并投产 公司主要从事刀具 卷尺及建筑用激光水准仪系列产品的加工
  • 【决战Koa之巅-1】花三分钟搭建一个简单的 Koa 服务

    KOA 是什么 基于 Node js 的下一代 web 开发框架 更直白一些就是使用 JS 开发 API 接口服务 怎么搭建 1 创建一个文件夹 mkdir koa test 2 进入文件夹 初始化 npm 根据提示输入即可 npm ini
  • 校园网络技术需求分析

    路由技术 路由协议工作在 OSI 参考模型的第 3 层 因此它的作用主要是在通信 子网间路由数据包 路由器具有在网络中传递数据时选择最佳路径的能力 除了可以完成主要的路由任务 利用访问控制列表 Access Control List ACL
  • ELK日志平台搭建(一)

    ELK企业级日志分析系统 ELK是由Elasticsearch Logstash Kiban三个开源软件的组合 在实时数据检索和分析场合 三者通常是配合共用 而且又都先后归于 Elastic co 公司名下 故有此简称 ELK中日志处理步骤
  • python二级模拟题

    PYTHON二级模拟题 一 选择题 每题1分 总分40分 1 下列叙述中正确的是 A 算法的时间复杂度是指算法在执行过程中基本运算的次数 B 算法的时间复杂度是指算法执行所需要的时间 C 算法的时间复杂度是指算法执行的速度 D 算法复杂度是
  • 滑动条控制(Slider Control)

    所有的控件的创建基本都是同一套道路 第一步 h中创建一个CSliderCtrl 类的对象 CSliderCtrl m ctrlSlider 第二步 cpp中的void CMyDlg DoDataExchange CDataExchange
  • Primetime 的使用

    开始 先建立目录并将PrimeTime本身所带的一个例子拷到新建的目录下 在下面的内容中将要用到这个例子 mkdir primetime cd primetime cp r SYNOPSYS doc pt tutorial cd tutor
  • 51单片机TI发送中断标志位阻塞程序运行

    在利用51单片机学习嵌入式开发的过程中 通常会利用单片机串口进行字符或字符串的收发操作 博主最近在写一个小程序的过程中遇到了这样一个问题 在主函数内利用串口进行一个字符串的发送操作 并且对发送中断标志位进行置零或置一 此外 在串口中断函数内