串口通信及中断

异步通信:发送和接收数据的双方用各自的时钟控制数据的发送和接收,为降低数据传输的错误率要求双方时钟尽可能一致。异步通信以帧为单位传送数据,由于每帧数据都具有起始位和停止位所以两帧数据之间的间隔时间不影响数据传送和接收的准确率,但是每帧数据内的各个二进制位间是以固定时间间隔传输的,即每个二进制位都有固定的传输速率,这个速率即为比特率,当一个码元仅表示0和1两种状态时(通信中常用时间间隔相同状态来表示一个二进制数字,这样的信号称为码元,而波特率表示每秒钟传输了多少个码元),一个码元等于一个二进制比特位,此时波特率与比特率大小相同,若是发送和接收双方的波特率不同,则会导致数据出现偏差。

同步通信:发送方和接收方的时钟完全同步,此时传输的数据帧间不留间隙

全双工通信:收发双方设备能同时实现数据的发送和接收(同时双向传输)

半双工通信:收发双方可实现双向数据传输,但同一时间段内只能实现单向传输,即收发不能同时进行

单工通信:收发双发只能实现数据单向传输

               

               全双工                                               半双工                                         单工

通信速率:通常以比特率来表示通信速率,当一个码元仅表示两种状态,例如0和1时,可用波特率来表示比特率,此时也可用波特率直接表示通信速率。

串口内部结构 

串口相关寄存器的配置

SCNO(串口控制寄存器)

SM0和SM1用于选择串口的工作方式

SM2用于多机位通信,主要用于方式2和3,而最常用的是方式1,此处不做过多解释。

REN:允许串行接收位,当REN=1时,启动串行口接收数据,当REN=0时,拒绝串行口接收数据

TB8和RB8均用于方式2和方式3中

TI:发送中断标志位,在数据传输过程中,当串行发送停止位开始时,由内部硬件置TI=1,并向CPU发出中断请求,进入中断程序并在数据发送完成后,需将TI软件置0,来结束中断请求,以便发送下一个数据

RI:接收中断标志位,在数据接收过程中,串行接收停止位的中间时,由内部硬件置1,向CPU发送中断请求,进入中断程序后,需将RI用软件置0,结束中断请求,以便接收下一个数据

PCNO(电源控制寄存器,可位寻址)

SMOD:波特率倍增位,当SMOD=1时,波特率提高一倍 

定时器1的配置(8位自动重装)

在选定波特率后,根据晶振频率和是否倍增波特率用相关计算器算出TH1和TL1的初值

例如:设置串口工作方式1,波特率位9600,波特率不倍增,使用中断的配置程序

#include <regx52.h>

void UART_Init()      9600bps@11.0592MHz
{
	TMOD &= 0x0F;     //高四位清零,低四位不变,其目的为在不改变定时器0的状态下配置定时器1
	TMOD |= 0x20;     //高四位置为0010,低四位不变,其目的为选择定时器1位工作方式2(8位自动重装计时器)
	SCON = 0x50;      //选择串口工作方式为10位异步收发器(8位数据),波特率可变
	PCON &=0x7F;      //波特率不倍速
	TH1 = 0xFD;
	TL1 = 0xFD;
	ET1 = 0;          //关闭定时器1的中断允许
	EA = 1;           //打开总中断
	ES = 1;           //打开串口中断允许
	TR1 = 1;          //打开计时器1;
}


