找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机SBUF能不能table[]=一样 改变[]内的数,改变它读出来的数

[复制链接]
跳转到指定楼层
楼主
ID:1110076 发表于 2024-1-25 00:43 来自触屏版 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
SBUF能不能像table[]一样,改变[]内的数,改变它读出来的数。例如table[]={1,2} table[1]=2
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:198296 发表于 2024-1-25 06:06 | 只看该作者
不行!
SBUF实际上是由两个寄存器组成, 一个发送一个接收(共用同一地址).
回复

使用道具 举报

板凳
ID:883242 发表于 2024-1-25 10:05 | 只看该作者
就算行,有什么意义呢?接收SBUF里面的值是外部总线确定的,你改它除了骗你自己有什么用途?
回复

使用道具 举报

地板
ID:1064915 发表于 2024-1-25 10:13 | 只看该作者

SBUF可以赋值
回复

使用道具 举报

5#
ID:1110076 发表于 2024-1-25 10:51 来自触屏版 | 只看该作者
Hephaestus 发表于 2024-1-25 10:05
就算行,有什么意义呢?接收SBUF里面的值是外部总线确定的,你改它除了骗你自己有什么用途?

不不不,我的意思是。如果想要在显示屏上显示一串字符,其中一个办法不是先建立一个table然后通过改变括号里的数,从而让table里的每个字符都在显示屏上展示出来,那如果我想通过串口输入的东西,把我输入的字符在显示屏上同步展示的话,能不能类比那个table,对SBUF做出同样的操作
回复

使用道具 举报

6#
ID:57657 发表于 2024-1-25 16:04 | 只看该作者
CPU改变SBUF寄存器的值会触发单片机内部串口模块发送字节的行为。
串口接收到字节后将其存入SBUF寄存器并触发串口中断,最后被CPU取走。
回复

使用道具 举报

7#
ID:633559 发表于 2024-1-26 08:42 | 只看该作者
米小忙 发表于 2024-1-25 10:51
不不不,我的意思是。如果想要在显示屏上显示一串字符,其中一个办法不是先建立一个table然后通过改变括 ...

一般单片机SBUF接收只缓存1个字节,后边接收的数据会覆盖掉之前的。一般的操作定义一个你说的table数组,利用接收中断或者循环接收读取SBUF的值存入table,然后像你说的去操作table。那就是2个数组了,1个用于接收缓存数据,1个用于显示数据缓存。关于SBUF寄存器可以浏览相应芯片的数据手册。
回复

使用道具 举报

8#
ID:883242 发表于 2024-1-26 11:30 | 只看该作者
米小忙 发表于 2024-1-25 10:51
不不不,我的意思是。如果想要在显示屏上显示一串字符,其中一个办法不是先建立一个table然后通过改变括 ...

你要传给SBUF的数的范围呢?
回复

使用道具 举报

9#
ID:57657 发表于 2024-1-26 12:44 | 只看该作者
Hephaestus 发表于 2024-1-26 11:30
你要传给SBUF的数的范围呢?

SBUF寄存器是个8位宽的寄存器,因此范围在0~255之间
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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