单片机的串口通信---查询和中断

2023-05-16

一、单片机与外设的通信有三种方法:查询(除了while函数外,还可以开启内核或者应用层线程不断轮询),中断和DMA,这三种方式中,查询的话你可以理解为循环检测。在学8位单片机时我没遇到过DMA,DMA适用于传输比较大的数据量,其实也就是传输数据的时候不需要CPU参与,当传输完成会产生中断信号通知CPU,不要以为中断方式和DMA方式一样,虽然都会产生中断信号,但中断方式是通过中断服务函数不断将数据放到串口进行传送,而DMA产生的中断是数据已经传送完毕,需要进一步处理,通过中断服务函数来完成。中断方式是每发送一个数据就需要产生一次中断,而DMA是仅最后产生一次中断

二、串口通信有查询方式和中断方式实现,查询方式缺点在于cpu的时间都耗在了查询上面,而中断实现的话,cpu除了串口通信外,还可以做其他的事情。
查询方式就是程序里面不断的去读串口的接收标志,然后通过读到的标志位判断串口接收缓冲区里是否有数据,如果有,则调用接收函数;如果没有,等待一段时间候继续读接收标志,如此反复循环。

一般都是用中断方式实现,因为这种方式可以支持对多设备的驱动,操作系统里都是用中断实现的

在这里插入图片描述
在这里插入图片描述

三、https://baijiahao.baidu.com/s?id=1625782110677409687&wfr=spider&for=pc

在这里插入图片描述

四、
在这里插入图片描述
#include<reg52.h>

void main()
{
P1 = 0x0f;// 0000 1111 下面四个灯亮 上面四个灯灭
EX1 = 1;//INT1中断允许
EA = 1;//全局中断打开
IT1 = 1;//触发方式为下降沿触发
while(1);
}

void jump_low() interrupt 2
{
P1 = ~P1; //位反转
}
关于interrupt函数用法:

void +函数名+interrupt +数字0~4

0 表示外部中断0

1 表示定时器/计数器(T0)

2外部中断1

3:定时器/计数器(T1)

4:串行口

六、
在这里插入图片描述

七、内核的中断:内核在初始化时会初始化中断函数
在这里插入图片描述
在这里插入图片描述

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

