同事离职,接手其工作,C文件有个接收数组,
1:
主程序 定义: unsigned char receive_sbuf[8] ;
子程序 定义 extern unsigned char receive_sbuf[8] ;
此时,该系统与上位机通讯正常。
2:
后来我将所有的函数整合成一个大函数,因为疏忽,在大函数中同时有
unsigned char receive_sbuf[8] ;
extern unsigned char receive_sbuf[8] ;
两个定义,编译器不报警,系统正常工作。
3:
后来将 extern unsigned char receive_sbuf[8] ; 删掉,此时通讯不正常。
最重要的是: 在接收数据时,不限制接收字节数量,并且有 if(receive_sbuf[14] >0x12) 这样的判断条件,在1、2情况下正常 在3的情况下就不正常。
编译环境 :keil 4.72.9.0 单片机 stc12c5a60s2
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>