首页 » 科学 » 串口中断-即将消失的单片机身手_串口_通讯

串口中断-即将消失的单片机身手_串口_通讯

乖囧猫 2024-12-02 13:12:04 0

扫一扫用手机浏览

文章目录 [+]

之前讲过中断的观点,没看过的小伙伴可以 “中断”-嵌入式的灵魂 看一下,本日给大家讲一下,三种中断中最不起眼的串口中断,说实话,串口中断不适宜单独讲,适宜放在通信里去讲。

大家都知道,我们做单片机想提高,肯定往通信连接的方向走,往这个方向就难免碰到串口通信的问题,本日我们就从最大略的UART(通用异步收发器)来讲,毕竟通信办法太多。

串口中断-即将消失的单片机身手_串口_通讯 串口中断-即将消失的单片机身手_串口_通讯 科学

详细的通信什么的我就不讲了,单独讲。



串口中断-即将消失的单片机身手_串口_通讯 串口中断-即将消失的单片机身手_串口_通讯 科学
(图片来自网络侵删)

这里要明确一点,串口中断便是做事于串口的,别的地方用不着,而且以我的认知只有51保存了,而且发扬光大,别的都直接 上库 ,以是以下我用51单片机来讲。

开始:

单片机会通过一系列的操作将多位数据传出去或者传回来。

以上便是串口通信的核心,单片机在传出去或者回来的时候都会经由一个“容器”,这个“容器”专业名词是SBUF,记住 去和回来都是这个;

那问题来了,都是一个我们如何去用它,这时候我们就可以用串口中断了;

比如你现在正在往外发送数据,经由SBUF停下来了,只有串口中断开了你才能出去,像一个保安,回来也是一样,必须经由在串口中断才行;

详细怎么配置我用51程序给大家看一下:

#include <reg52.h>#define uchar unsigned char#definr uint unsigned int unsigned char flag,a,i;uchar code table[] = "I get";void init(){TMOD = 0x20;TH1 = 0xfd;TL1 = 0xfd;TR1 = 1;REN = 1;SM0 = 0;SM1 = 1;EA = 1;ES = 1;}void main(){init();while(1){if(flag == 1){ES = 0;for(i = 0;i < 6; i ++){SBUF = table[i];while(!TI);TI = 0;}SBUF = a;while(!TI);TI = 0;ES = 1;flag = 0;}}}void ser()interrupt 4{RI = 0;a = SBUF;flag= 1;}

之间一贯一直的开启或者关闭串口中断,便是为了防止进去的出来的懵逼。

标签:

相关文章

盐田IT外包,助力企业高效发展的创新途径

随着信息技术的飞速发展,企业对IT服务的需求日益增长。在激烈的市场竞争中,企业如何实现高效发展,成为业界关注的焦点。近年来,盐田I...

科学 2024-12-28 阅读0 评论0

睿智IT,引领未来,塑造智能时代

随着科技的飞速发展,信息技术已经成为推动社会进步的重要力量。在这样一个日新月异的时代,睿智IT以其独特的创新精神和卓越的技术实力,...

科学 2024-12-28 阅读0 评论0