keil c语言字符串赋值,keil c指针变量赋值 请指点下迷津

这个是我在多路温湿度控制系统中用到的接收方法,Rs485方式的

如果想采用Rs485的朋友也可以参考一下

#define FRAME_HEAD          0x24

uchar RxBuf[7];

volatile bit DataOK=0;

// RxBuf  0   1   2   3    4     5

//       |HEAD|ID|CMD|TEMP|HUMI|CKSUM1|

//static uchar *PRecCheckSum=(uchar *)&RxBuf[5];

static volatile uchar RxWrIdx=0;

//串口接收中断函数

void serial () interrupt 4 using 3

{

if(RI && !DataOK)

{ uchar ch;

RI = 0;

ch=SBUF;

if(RxWrIdx==0 && ch!= FRAME_HEAD) return; // 这里保证收到帧头

RxBuf[RxWrIdx]=ch;

RxWrIdx++;

if(RxWrIdx>=6) // 这里是收完

{

RxWrIdx =0;

if(RxBuf[5]==(RxBuf[1]+RxBuf[2]+RxBuf[3]+RxBuf[4])&& RxBuf[1]==myID)

DataOK=1;

}

}

}

在主循环中

while(1)

{

if(DataOK)

{

RxCMD = RxBuf[2];

TempWant = RxBuf[3];

HumiWant = RxBuf[4];

if(!(TempWant||HumiWant)) GetTempHumi();

SendData(0);

DataOK =0;

}

...

...

}

void SendData(uchar TxCMD)

{

TxBuf[2] = TxCMD;

TxBuf[3] =Temp;

//TxBuf[3] = TempWant+2;

TxBuf[4] =Humi;

//TxBuf[4] =        HumiWant+2;

TxBuf[5]=TxBuf[1]+TxBuf[2]+TxBuf[3]+TxBuf[4];

RS485 = Tx;

del_1ms(10);

SendBytes(TxBuf,6);

del_1ms(10);

RS485 =Rx;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值