写在最前面

华清远见教育集团
15年专注高端IT培训
做良心教育,做专业教育,做受人尊敬的职业教育

创客学院官网:http://www.makeru.com.cn/
华清远见创客学院嵌入式课程链接:http://www.makeru.com.cn/emb
华清远见创客学院物联网课程链接:http://www.makeru.com.cn/iot

 

正文

 

底层实现对数据的采集、分类、打包、发送,同时还要可以接收并解析上位机传递下来的命令。下位机通过串口来接收上位机下发的命令字,然后进行解析命令,然后去控制对应的硬件。

本文分析程序的设计思路。底层对串口传递过来的命令接收--解析--执行--跟新硬件状态标记。这里目前仅实现通过命令字0x60 0x61 控制led灯的亮灭。这里实际上就是一个串口处理程序。

 

首先定义统一的命令格式

 

然后主程序的流程

对输出设备硬件初始化,然后在while循环中轮询串口2中断标志位。当接收到数据后,进行数据分析处理。

 

串口2接收命令字

这里是串口2中断程序的实现,当接收到的数据流最后两个字节是 0a 0b(win系统下的回车换行符),节判断为接收完成了。数据存放在USART2_RX_BUF数组中,USART2_RX_STA是状态标记。

 

 

通过命令掩码判断

用命令掩码和命令进行与运算,然后判断掩码部分的内容是否是某一个类型的命令,然后进行相关的处理(或进一步判断)。

 

 

执行操作并且跟新硬件状态

实现对硬件的控制,跟新硬件状态描述。

 

 

通过串口助手,向下位机发送命令

嗯,就是这样。。