专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 单片机

在SBUF处设置0xAA, 运行到switch(a)处就返回了,不能进如 switch(a)内,该如何解决

发布时间:2010-06-14 15:56:25 文章来源:www.iduyao.cn 采编人员:星星草
在SBUF处设置0xAA, 运行到switch(a)处就返回了,不能进如 switch(a)内,
while(1)
  {

  if(RI)
  {
  RI = 0;
  a = SBUF;
  switch(a)
  {

  case 0xAA;
  ..........

  case 0xBB

  ..........
  }
  }
  }

  仿真的时后,打开serial channel
  在SBUF处设置0xAA, 运行到switch(a)处就返回了,不能进如 switch(a)内,
请问是何原因,我已用UV2,UV3两个软件了.



------解决方案--------------------
case 0xaa:{...}break;
case 0xbb:{...}break;
....
default:{}


格式你没写错吧
------解决方案--------------------
”在SBUF处设置0xAA“,并不表示接受为0xAA,因为接受和发送是一个SBUF。
------解决方案--------------------
你设置的SBUF,是发送寄存器,不是接收寄存器.
a=SBUF;
读的是接收寄存器. 所以你设置的任何值都不会直接影响程序的运行.
------解决方案--------------------
你的单片机从哪里接受字符?对方不发0xAA你就进不去。有仿真头的话可以设置断点。没有用示波器看看是不是接受端有AA(01010101)序列脉冲。
------解决方案--------------------
a = SBUF;在这条语句上设置断点. 单步执行这条语句,然后把a改成你要的值.
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: