按你所说能进if 证明判断是有数据的 你用%c输出是有限制的 很可能是乱码,所以你以为是没数据你用这2句试试byte bt=*(char*)(rxdata+k); //字符型strtemp.Format("%02X ",bt);将字符送入临时变量strtemp存放再善意的提醒下,你最好不要用else的语句,因为接受一条数据可能经过几次if才收到,而多半时间是没有数据的
似乎是 龚建伟 的 代码你原封不动 的试试
获取串口事件处理应该单独放在一个线程里去做