找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1562|回复: 7
打印 上一主题 下一主题
收起左侧

关于51单片机串口与PC端的通信理解

[复制链接]
跳转到指定楼层
楼主
ID:658684 发表于 2021-1-11 22:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想问问大家有没有做过51通过串口与PC端的通信鸭?串口中断是不是可以理解成定时中断差不多啊?可是定时器中断到一定时间就触发中断,但是串口中断怎么才能触发,我看了好像说什么接收或发送一定的数据格式就能触发中断,但是数据已经接收或发送了,触发中断还有什么意义么?
我太菜了,求大佬帮帮孩纸,应该怎么去考虑串口,编程应用的时候要注意哪些?(我也不知道我的问题描述清楚了没。。。求大佬轻喷~小弟先谢过大家了)

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:213173 发表于 2021-1-12 06:40 | 只看该作者
51单片机在发送完成或接收结束一个字节数据后都会产生中断请求。要不要响应中断请求并执行中断任务完全由程序编写者选择。以接收为例,实用中的串口通讯内容通常是若干字节(依据通讯协议)数据,下位机接收到一个字节数据暂存在SBUF寄存器中并自动置中断请求RI为1。CPU响应中断请求执行串口任务,读取SBUF寄存器中数据另存,软件清0中断请求标志RI。结束中断任务,等待下一个中断发生。当若干字节(依据通讯协议)数据全部接收完毕就对收到的数据串进行验证和解析,验证错误向上位机发送错误消息,要求重发,验证正确就执行相应任务。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:775776 发表于 2021-1-12 08:03 | 只看该作者
简单理解就是一个外部中断,中断信息一个字节。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:752974 发表于 2021-1-12 09:04 | 只看该作者
沙发解释的很明白了。单片机串口收发数据有两种方式:查询和中断。查询工作方式是:CPU时刻检查串口状态,收到数据时,收到数据时及时的转存,不然收到下一个数据时当前的数据就被覆盖了。这种工作方式要占用大量的CPU时间,工作效率低。中断工作方式是:CPU做好串口及相关中断的初始化,CPU就不用时刻关注串口了,当收到数据时,硬件触发中断,在中断服务程序中及时的接收数据。发送数据亦如此。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:658684 发表于 2021-1-12 10:06 | 只看该作者
munuc_w 发表于 2021-1-12 09:04
沙发解释的很明白了。单片机串口收发数据有两种方式:查询和中断。查询工作方式是:CPU时刻检查串口状态, ...

谢谢解答,我可不可以理解成单片机一直在工作,串口初始化之后,串口接收数据及发送数据都是由硬件自动完成的,它接收/发送完一定数据格式的数据后,产生串口中断告诉单片机,我数据接收了,你要做啥处理就做啥处理?
回复

使用道具 举报

6#
ID:752974 发表于 2021-1-12 11:16 | 只看该作者
学习习鸭 发表于 2021-1-12 10:06
谢谢解答,我可不可以理解成单片机一直在工作,串口初始化之后,串口接收数据及发送数据都是由硬件自动完 ...

对头!
回复

使用道具 举报

7#
ID:390416 发表于 2021-1-12 11:55 | 只看该作者
建议你观看《人人学会单片机》 第21课开始。认认真真的好好学学。
回复

使用道具 举报

8#
ID:658684 发表于 2021-1-13 16:52 | 只看该作者

好的好的,十分感谢,谢谢谢谢
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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