串口收发字符串问题

[复制链接]
2691|10
 楼主| alaic123 发表于 2013-1-7 14:46 | 显示全部楼层 |阅读模式
本帖最后由 alaic123 于 2013-1-7 15:25 编辑

想做到单片机接受一组固定长度字符串,再将字符串通过串口助手发出来,如果我发123456 结果是612345 请各位大神帮我指点指点
#include<reg52.h>
//#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int

unsigned char *p,a[6];
unsigned char flag,c,i;


void init()
{
    TMOD=0X20;
    TH1=0xFD;
    TL1=0xFD;
    TR1=1;        
      
    SM0=0;
    SM1=1;
    REN=1;
    EA=1;
    ES=1;


}

void main()
{
    init();
    while(1)
    {
        if(flag==1)
        {
               ES=0;
                p=&a;
                   while(*p!='\0')
                            {
                       SBUF=*p;
                           p++;
                        while(!TI);
                       TI=0;
                     
               
                        }
                ES=1;
        flag=0;
         }
    }
}


void ser()interrupt 4
{        int i;
    RI=0;
    a[i++]=SBUF;
if(i==6)

      {i=0;
     flag=1;
}



}

anazel 发表于 2013-1-7 15:25 | 显示全部楼层
真够乱的,怎么通讯又用查询方式又用中断方式呢
 楼主| alaic123 发表于 2013-1-7 15:27 | 显示全部楼层
anazel 发表于 2013-1-7 15:25
真够乱的,怎么通讯又用查询方式又用中断方式呢

不懂  什么是查询方式?
ZG11211 发表于 2013-1-7 20:06 | 显示全部楼层
本帖最后由 ZG11211 于 2013-1-7 20:08 编辑

主循环里有串口中断查询处理,可是下面又有中断处理程序,可以改一下,保留中断处理程序,主程序只做判断,若接收完123456这6个有效字节以后,在发送到串口发送出去。
cbs525 发表于 2013-1-7 22:39 | 显示全部楼层
我也对串口不懂
shaomeicai 发表于 2013-1-8 13:08 | 显示全部楼层
楼主犯了我当初学串口一样的毛病:查询就是主程序通过对flag的判**进行发送,可是你在中断里面已经发送了,没有必要通过对中断后flag的判别再发送了
 楼主| alaic123 发表于 2013-1-8 15:30 | 显示全部楼层
改变P++位置
 楼主| alaic123 发表于 2013-1-9 11:14 | 显示全部楼层
anazel 发表于 2013-1-7 15:25
真够乱的,怎么通讯又用查询方式又用中断方式呢

我现在才明白你的意思 大神以后能否详细点 您是言简意赅 可我这菜鸟就更摸不到头脑了
 楼主| alaic123 发表于 2013-1-9 11:17 | 显示全部楼层
收发问题解决了,但是还有新的问题产生
感谢shaomeicai;ZG11211;anazel 的意见,但是大神们以后能不能给的意见详细点,虽然问题对于你们都很简单,但我这菜鸟在你们那精辟的语言下更加摸不到头脑,心里更慌了
294411253 发表于 2014-4-13 12:08 | 显示全部楼层
alaic123 发表于 2013-1-9 11:17
收发问题解决了,但是还有新的问题产生
感谢shaomeicai;ZG11211;anazel 的意见,但是大神们以后能 ...

楼主你是怎么解决的啊 我写的代码和你差不多,也有这样的错误
294411253 发表于 2014-4-13 13:07 | 显示全部楼层
求大神解答下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:LIFE

3

主题

54

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部