打印
[51单片机]

单片机串口发送数据一直不成功,求教各位帮忙指点

[复制链接]
972|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
阿熹|  楼主 | 2015-3-22 13:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在下写了一个DHT11温湿度传感器的程序,现在检测和LCD显示已经成功,可是串口发送总是失败串口助手也没法显示。之前自学的串口通信部分也只有半桶水没能完全掌握,这几天几夜想破头都不知到底哪里出了错,现在附上这部分串口的C代码,希望各位看官高手大神能够帮个忙,在这里谢谢各位了!!
/************************串口初始化****************/
void  chuankou_init()
{   
SCON=0X50;
TMOD=0X21;   
TH0=(65536-45872)/256;  
TL0=(65536-45872)%256;  
TH1=0xfd;  
TL1=0xfd;  
ET0=1;  
TR1=1;  
SM1=1;  
SM0=0;  
REN=1;  
EA=1;  
ES=1;  
}
/******************串口通信**********************/
void  chuankou()
{   
if(flag==1)   
{      
  flag=0;   
  ES=0;   
  TI=1;   
  switch(flag_on)   
  {      
    case 0: puts("Start!\n"); TR0=1;break;   
case 1: puts("End!\n"); TR0=0;break;      
case 2: puts("Error!\n"); break;      
  }   
  while(!TI);   
  TI=0;   
  ES=1;  
  }   
  if(flag_time==1)     
  {      
   flag_time=0;   
   ES=0;   
   TI=1;   
   printf("Hum:%d.%d\n",H_temp/100,H_temp%100);   
   if(((H_temp/100)>h_h)||((H_temp/100)<h_l))   
   {
     printf("Hem waring!!!\n");
}      
  printf("Tem:%d.%d\n",T_temp/100,T_temp%100);   
  if(((T_temp/100)>h_h)||((T_temp/100)<h_l))   
  {
    printf("Tem waring!!!\n");
}         
while(!TI);   
TI=0;   
ES=1;     
}
}
/************主函数****************************/
void main(void)
{
chuankou_init();   
while(1)   
{            
chuankou();         
  }
  }      
/***********串口中断***************/
void ser() interrupt 4
{   
RI=0;   
a=SBUF;   
flag=1;   
if(a==1)      
flag_on=0;   
else      
if(a==2) flag_on=1;     
else flag_on=2;
}  

相关帖子

沙发
受不了了| | 2015-3-22 14:06 | 只看该作者
用入门时的基本功,点灯,在串口的发送和gnd之间接一串电阻的发光二极管,如果没微亮那就是根本没发送出任何数据,用点灯还可以快速判断程序是否照你的思路在运行,是在何处出错了

使用特权

评论回复
板凳
mazhao141| | 2015-3-22 21:05 | 只看该作者
好多年没见到拼音这玩意了啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