基本信息
源码名称:stc系列单片机串口通讯
源码大小:0.04M
文件格式:.zip
开发语言:C/C++
更新时间:2019-02-13
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍
51单片机,串口1和串口2,通讯程序,目前仅是60s2,通过修改配置文件可以达到所有串口通用,传输字节可根据单片机大小进行调节,可传输字符串也可以传输十六进制

void UartWrite(unsigned char *buf, unsigned char len){//串口数据写入,即串口发送函数,buf-待发送数据的指针,len-指定的发送长度
    while (len--){   //循环发送所有字节
        flagTxd = 0;      //清零发送标志
        SBUF = *buf  ;    //发送一个字节数据
        while (!flagTxd); //等待该字节发送完成
    }
}
unsigned char UartRead(unsigned char *buf, unsigned char len){//串口数据读取函数,buf-接收指针,len-指定的读取长度,返回值-实际读到的长度
    unsigned char i;
    if (len > cntRxd){  //指定读取长度大于实际接收到的数据长度时,读取长度设置为实际接收到的数据长度
        len = cntRxd;
    }
    for (i=0; i<len; i  ){  //拷贝接收到的数据到接收指针上
        *buf   = bufRxd[i];
		bufRxd[i]=0;
    }
    cntRxd = 0;  //接收计数器清零
    return len;  //返回实际读取长度
}
void UartDriver(){//串口驱动函数,监测数据帧的接收,调度功能函数,需在主循环中调用
    unsigned char len;
    if (flagFrame){ //有命令到达时,读取处理该命令
        flagFrame = 0;
        len = UartRead(buf, sizeof(buf)-2); //将接收到的命令读取到缓冲区中
        UartAction(buf, len);  //传递数据帧,调用动作执行函数
    }
}