factory_test()函数在主循环中循环。
factory_rw为全局变量,默认0.所以只有上电就为0,请求上位机发送数据并接收。如果此时按键七秒进入产测,会将process_flag置1,进而将factory_rw置1进入下一步。否则只循环读取不执行下一步。
exit_flag为全局变量,上电置0
factory_test()函数在主循环中每秒调用一次。
一、factory.factory_rw == 0
factory_rw为全局变量,默认0.所以只有上电就为0,请求上位机发送数据并接收。

1.
连上产测系统时,通讯成功,产测系统发送一组数据,MCU接收。

此时将下发的SN号写入FLASH并赋给数组SnCode。并将factory全部清0后将process_flag置1并开启wifi联网测试。
2.
如果接收到另外一组数据,则退出产测

3.
第二次执行factory.factory_rw == 0且不退出产测时仅令factory.factory_rw =1。
二、factory.process_flag == 1 && factory.factory_rw == 1
令factory.factory_rw = 2;
传输32字节的数据:

第31位为前面所有位的和,作为校验和。
然后将这32字节的数据发送给上位机。
三、factory.process_flag == 1 && factory.factory_rw == 2
令factory.factory_rw = 0;
发送设备进产测之前的SN号,校验后发送给上位机。
1万+

被折叠的 条评论
为什么被折叠?



