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

51初学者——从数据手册到串口通信(UART)

本篇是通过数据手册配置串口通信(UART)的过程,STC89C52RC单片机的UART即通用异步收发器,特点是全双工(可以同时收发),异步(需要约定好波特率,无时钟线)。

下图是串行口的各个寄存器

串行控制寄存器SCON
SM0可以用作检查帧错误,但它一般与SM1一起用于指定串行通信的工作方式,本篇将选择方式1,可变的波特率更灵活一些,我们可以选择想要的传输速率。方式三的话通常用于多机通信,因为方式三有9位,他的第九位可以输入1/0来区分是数据帧还是地址帧,同时,SCON的SM2口对于方式三来说可以设置硬件过滤功能,即让从机对地址帧的字节相应,方式1的SM2口则没这个功能。所以方式1的SM2口通常默认为0。
REN置1则允许串行接受数据,置0则串行只能发送不能接收,在这里我们将它置1。
TB8与RB8分别为方式二和方式三的接受和发送的第九位数据,这一方式一中rb 8是接收到的停止位,用于检测帧错误,它的值由硬件赋予。
TI和RI是中断标志位,每发送或接收一个直接都会将他们置1,请求中断,他们不会自动归0,需要我们手动置0。


下面是电源控制寄存器,只需要配置两位。
SMOD置1的话则波特率加倍,置0则不加倍,我们这里将它置0。
SMOD0用于选择是否进行帧错误检测,我们这里将它置0。

下图是数据缓冲寄存器SUBF
SUBF他其实是两个数据缓冲寄存器,一个是只读寄存器,另一个是只写寄存器。
只读寄存器即接收寄存器,只写寄存器即发送寄存器,这里的发送和接受都是相对于单片机而言的。
当我们将代码编译,烧录进单片机里面时,就是把数据存储到了发送寄存器,按下按键,发送寄存器会将数据发生到我们电脑上。这个过程数据是从单片机到电脑。
当我们将电脑的数据通过UART发送给单片机时,接收寄存器在起作用。我们还可以将接收寄存器的数据显示在单片机的OLED屏幕上。
SUBF是一个暂时性的数据存储器。像是一个中转站。我们在串口通信的写入和读出都是要经过他。

从机地址寄存器是用于硬件对比主机与从机的地址,他比软件对比更快,可以提高通信效率,他的值是固定的,不需要我们赋值。
IE,IPH,IP都是老朋友了,他们负责串口的中断,串口没发送或接收一个字节都会触发中断。如果我们只需要发送与读取功能的话,则不需要配置这几个中断寄存器。

需要注意的是,使用串口通信时我们还需要配置定时器1,定时器1是芯片设计时安排的可以用做充当UART的“时钟线”的定时器。因为UART没有独立的时钟线,所以我们需要与另一端约定一个相同的传输速率,即波特率,这个时候就需要定时器来充当这个内部时钟了。

http://www.jsqmd.com/news/617205/

相关文章:

  • 阶跃星辰Step3-VL-10B实战:AR眼镜实时画面流→物体识别→语音播报指令生成
  • 天津申强钢铁作为耐候钢制造厂产品质量好吗 - mypinpai
  • Pi0智能文档处理:PDF文本抽取与结构化
  • LFM2.5-1.2B-Thinking-GGUF赋能微信小程序:打造个人智能学习助手
  • VL53L0X_simple驱动解析:嵌入式ToF传感器裸机开发指南
  • N_m3u8DL-CLI-SimpleG:5分钟上手!M3U8视频下载终极指南
  • Pixel Couplet Gen 像素皇城一键部署教程:Python环境快速配置指南
  • Elsevier Tracker:如何高效管理你的学术投稿进度
  • lychee-rerank-mmGPU利用率提升方案:BF16精度下推理速度达12 img/s(4090)
  • OpenClaw学习助手搭建:Qwen3.5-9B-AWQ-4bit自动整理文献图片
  • G-Helper技术解析:轻量化华硕笔记本控制架构与实现
  • 5款高效内容解锁工具全面评测:突破信息获取限制的实用指南
  • 【深度学习笔记】CPU深度学习环境简易搭建及基础知识
  • Python 数据类型分类详解
  • Vite 8 全面 Rust 化!vue3-element-admin 升级实战,构建提速 65%
  • 1分钟快速上手:将你的编程智能体接入Memoria
  • Chandra-OCR多场景应用:法律合同解析、数学试卷数字化、表单复选框识别实战
  • AI+3D视觉重塑金属圆棒自动化上下料:高精度、快节拍、降成本实战案例
  • 深度解析Windows DLL注入:Xenos工具实战指南
  • SMUDebugTool:解锁AMD Ryzen处理器性能潜能的终极调试工具
  • OpenClaw监控方案:Phi-3-mini-128k-instruct任务异常自动告警设计
  • Pixel Script Temple 像素剧本圣殿:Python入门级图像生成实战教程
  • 3步重塑你的音乐体验:开源ncmdump工具完全指南
  • Android Studio Gradle下载太慢,国内怎么最快加速
  • 轻松修复Kindle电子书封面,让你的图书馆重焕生机
  • 一起走进HarmonyOS开发中Stage模型应用程序包结构
  • 如何突破限制:数字阅读自由的创新解决方案
  • 终极指南:如何在Mac上实现微信防撤回功能,让重要信息不再消失
  • Java接口:定义规范,解耦代码,一篇文章讲清楚
  • intv_ai_mk11应用场景解析:问答、改写、创作,一网打尽