单片机的串口通信---查询和中断 的相关文章

  • 总结记录一下如何统计CPU使用情况、磁盘利用率

    一 cpu使用率 可以使用 proc stat命中查看 举例 xff1a cat proc stat grep cpu cpu 1391321772 178 2524194226 33711208592 1046582 6540 38867
  • LCD1602屏幕简介(全网最详细教程)

    目录 1 接线说明 2 LCD1602显示原理 3 LCD1602时序分析 4 LCD1602显示一个字符 5 LCD1602显示一行 1 接线说明 第1引脚 xff1a GND为电源地 第2引脚 xff1a VCC接5V电源正极 第3引脚
  • .Net Core 获取上下文HttpContext

    1 先定义一个类 using Microsoft AspNetCore Http namespace BCode Util public class MvcContext public static IHttpContextAccessor
  • XML有关知识

    可扩展标记语言 起初w3c为了严格语法 xff08 html在各个浏览器的恶性竞争下语法已经变得很松散了 xff09 推出了xml 功能 xff1a 存储数据 xff0c 1 配置文件使用 2 在网络中传输 转载于 https www cn
  • pixhawk代码移植到不同stm32芯片

    本文基于pixhawk1 0 1代码 xff0c 移植需要的知识很多 xff0c 一两个文章可说不清楚 xff0c 里面涉及到编译原理 xff0c 操作系统 xff0c stm32 xff0c 计算机组成原理等 xff0c 需要长期积累 x
  • 转 Pycharm及python安装详细教程

    转 xff1a http blog csdn net qq 29883591 article details 52664478 首先我们来安装Python 1 首先进入网站下载 xff1a 点击打开链接 xff08 或自己输入网址https
  • Python基础(6)——实现输入任意多个数,并计算其平均值

    学习了Python相关数据类型 xff0c 函数的知识后 xff0c 利用字符串的分割实现了输入任意多个数据 xff0c 并计算其平均值的小程序 思路是接收输入的字符串 xff0c 以空格为分隔符 xff0c 将分割的数据存入列表 xff0
  • 校园网破解

    今天刷酷安看到了校园网破解 xff0c 正好有时间研究下 首先了解一下校园网的机制 平时在家用的wifi均为外部网进来接路由器LAN端口 xff0c 在路由器里填入你的宽带账号密码 xff0c 开启DHCP即可 这里的校园进来插到了LAN口
  • 绝命毒师第一季/全集Breaking Bad迅雷下载

    本季Breaking Bad Season 1 2008 看点 xff1a 新墨西哥州的高中化学老师沃尔特 H 怀特 xff08 布莱恩 科兰斯顿 Bryan Cranston 饰 xff09 是拮据家庭的唯一经济来源 他大半生安分守己 x
  • Linux 释放socket资源,LwIP使用select,close socket资源释放不完全问题

    这篇文章本应该在4月就写好的 xff0c 但是博客评论系统一直没有搭建好 xff0c 走了很多弯路 xff0c 现在好了 xff0c delay这么久 xff0c 终于要要补过来了 自建博客 xff1a 金宝的博客 该文章完全原创 xff0
  • __FILE__,__LINE__,__DATE__,__TIME__ c++常用的预定义名字

    C 43 43 有四个常用的预定义名字 xff0c 分别为 FILE LINE DATE TIME FILE 记录文件的路径加名称 LINE 记录文件已经被编译的行数 DATE 记录文件的编译日期 TIME 记录文件的编译时间 可以当作变量
  • 串口拓展

    今天桌子下面找出一个破电路板看到一颗芯片GM8125 xff0c 这个芯片主要功能就是拓展串口 GM8125可以将一个全双工的标准串口扩展成5个标准串口 xff0c 并能通过外部引脚控制串口扩展模式 xff1a 单通道工作模式和多通道工作模
  • HttpUtils

    package com rs zero crc common http import com rs zero crc modulars common constants SysConstantConf import com xiaoleil
  • 【转】C语言中的位域、字节序、比特序、大小端

    1 比特序 位序 bit numbering bit endianness 我们知道一个字节有8位 xff0c 也就是8个比特位 从第0位到第7位共8位 比特序就是用来描述比特位在字节中的存放顺序的 通过阅读网页http en wikipe
  • 位定义方法定义寄存器

    寄存器 位域 定义的语法格式 xff1a Struct 位域结构名 类型说明符 位域名1 xff1a 位域长度 类型说明符 位域名2 xff1a 位域长度 类型说明符 位域名n xff1a 位于长度 从右到左申明的 位域的申明不能横跨两个字
  • Qt 模拟一个导航定位系统

    版权声明 xff1a 本文为博主原创文章 xff0c 遵循 CC 4 0 BY SA 版权协议 xff0c 转载请附上原文出处链接和本声明 本文链接 xff1a https www cnblogs com lihuidashen p 115
  • RESTful Api 身份认证中的安全性设计探讨

    REST 是一种软件架构风格 RESTful Api 是基于 HTTP 协议的 Api xff0c 是无状态传输 它的核心是将所有的 Api 都理解为一个网络资源 将所有的客户端和服务器的状态转移 xff08 动作 xff09 封装到 HT
  • 在STM32 MDK实现类似__attribute__((__packed__))效果

    attribute 是GNU C对标准C语法的扩展 xff0c 是GNU C的一大特色 xff0c 可以用于设置函数的属性 xff0c 变量的属性 xff0c 类型的属性 在STM32 MDK实现类似效果 xff1b 实验数据如下 xff1
  • 那些年搞不懂的多线程、同步异步及阻塞和非阻塞(一)---多线程简介

    1 进程和线程的概念 进程 xff1a 运行中的应用程序称为进程 xff0c 拥有系统资源 xff08 cpu 内存 xff09 线程 xff1a 进程中的一段代码 xff0c 一个进程中可以有多段代码 本身不拥有资源 xff08 共享所在
  • python爬虫登录保持及对http总结

    前言 这几天一直看python爬虫登录保持 实现接口太多 xff0c 太乱 xff0c 新手难免云山雾罩 各种get post xff0c 深入理解一下 xff0c 其实就是由于http的特性需要这些操作 http是一种无状态 不保存上次通

随机推荐