当前位置: 首页 > news >正文

六、串口通信

六、串口通信

  • 串口接口介绍
  • 使用串口向电脑发送数据
  • 电脑发送数据控制LED灯

串口接口介绍

在这里插入图片描述
在这里插入图片描述
SBUF是串口数据缓存器,物理上是两个独立的寄存器,但占用相同的地址。写操作时,写入的是发送寄存器;读操作时,读出的是接收寄存器
在这里插入图片描述

使用串口向电脑发送数据

#include <REGX52.H>
void UART_Init()
{SCON=0x40;  // SBUf不同配置PCON |= 0x80; // 波特率加倍TMOD &= 0x0F;		//设置定时器模式TMOD |= 0x20;		//设置定时器模式,自动重装TL1 = 0xF3;		//设定定时初值TH1 = 0xF3;		//设定定时器重装值ET1 = 0;		//禁止定时器1中断TR1 = 1;		//启动定时器1
}void UART_SendByte(unsigned char Byte)
{SBUF=Byte;while(TI==0);// 检测是否发送成功TI=0;// 需要手动置位
}
unsigned char Sec;// 向电脑发送一个以1秒递增的数据
void main()
{UART_Init();			//串口初始化while(1){UART_SendByte(Sec);	//串口发送一个字节Sec++;				//Sec自增Delay(1000);		//延时1秒}
}

电脑发送数据控制LED灯

void UART_Routine() interrupt 4
{if(RI==1)					//如果接收标志位为1,接收到了数据{P2=~SBUF;				//读取数据,取反后输出到LEDUART_SendByte(SBUF);	//将受到的数据发回串口RI=0;					//接收标志位清0,硬件只负责置1,需要软件清零}
}
void main()
{UART_Init();		//串口初始化while(1){}
}
http://www.lryc.cn/news/169798.html

相关文章:

  • 如何将 JavaScript Excel XLSX 查看器添加到Web应用程序
  • 网安周报|CISA发布增强开源安全性的计划
  • 使用 Docker 安装 Elasticsearch (本地环境 M1 Mac)
  • Visual Studio中MD与MT的区别及运行库类型选择
  • Vue3函数式编程
  • 【逗老师的无线电】艾德克斯TTL串口转网口
  • 如何修改jupyter notebook默认打开路径
  • 【leetcode】数组排序
  • 【C刷题训练营】第四讲(打好基础很重要)
  • MySQL 某个字段存储不了内容
  • 7.代理模式
  • 单例模式的安全写法
  • 牛客网SQL156
  • 【MongoDB】docker部署社区版(一)
  • 【Graph Net学习】GNN/GCN代码实战
  • RocketMQ 发送顺序消息
  • 【面试经典150 | 双指针】判断子序列
  • 自动驾驶信息安全方案
  • 【云原生】kubernetes中pod(最小的资源管理组件)
  • [DB]数据库--lowdb
  • Kotlin | 在for、forEach循环中正确的使用break、continue
  • 【C++】详解std::mutex
  • Matlab图像处理-Lab模型
  • 分布式ETL工具Sqoop实践
  • 展会预告 | 图扑邀您共聚 IOTE 国际物联网展·深圳站
  • 如何下载安装 WampServer 并结合 cpolar 内网穿透,轻松实现对本地服务的公网访问
  • iOS添加Mapbox地图库
  • destoon根据目录下的html文件生成地图索引
  • gRPC之gRPC流
  • Kafka Shell命令交互