标题: 关于51单片机串口与PC端的通信理解 [打印本页]

作者: 学习习鸭    时间: 2021-1-11 22:03
标题: 关于51单片机串口与PC端的通信理解
想问问大家有没有做过51通过串口与PC端的通信鸭?串口中断是不是可以理解成定时中断差不多啊?可是定时器中断到一定时间就触发中断,但是串口中断怎么才能触发,我看了好像说什么接收或发送一定的数据格式就能触发中断,但是数据已经接收或发送了,触发中断还有什么意义么?
我太菜了,求大佬帮帮孩纸,应该怎么去考虑串口,编程应用的时候要注意哪些?(我也不知道我的问题描述清楚了没。。。求大佬轻喷~小弟先谢过大家了)


作者: wulin    时间: 2021-1-12 06:40
51单片机在发送完成或接收结束一个字节数据后都会产生中断请求。要不要响应中断请求并执行中断任务完全由程序编写者选择。以接收为例,实用中的串口通讯内容通常是若干字节(依据通讯协议)数据,下位机接收到一个字节数据暂存在SBUF寄存器中并自动置中断请求RI为1。CPU响应中断请求执行串口任务,读取SBUF寄存器中数据另存,软件清0中断请求标志RI。结束中断任务,等待下一个中断发生。当若干字节(依据通讯协议)数据全部接收完毕就对收到的数据串进行验证和解析,验证错误向上位机发送错误消息,要求重发,验证正确就执行相应任务。
作者: wangyuejia2015    时间: 2021-1-12 08:03
简单理解就是一个外部中断,中断信息一个字节。
作者: munuc_w    时间: 2021-1-12 09:04
沙发解释的很明白了。单片机串口收发数据有两种方式:查询和中断。查询工作方式是:CPU时刻检查串口状态,收到数据时,收到数据时及时的转存,不然收到下一个数据时当前的数据就被覆盖了。这种工作方式要占用大量的CPU时间,工作效率低。中断工作方式是:CPU做好串口及相关中断的初始化,CPU就不用时刻关注串口了,当收到数据时,硬件触发中断,在中断服务程序中及时的接收数据。发送数据亦如此。
作者: 学习习鸭    时间: 2021-1-12 10:06
munuc_w 发表于 2021-1-12 09:04
沙发解释的很明白了。单片机串口收发数据有两种方式:查询和中断。查询工作方式是:CPU时刻检查串口状态, ...

谢谢解答,我可不可以理解成单片机一直在工作,串口初始化之后,串口接收数据及发送数据都是由硬件自动完成的,它接收/发送完一定数据格式的数据后,产生串口中断告诉单片机,我数据接收了,你要做啥处理就做啥处理?
作者: munuc_w    时间: 2021-1-12 11:16
学习习鸭 发表于 2021-1-12 10:06
谢谢解答,我可不可以理解成单片机一直在工作,串口初始化之后,串口接收数据及发送数据都是由硬件自动完 ...

对头!
作者: 人人学会单片机    时间: 2021-1-12 11:55
建议你观看《人人学会单片机》 第21课开始。认认真真的好好学学。
作者: 学习习鸭    时间: 2021-1-13 16:52
munuc_w 发表于 2021-1-12 11:16
对头!

好的好的,十分感谢,谢谢谢谢




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1