不得不说国赛相比较省赛而言确实,功能变得更加复杂,更加繁琐,特别是串口+LORA通信相结合的更加频繁,且对收取的字符处理要求要更加复杂,处理判别起来会更加复杂。
对于收发数据本身来说,收发的数据本身是以字符串的形式,如果收取到字符串后仅仅用来显示,那就直接取显示部分的字符串即可但是偏偏还要判别字符串是否合法,符合某个数字区间,这就比较麻烦了
不得不说国赛确实时间要比省赛更加紧迫,真的是骄兵必败,不能掉以轻心
本此代码部分要注意的几个部分在于:
代码书写,还是要将整体划分成一个个小的模块来实现,最后模块之间测试可以通过Main接口直接测试非常方便,重要在于模块化后,模块之间是相对独立的,出BUG后可以单独锁定某个模块,测试修改也很方便,单个模块太大可以分俩小模块实现并链接
数据部分建议都定义成全局变量
这样的好处是模块A处理完这个数据后又可以调用模块B处理
单个功能太大太复杂,可以划分成两个或者多个小模进行逐层次处理,每个层次又是相对独立,方便锁定BUG区间
本次串口接收数据有个细节在于:
由于串口接收数据时DMA工作,这和cpu单独取数据不一样DMA取数据的时候可能才开始取,cpu就拿刚去的数去做处理,所以这里必须要延时一下让cpu等DMA取完再处理,这里是用DMA串口要注意的细节
长短按键我是第一次遇到,这里是用普通按键加定时器完成的,效果还不错
总的来说不能掉以轻心,在pc机和LORA双板之间通信,以及对接收数据处理方面还是要下功夫,同样的一些不常考的知识点也是后面熟练复习掌握的内容,防止被背刺