指令系统
3D8串口通讯协议,默认设置:波特率:115200;校验位:无;数据位:8;每次命令由2个字节构成。先发送高8位(H7-H0),再发送低8位(L7-L0)。考虑到系统运行效率,以及编程的简单性,不设校验位,合计三种代码格式,使用三种开始码与之对应、不设结束码。 因为不设置结束码,所以必须要保证每条代码发送的完整性。
驱动流程:
1. 主板上电以后,再给上位机上电。保证主板提前进入监听状态。
2. 在上位机程序中,可以通过上述三种中指令的一种或多种组合,实现对一屏画面的赋值。
3. 赋值结束后,主板内部的数据缓存会保存这些值,并不断对LED进行扫描显示。上位机可以通过延时函数,控制两帧画面之间的间隔。
4. 循环步骤2、3,实现动画效果。
系统重置
系统重置在目前的通讯协议下显得尤为重要,因为指令有长有短,同时主板并不会去判断连接是否中断。所以当一条指令没有发送完整时,若出现通讯中断,主板会继续等待剩余指令发送完成。而如果此时重新建立连接,主板将不会把接收到的第1个字节作为开始码进行判断。这就导致通讯无法正常进行,此时需要重启主板,上位机重新开始发送数据,方可让通讯同步。 简而言之,在断开上位机与主板的连接以后,重新连接时,应重启主板,而后上位机再开始发送数据。 若使用控制棒,控制棒也将使用主板电源,所以此时若重启主板,主板和控制棒会同时重新启动。因为控制棒内部包含启动延时程序,所以使得在其发送数据之前,主板已经提前进入了监听状态。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部1条评论
快来发表一下你的评论吧 !