STC15系列单片机与迪文DGUS屏应用之(六):单片机程序编写
最后一个函数,就是GIOP_StateRefresh()IO状态刷新的函数了,这里主要是通过一个比较简单方法,来获取当前板子上的一些输入输出状态,然后通过串口发送到DGUS屏显示。
笔者能力有限,所以在本例中使用的都是一些比较笨的办法,但是笔者相信大家肯定会有更多更好的办法来实现该项目的功能,欢迎大家站内私信或者向直接通过论坛问答频道向笔者提问。
最后,也就是本项目中比较关键的一个知识点,那就是关于DGUS屏的指令的接收处理,在前面介绍有介绍过迪文DGUS屏的指令构成:
本例中,DGUS工程配置的时候,就将帧头设置成了5A A5,由于没有启用CRC校验,因此,我们也不需要关注CRC校验。对于接收迪文DGUS指令的思路是这样的:
先判断帧头,如果帧头验证成功了,就意味着是DGUS屏在下发指令,接下来,就要判断数据的长度,所以这个长度位Len就要起到比较关键的作用了,这个长度位Len本身就是指后面跟随数据的总长度,因为,我们只需要在接收到Len个数据后,就可以认为是接收完成了,而后即时在接收到数据也不管了。当然,除非后面的数据又是以5A A5开头的,也就意味着是一帧新的数据的到来。
在串口接收数据完成之后,会让一个变量Uart1RXFinish置1,然后再Uart1_Monitor()函数中,一旦检测到Uart1RXFinish为1后,就开始解析数据,解析完成后,将标志位Uart1RXFinish清零。这样一来,就实现了对DGUS屏指令的接收及解析。
至此,整个项目就完成了,只需把代码下载到板子中,并将板子跟DGUS屏连接起来,就能看到项目要实现的效果了。在后续的操作文章中,笔者将会给大家介绍更多DGUS屏和单片机的相关操作,敬请期待!
图片新闻
最新活动更多
-
11月28日立即报名>>> 2024工程师系列—工业电子技术在线会议
-
11月29日立即预约>> 【上海线下】设计,易如反掌—Creo 11发布巡展
-
11月30日立即试用>> 【有奖试用】爱德克IDEC-九大王牌安全产品
-
即日-12.5立即观看>> 松下新能源中国布局:锂一次电池新品介绍
-
12月19日立即报名>> 【线下会议】OFweek 2024(第九届)物联网产业大会
-
即日-12.26火热报名中>> OFweek2024中国智造CIO在线峰会
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论