专题文章
时长:00:00更新时间:2024-11-29 08:23:23
对于发送端,如果数据量较小,且发送时间间隔较短,可以采用中断查询的方式来接收数据包。具体实现如下:在中断服务程序中,可以定义一个接收缓冲区和计数器变量。,void serial () interrupt 4 using 3 { uchar a,cnt;a=0;cnt=250;// 如果波特率较低且系统时钟较快,cnt应定义为int型,并设置更大的值 RI=0;ES=0;// 关闭串口中断 str[a++] = SBUF;while(cnt--){ // 如果cnt等于0时退出循环 if(RI){ RI=0;str[a++] = SBUF;cnt=250;// 接收到新的数据,重新设定超时 } } ES=1;// 重新开启串口中断 // 这里可以设置一个接收数组的标志位。
查看详情