标题: 单片机SBUF能不能table[]=一样 改变[]内的数,改变它读出来的数 [打印本页]

作者: 米小忙    时间: 2024-1-25 00:43
标题: 单片机SBUF能不能table[]=一样 改变[]内的数,改变它读出来的数
SBUF能不能像table[]一样,改变[]内的数,改变它读出来的数。例如table[]={1,2} table[1]=2
作者: laoxu    时间: 2024-1-25 06:06
不行!
SBUF实际上是由两个寄存器组成, 一个发送一个接收(共用同一地址).
作者: Hephaestus    时间: 2024-1-25 10:05
就算行,有什么意义呢?接收SBUF里面的值是外部总线确定的,你改它除了骗你自己有什么用途?
作者: joyb    时间: 2024-1-25 10:13

SBUF可以赋值
作者: 米小忙    时间: 2024-1-25 10:51
Hephaestus 发表于 2024-1-25 10:05
就算行,有什么意义呢?接收SBUF里面的值是外部总线确定的,你改它除了骗你自己有什么用途?

不不不,我的意思是。如果想要在显示屏上显示一串字符,其中一个办法不是先建立一个table然后通过改变括号里的数,从而让table里的每个字符都在显示屏上展示出来,那如果我想通过串口输入的东西,把我输入的字符在显示屏上同步展示的话,能不能类比那个table,对SBUF做出同样的操作
作者: npn    时间: 2024-1-25 16:04
CPU改变SBUF寄存器的值会触发单片机内部串口模块发送字节的行为。
串口接收到字节后将其存入SBUF寄存器并触发串口中断,最后被CPU取走。
作者: 想进步要学习    时间: 2024-1-26 08:42
米小忙 发表于 2024-1-25 10:51
不不不,我的意思是。如果想要在显示屏上显示一串字符,其中一个办法不是先建立一个table然后通过改变括 ...

一般单片机SBUF接收只缓存1个字节,后边接收的数据会覆盖掉之前的。一般的操作定义一个你说的table数组,利用接收中断或者循环接收读取SBUF的值存入table,然后像你说的去操作table。那就是2个数组了,1个用于接收缓存数据,1个用于显示数据缓存。关于SBUF寄存器可以浏览相应芯片的数据手册。
作者: Hephaestus    时间: 2024-1-26 11:30
米小忙 发表于 2024-1-25 10:51
不不不,我的意思是。如果想要在显示屏上显示一串字符,其中一个办法不是先建立一个table然后通过改变括 ...

你要传给SBUF的数的范围呢?
作者: npn    时间: 2024-1-26 12:44
Hephaestus 发表于 2024-1-26 11:30
你要传给SBUF的数的范围呢?

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




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