|
程序错误如下: void fh_zi(unsigned int a) //返回字符到串口 { ES=0; //TI=0; //删除 SBUF=a; while(!TI); TI=0; //TI值0 ES=1; } 以及串口接收函数中: if(i_index==10) |
ahshmj 发表于 2016-9-12 11:13 有这个错误,但不是致命错误 |
| 楼主你这个小程序问题多多。。。 |
| 串口寄存器是8位的!unsigned char。 |
| 应该是程序问题,判断接收头和尾的时候多装入了一次 |
| 没有人知道? |
|
void ser() interrupt 4 //串口 { if(RI == 1) { RI=0; date_zi[xia][i_index] = SBUF; i_index++; if(i_index==10) //这里改等于10,不然将会写入到date_zi[xia][10]中,数组访问溢出!!! { i_index=0; for(i=0; i<10; i++) //这里的11改成10,不然同样是数组访问溢出的问题 fh_zi(date_zi[0][i]); for(i=0; i<10; i++) fh_zi(date_zi[1][i]); for(i=0; i<10; i++) fh_zi(date_zi[2][i]); for(i=0; i<10; i++) fh_zi(date_zi[3][i]); } } } |