感觉自己不擅长写程序把,三年来有一搭没一搭的写了零零散散的单片机程序。 出错,出错,再出错,一再的出错。信心一点点的被消磨掉。 最近写了一版程序,通过secs向4个LCDport写内容,通讯问题,硬件问题,最后并发系统问题, 多操作系统不了解,编写代码能力弱等等。 多进程运行着运行着死在进程里,要注意避免系统进程里面出现死循环以及潜在的死循环。 注意使用的全局变量。 当时设计的系统是用户发指令,我这边执行。 但是考虑到用户体验: 引发出来, (1)用户知道我在不在,H to E(主机到设备)发送握手指令,我方回复设备名称功能,版本号等信息。 (2)我方E to H 发送心跳指令,需要知道我这边是否一直在线。如果不在线,我这边关闭LCD, 不能引发错误指示。 (3)客户发送控制指令,如果控制指令出错呢,我方需要进行纠正,如果我这边没有正确显示呢,需要回复。 (4)我放设别接入拔出需要上报消息。 这样设计之后,我方的从机设别可以在对方的完全控制下。 软件写死的两点思考: 我方和上位机的通讯,导致失败的两个原因,一个是心跳频率太快,一个是指令发给我等待我的操作完成然后回复,这个过程时间太长。再灯带的时候有心跳发送出来,收发冲突导致错误。 我方和下位机失败的原因,程序出现死循环,我没发出去怎么办?,我发出去了没有收到怎么板。避免写死,要有超时机制和重发机制。 |
|