//void UART() interrupt 4      //串口中断
//{
//	unsigned char Byte;      
//	RI=0;                    //清除接收中断标志位
//	Byte=SBUF;               //接收SBUF中的数据
//		                     //用接收到的数据执行相应操作
//}
hushichuanren
关注 关注
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蓝桥杯单片机比赛学习:7、中断系统之串口中断的基本原理
qq_58872950的博客
01-13 2059
串行通信:一条总线,一次只能传输1bit,只需要一根线节省成本,但是传输速率慢。并行通信:多条总线,支持多位同时传输,但需要多根线浪费资源,但是传输速率快。串行通信还包括:单工、半双工、全双工方式。单工:只能发送或者只能接受。半双工:既能发送又能接受,但不能同时进行。全双工:能同时发送并且接受。我们使用的串口是串行全双工通信方式。下面我们来讲一下串口相关的寄存器,如果想快速入手使用串口,那么请看最下面的串口的使用步骤。
stm32f407_串口中断_stm32f407的串口中断_
10-02
使用stm32f407芯片,配置串口,串口中断,在中断服务程序中获取串口数据
【嵌入式基础】串口中断通信VS串口DMA通信
qq_52791446的博客
10-21 4043
对比串口通信的不同方式,体味串口中断通信和DMA串口通信的区别
串口与中断的关系和使用--详细解释
最新发布
m0_74860500的博客
03-21 2154
在你描述的情况下,如果ESP8266没有连接好(可能是硬件连接问题或者初始化失败等原因),导致了在 `ESP8266_Init()` 函数中的初始化不成功,而且 `ESP8266_SendCmd()` 函数在检查连接状态时也一直返回失败,处理器在执行当前任务的同时,会检测到这个中断请求,然后跳转到预先设定好的中断服务函数(ISR),这个函数会处理串口接收到的数据。对于串口通信来说,如果串口数据接收的实时性很重要,你可能会将串口中断的优先级设置得比其他中断更高,以确保及时处理接收到的数据。
HAL库学习——串口中断
RealHero的博客
06-23 1万+
一、介绍 串口的传输方式包括:轮询、中断DMA,在此要介绍的是关于HAL库底层串口接收中断流程的讲解,包括串口错误的处理,中断回调函数以及错误中断回调函数的执行。 二、配置流程 首先使用STM32CubeMX配置串口参数和工作方式。如下图: 配置好基础参数波特率和数据长度,校验位,停止位后,选择NVIC Settings点击Enabled使能全局中断。 这样整个串口配置就完成了。 三、开启接收中断 ...
串口通信
weixin_30267697的博客
12-11 617
串口通信   版权声明:未经授权,严禁转载!   并行通信通常是将数据字节的各位用多条数据线同时进行传送 。   并行通信控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。    串行通信是将数据字节分成一位一位的形式在 一条传输线上逐个地传送。   串行通信的特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设...
stm32F4 配置串口+DMA 接收不定长数据 串口空闲中断
jeason的博客
04-10 9017
串口是一种很常见的通讯接口,通过串口回传数据是很多智能型的传感器都拥有的特点。 很多智能型传感器内置单片机 通过单片机将原始的数据处理,然后以串口的形式发送给用户单片机,用户单片机在利用串口得来的信息进行决策。 那么有没有一种简化通讯的方式呢 ? 那就是串口 +DMA了! 主要思想: 配置一个串口DMA接收 任务,任务搬运的数据量要大于一次通讯的总数据量(也就是DMA 的搬运工作还没结束 我...
采用串口中断方式实现串口通信
qq_52340288的博客
10-22 5839
中断方式中断方式是处理器和外部设备的数据传输方式。一方通过申请中断的方式与另一方进行数据传输,收发双方可以并行工作。中断系统中断装置和中断处理程序统称为中断系统。中断系统是计算机的重要组成部分。实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统。中断系统的应用大大提高了计算机效率。数据传输方式(处理器和外部设备之间)传输方式说明无条件传输处理器不需要了解外部设备状态,而直接进行数据传输查询方式传输前一方先查询对方的状态,若已准备好就进行传输,没有就继续查询中断方式。
51单片机 串口中断
热门推荐
zion--6135的博客
06-25 2万+
1.什么是中断 广义上的中断是指一个过程,举个简单的例子,打开了电脑,你正在放音乐,点击了暂停按钮,于是歌停了。这就是一个很明显的中断的例子。CPU正在做自己的事情(放音乐),鼠标点击了暂停,就等于给了CPU一个中断信号,CPU收到中断信号之后,进入中断服务函数(里面写着停止播放音乐具体实现)。中断过程可以概述为:CPU正在做的事-->中断源触发中断-->CPU收到中断信号--&gt...
stm32 USART串口
bhfantasy的专栏
01-01 2974
本文以USART1为例,叙述串口中断的编程过程。 1、先来讲述一下在应用串口中断时涉及到的一些库文件。 首先对于STM32外设库文件的应用编程,misc.c和stm32f10x_rcc.c是肯定要添加到。 接下来就是我们要用到的相关外设了。毫无疑问,串口文件stm32f10x_usart.c是必须的。串口通信是对通用GPIO端口引脚的功能复用,所以还需要stm32f10x_gpi
stm32之串口使用和串口中断
weixin_46098612的博客
03-21 8290
1.定义 串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式,其通讯协议可分层为协议层和物理层。物理层规定通信协议中具有机械、电子功能的特性,从而确保原始数据在物理媒体的传播;协议层主要规定通讯逻辑,统一双方的数据打包、解包标准。通俗的讲物理层规定我们用嘴巴还是肢体交流,协议层规定我们用中文还是英文交流。下面分析一下串口通讯协议的物理层和协议层。 2.通信基础 1.通讯结构 串口通讯的物理层的主要标准是RS-232标准,
使用串口中断方式实现串口通信
qq_52187415的博客
10-22 4224
总体来讲还是比较简单,要注意字符串的比较时的一些小细节,对于串口通信我们需要了解整个流程以及串口通信寄存器的作用。
中断定时计数器与串行通信PPT.ppt
11-02
中断定时计数器与串行通信PPT.ppt
stc串口中断
12-15
stc串口中断 #include<reg51.h> #include<intrins.h> #include<string.h> #define uchar unsigned char #define uint unsigned int uchar receive[10];//¶¨ÒåÊý×é10λ
串行通信中断方式子程序
07-25
本文给大家分享了串行通信中断方式子程序。
51单片机串口通讯中断应用
01-16
51单片机串口通讯中断应用
完整word版-串口通信中断法与查询法.doc
11-24
完整word版-串口通信中断法与查询法.doc
114-串口通讯中断应用(51单片机C语言实例Proteus仿真和代码)
06-15
114-串口通讯中断应用(51单片机C语言实例Proteus仿真和代码)114-串口通讯中断应用(51单片机C语言实例Proteus仿真和代码)114-串口通讯中断应用(51单片机C语言实例Proteus仿真和代码)114-串口通讯中断应用(51单片机...
ubuntu下的串行口通讯编程
稻草人的专栏
05-26 1万+
Linux 操作系统从一开始就对串行口提供了很好的支持,本文就 Linux 下的串行口通讯编程进行简单的介绍。 串口简介 串 行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是 RS-232-C 接口(又称 EIA RS-232-C)它是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。
keil5仿真串口中断
12-02
Keil5仿真串口中断是指在使用Keil5进行仿真调试时,对串口进行中断处理。串口中断是一种用来在数据传输过程中,当有新的数据接收或发送时,通过中断机制来及时处理的方法。 实现Keil5仿真串口中断的步骤如下: 首先,需要在Keil5的工程中设置串口相关的寄存器及中断向量表。通过设置串口的相应寄存器,如波特率、数据位数、停止位数等,来配置串口。 然后,定义一个中断服务子程序(ISR),用于处理接收或发送数据时的中断。在中断服务子程序中,可以获取相应的接收缓冲区数据或发送缓冲区数据,并进行相应的处理,如显示接收到的数据或发送数据。 接着,在代码中启用串口中断。通过设置寄存器或调用相关的函数,开启串口接收/发送中断使能,使得串口接收/发送过程中,当有新的数据接收或发送时,触发中断。 最后,在主函数中进行串口数据的传输和操作。通过调用相应的函数或操作寄存器,发送或接收需要的数据。 需要注意的是,Keil5仿真串口中断的具体步骤可能因芯片型号、采用的串口通信协议等而有所差异。在实际应用中,还需要根据具体情况进行相应的配置和调试,确保串口中断正常工作。 综上所述,Keil5仿真串口中断是一种在Keil5环境下对串口进行中断处理的方法,通过相应的配置和编程步骤,可以实现串口数据的及时接收和发送。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 蜂鸣器及其原理 8668
  • Finalshell上传文件失败或者进度总为百分之零解决方法 6618
  • DS1302时钟模块 3021
  • 串口通信及中断 2786
  • AT24C02芯片 2027

最新评论

  • Finalshell上传文件失败或者进度总为百分之零解决方法

    Kabooooom: 成功了但是这是为啥啊?

  • Finalshell上传文件失败或者进度总为百分之零解决方法

    Maple_nue: 牛比啊啊啊啊!你是我爹

  • 蓝牙模块AT指令

    jhy8421: 没有INIT指令吗?AT+INIT\r\n,我返回错误码E

  • Finalshell上传文件失败或者进度总为百分之零解决方法

    [B a]: 还是上传不上去表情包

  • Finalshell上传文件失败或者进度总为百分之零解决方法

    m0_74386055: 神医啊表情包表情包表情包

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • GoWin-Tang Nano 逻辑分析仪组合信号触发方式
  • GoWin—Tang Nano BSRAM使用方法
  • GoWin—逻辑分析仪
2024年8篇
2023年25篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

聚圣源聊斋艳谭之灯草和尚根据出来生日起名12生肖图片栗姓起名姓李的怎么取名起名大全烽燧女孩起名2018杨姓西游记目录奶茶店名字起名大全mylifestyle温如玉二虎小说全文免费阅读笔趣阁英文商标起名大全花城谢怜肉车长深入文字方与圆全集中国游泳队公布东京奥运名单按古诗词起名子心想事成姓李的男孩起名字大全2021年哇哇叫免费给孩子起名字大全2020决战朝鲜下载n64游戏下载美好酒店创意小吃店起名字起名免费网站九成国家公卫受冲击终极格斗冠军赛2010古钱币价格表win7升级win10大气的建筑企业起名淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化