永发信息网

关于51单片机SBUF问题

答案:2  悬赏:40  手机版
解决时间 2021-01-02 15:12
void main()
{
chushi();
while(1)
{
if(flag)
{
ES=0; //标志位确定是否收到数据
flag=0;
for(i=0;i<6;i++)
{
SBUF=table[i];
while(!TI);
TI=0;
}
SBUF=a[j++];
while(!TI);
TI=0;
SBUF=' ';
while(!TI);
TI=0;
ES=1;

}

这是通讯程序的一部分,我有不理解是SUBF只能存一个字节,那么FOR循环怎么把多个字节存进去了.

它内部到底是怎样工作的,只说接收数据的SBUF就好了
最佳答案
SBUF是单片机硬件的串口接收、发送缓存器,软件往SBUF写入数据后,会自动触发单片机硬件的数据发送,发送完毕后硬件将TI 置1,软件等到TI为1后将其清0,并进行下次发送,即再次写入SBUF。
接收数据时,硬件将接收到的数据放入SBUF,并置为SI标志位,软件可使用中断触发或轮询机制发现SI的变化,将数据从SBUF读出,存入设计的目标存储单元。
具体可参考单片机串口部分的手册。
全部回答
上面的应该是发送程序,SBUF只能发送或接受一个字节,也用不到FOR循环,接受的时候最好有一个判断字节长度的变量,比如定义一个Rxd_Number,具体程序可参考下面 void UsartData(void) interrupt 4 using 2 { ES = 0; //关串口中断 if(RI) { RI = 0; if(Rxd_Count < Rxd_Number) { receive_data[i] = SBUF; Rxd_Count ++; } } ES = 1; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
男友不接你,不送你上车怎么办?说明什么?
如何删除ios crash log
单选题在狭义相对论中,下列说法正确的是A.所
单选题Fatherwillnot________ustogooutat
单选题Ilikemychild________bedearlyand_
跳绳英语单词是什么?
阿强和阿燕裸体死在一间密室中、現场只留下一
我家水族箱的鱼沉底
单选题制印刷电路时常用FeCl3溶液作为“腐蚀
华为自带浏览器不好用,换什么浏览器好
单选题设a=log0.70.8,b=log1.10.9,则A.b>a
运方的客人请你到我家来做客作文300字
根抱石的寓意是什么
有关“西气东输”工程的说法,错误的是:A.会
想问一下ZL114A的导热系数,有知道的吗?谢谢
推荐资讯
单选题2006年10月22日,纪念红军长征胜利____
请问,篮球,你们都在北京哪打?
海员水手顶班三幅升职申请书范文
我喜欢跳绳英语怎么说
今天转的账卡上显示到账而怎么取不了现金
请问;融许众拓(通金所)是一家怎样的理财机构
现在计算机科学与技术专业前景如何?
节奏近义词
请问,对待感情到底应该是个什么态度?,曾经喜
安卓怎么制作铃声
台球桌需要多大空间
报了宜宾三中可以读宜宾一中不?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?