社区
单片机/工控
帖子详情
[求助] 串口通讯中,寄存器SBUF中的数值不能改变?
jzc1983
2007-01-15 03:32:27
例如我想传一个10,SBUF=10; 但是我再写一条指令把SBUF数据读出来,结果是另外的一个数FF,求助
...全文
1152
12
打赏
收藏
[求助] 串口通讯中,寄存器SBUF中的数值不能改变?
例如我想传一个10,SBUF=10; 但是我再写一条指令把SBUF数据读出来,结果是另外的一个数FF,求助
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yestoyes
2008-04-11
打赏
举报
回复
我帮不了你,但可以帮你顶上去
aniya000
2007-11-09
打赏
举报
回复
学习老~谢谢!
双手托天理三焦
2007-09-27
打赏
举报
回复
发送SBUF和接收SBUF是二个不同的物理空间共用一个地址;读的时候是接收用的SBUF,这个SBUF是硬件从串口输入的,没有指令能改写;只读就是这个意思.
congcong_fire
2007-07-18
打赏
举报
回复
是不是你语言的格式错误了~
SBUF寄存器既可以当发送也可以当接受~
MOV A SBUF
MOV SBUF, A
wz
2007-07-11
打赏
举报
回复
有时侯在断电/上电时,怎么会接收到一些数据:0x00,0xff,
deletor
2007-07-11
打赏
举报
回复
哪位大侠知道:
如何清接收SBUF,
我看到复位后也不能清除,其状态不定!
我现在发送没问题,接收有时有问题:发'a'收到 0xD8;发'b'收到0xB1...
你可以试试flowercity(菜农)的方法,我觉得就没有必要清除,因为只有你收到新数据了才有必要去读。
看你的数据,发现收到的数据好像是错位了,你看一下上位机和下位机的波特率是否一致?或者晶振是否合适?
wz
2007-07-10
打赏
举报
回复
哪位大侠知道:
如何清接收SBUF,
我看到复位后也不能清除,其状态不定!
我现在发送没问题,接收有时有问题:发'a'收到 0xD8;发'b'收到0xB1...
yangb2014#
2007-07-10
打赏
举报
回复
同二楼,
flowercity
2007-01-16
打赏
举报
回复
此sbuf非彼sbuf
只要把2-3短接
你再次读取
接受的数据就是你发送的数据了
多试试吧
hjiongh
2007-01-16
打赏
举报
回复
单片机 SUBF有两个,一发一收,独立工作。
blueoceanli
2007-01-15
打赏
举报
回复
你放10的应该是cpu的发送缓存,这时候你看到的也应该是发送SBUF,接收缓存始终没有变化,所以有此结果
你不妨先将放你所谓的"10"的变量,赋予一个别的值,然后再让该变量=SBUF;
再看看结果是什么样吧?
lbing7
2007-01-15
打赏
举报
回复
SBUF物理上有两个的!!
一个只写,一个只读
你读的那个不是你写的那个,所以,不出来正常...
SBUF
(Serial Buffer)串行缓冲
寄存器
对于数据发送,我们可以将要发送的数据写入
SBUF
寄存器
,然后通过串口外设将其发送出去。对于数据接收,串口外设接收到数据后会将其。到
SBUF
寄存器
中
,然后我们可以从
SBUF
寄存器
中
读取接收到的数据。,在一些单片机或芯片
中
用于串口通信
中
数据的发送和接收。
SBUF
(Serial Buffer)是。发送数据,如
SBUF
= data;接收数据,如 data =
SBUF
;在串口通信
中
,
SBUF
寄存器
用于。
SBUF
数据缓冲
寄存器
SBUF
数据缓冲
寄存器
这是一个可以直接寻址的串行口专用
寄存器
。有朋友这样问起过“为何在串行口收发
中
,都只是使用到同一个
寄存器
SBUF
?而不是收发各用一个
寄存器
。”实际上
SBUF
包含了两个独立的
寄存器
,一个是发送寄存,另一个是接收
寄存器
,但它们都共同使用同一个寻址地址-99H。CPU 在读
SBUF
时会指到接收
寄存器
,在写时会指到发送
寄存器
,而且接收
寄存器
是双缓冲
寄存器
,这样可以避免接收
中
断没
串行口数据缓冲
寄存器
SBUF
之 初步了解
c52系列的
SBUF
有两个缓冲器 写
SBUF
的操作完成待发送数据的加载,读
SBUF
的操作可获得已接收到的数据。 两个操作分别对应两个不同的
寄存器
,一个是只写
寄存器
,一个是只读
寄存器
在所有的串行通信方式
中
,在写入
SBUF
信号的控制下,把数据装入相同的九尾移位
寄存器
,前面八位为数据字节,其最低位为移位
寄存器
的输出位。根据不同的工作方式会自动将1或TB8的值装入移位
寄存器
的第九位,并进行发送 串...
51单片机 特殊功能
寄存器
(SFR)
SBUF
使用方法
51单片机 特殊功能
寄存器
(SFR)
SBUF
使用方法 串行口
中
有两个缓冲
寄存器
SBUF
,一个是发送
寄存器
,一个是接收
寄存器
,在物理结构上是完全独立的。它们都是字节寻址的
寄存器
,字节地址均为99H。这个重叠的地址靠读/写指令区分:串行发送时,CPU向
SBUF
写入数据,此时99H表示发送
SBUF
;串行接收时,CPU从
SBUF
读出数据,此时99H表示接收
SBUF
。 单片机串口 #inc...
关于串口通信
SBUF
寄存器
随笔:
SBUF
寄存器
,以RXD为例,我一直以为是缓存移位
寄存器
发送来的数据,并且同时传给参数,传完之后
SBUF
就会里是没有内容的,这是我一开始理解的缓冲, 直到看到一段代码: void Serial() interrupt 4 // 串口
中
断服务 { if(RI) { cRecBuf[cRecNum++] =
SBUF
; // 接收数据 if(
SBUF
== '=') { cRecNum = 0; bRecOk = 1; } RI = 0; } }
单片机/工控
27,375
社区成员
28,770
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章