找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机串口通讯中的字符

查看数: 2406 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-4-12 16:38

正文摘要:

电脑和单片机通讯时,由电脑输入到单片机的字符信息,能否直接调用,用于单片机的条件判断 我用电脑输入的信息做判断,控制LED灯,结果LED灯没变化。 #include "reg52.h" typedef unsigned int u16; t ...

回复

ID:367369 发表于 2020-4-13 00:39
你可以把controller的值通过串口返回电脑看看值是否正确
ID:230975 发表于 2020-4-12 20:09
改把HEX选中再发送试试。
ID:717594 发表于 2020-4-12 17:19
1092648746 发表于 2020-4-12 16:50
你发送的是字符串'1'吧,对应接收的HEX码是0x31。有疑问可以看看ASCII码。
可以这样改一下
  recv=SBUF;  ...

void Usart() interrupt 4   
{              
  recv=SBUF;
  controller=recv-0x30;
  RI=0;                  
  SBUF=recv;   
  while(!TI);   
  TI=0;
  if(controller==0)
    {led0=0;}
   else if(controller==1)
        {led1=0;}   
}

改了下。刚烧录完可以。输入信息的控制还是不行。
ID:393699 发表于 2020-4-12 16:50
你发送的是字符串'1'吧,对应接收的HEX码是0x31。有疑问可以看看ASCII码。
可以这样改一下
  recv=SBUF;           //电脑发送的信息进入单片机缓冲器
  controller=recv - 0x30;  //减去0x30后的值为真正的数字

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

Powered by 单片机教程网

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