找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4415|回复: 9
收起左侧

关于单片机串行通信的问题 SBUF值给P1口,使LED灯亮

[复制链接]
ID:162665 发表于 2017-9-4 23:28 | 显示全部楼层 |阅读模式
5黑币
    用串口助手把值送给SBUF ,再把SBUF值给P1口,使LED灯亮。但是为什么不亮呢?问题出在哪里?老哥们帮看看
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int
uchar num;
void delay(uint z)
{
        uint x,y;
        for(x = z; x > 0; x--)
                for(y = 114; y > 0 ; y--);
}
void UART_init()
{
  TMOD = 0x20;           //定时器工作在方式2
  TH1 = 0xfd;
  TL1 = 0xfd;           //设置初始值,波特率为9600
  TR1 = 1;                   //打开定时器1
  SM0 = 0;
  SM1 = 1;                   //设置串行口工作为方式一
  REN =1;                   //允许串行口接收
}
void main()
{
  void UART_inti();
  while(1)
  {  
   while(!RI);
   P1 = SBUF;
   RI = 0;
  }
}

最佳答案

查看完整内容

main 中居然有这个void UART_inti();没报错么,去掉void
回复

使用道具 举报

ID:219796 发表于 2017-9-4 23:28 来自手机 | 显示全部楼层
main 中居然有这个void UART_inti();没报错么,去掉void

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:151348 发表于 2017-9-5 16:56 | 显示全部楼层
PC端发的什么,要是字符的话应该不行
回复

使用道具 举报

ID:213173 发表于 2017-9-6 06:20 | 显示全部楼层
串口通讯查询方式
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int
uchar num;
/*void delay(uint z)
{
        uint x,y;
        for(x = z; x > 0; x--)
                for(y = 114; y > 0 ; y--);
}*/
void UART_init()
{
        TMOD = 0x20;           //定时器工作在方式2
        TH1 = 0xfd;
        TL1 = 0xfd;           //设置初始值,波特率为9600
        TR1 = 1;                   //打开定时器1
        SM0 = 0;
        SM1 = 1;                   //设置串行口工作为方式一
        REN =1;                   //允许串行口接收
}
void main()
{
        UART_init();
        while(1)
        {  
                if(RI==1)                //查询接收中断请求标志位为1(已收到)
                {
                        RI=0;                //接收中断请求标志位清0
                        P1=SBUF;        //获取接收寄存器数据
                }
//                while(!RI);
//                P1 = SBUF;
//                RI = 0;
        }
}
回复

使用道具 举报

ID:162665 发表于 2017-9-6 21:33 | 显示全部楼层
sldx 发表于 2017-9-6 01:40
main 中居然有这个void UART_inti();没报错么,去掉void

没有报错
回复

使用道具 举报

ID:162665 发表于 2017-9-6 21:50 | 显示全部楼层
sldx 发表于 2017-9-6 01:40
main 中居然有这个void UART_inti();没报错么,去掉void

谢谢 问题已解决!!是因为没有去掉void,以及函数调用时把“init”写成了“inti”,,,,,,
回复

使用道具 举报

ID:162665 发表于 2017-9-6 21:52 | 显示全部楼层
但是问什么要去掉void呢?这个函数里没有返回值啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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