| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 661 人关注过本帖
标题:怎么编写串口通信程序?
只看楼主 加入收藏
走廊下独白
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-5-6
收藏
 问题点数:0 回复次数:5 
怎么编写串口通信程序?
用C语言写程序,关于两个单片机之间的串口通信,当传送的是一个变量(有好几个值,)到另一个单片机上,怎么编程?求大神指教
搜索更多相关主题的帖子: 单片机 C语言 
2013-05-06 11:17
BeyondXX
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-5-10
收藏
得分:0 
我也是遇到了相同的问题。附上书上的一段代码://乙机接收程序
#include<reg52.h>
unsigned char idata buf[10];
unsigned char pf;
void main()
{
    unsigned char i;
    TMOD=0x20;
    TL1=0xfd;
    TH1=0xfd;
    PCON=0x00;
    TR1=1;
    SCON=0x50;
    do
    {
        while(RI==0);
        RI=0;
    }while((SBUF^0xaa)!=0);    //P判断甲机是否请求发送应答信号
    SBUF=0xbb;
    while(TI==0);
    TI=0;
    while(1)
    {
        pf=0;
        for(i=0;i<10;i++)
        {
            while(RI==0);
            RI=0;
            buf[i]=SBUF;//接收一个数据
            pf+=buf[i];//求校验和
        }
        while(RI==0);//接收甲机发送的校验和
        RI=0;
        if((SBUF^pf)==0)
        {
            SBUF=0x00;break;//校验和相同发“0x00”
        }
        else
        {
            SBUF=0xff;//校验和不相同发“0xff”,重新接收
            while(TI==0);//
            TI=0;
        }
    }
}
2013-05-10 00:41
BeyondXX
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-5-10
收藏
得分:0 
甲机发送程序
#include<reg52.h>
unsigned char idata buf[10];
unsigned char pf;
void main()
{
    unsigned char i;
    TMOD=0x20;
    TH1=0xfd;
    TL1=0xfd;
    PCON=0x00;
    TR1=1;
    SCON=0x50;

    do
    {
        SBUF=0xaa;     //发送联络信号
        while(TI==0);
        TI=0;
        while(RI==0);//等待乙机回答
        RI=0;
    }while((SBUF^0xbb)!=0);//乙未准备好,继续联络

    do
    {
        pf=0;
        for(i=0;i<10;i++)
        {
            SBUF=buf[i];    //发送一个数据
            pf+=buf[i];        //求校验和
            while(TI==0);
            TI=0;
        }
        SBUF=pf;
        while(TI==0);
        TI=0;
        while(RI==0); //等待乙机回答
        RI=0;
    }while(SBUF!=0);//应答出错,重新发送
}
2013-05-10 00:42
BeyondXX
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-5-10
收藏
得分:0 
我想的问题就是如何向数组buf[i]中赋动态的值,这些值都是要变化的。
2013-05-10 00:43
BeyondXX
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-5-10
收藏
得分:0 
上面连个程序编译都是没有问题的,就是看不到效果,无法判断发送到没有,接收到没有。
改进的实质是要向数组buf[i]赋值。特殊的是赋动态的值。
2013-05-10 00:45
lxh091018
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-12-3
收藏
得分:0 
有朋友能写modbus协议吗
2013-05-29 16:43
快速回复:怎么编写串口通信程序?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014760 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved