简介:STM32与上位机之间用通信协议(自己定义)进行串口通信。
怎么判断上位机发过来的指令是正确的,而不是一串乱码?怎么从正确的指令中提取出想要的命令代号,从而实现想要的功能?方法:读取上位机发来的命令,逐位判断命令的包头和包尾,如果能对应上,则这串指令是正确的,然后从指令中提取想要的数据和命令等。
举个栗子:通信协议是自己定义的,不是modbus协议等。

如F05A 15 15251609021214 FF A5F0(都是16进制),F05A是包头,A5F0是包尾,黑色15是命令代号,中间蓝色是我想发的数据,橙色FF是校验位。
只要包头包尾校验正确,基本这串指令不会有问题。
2023/9/1 1:17:50 7.32MB STM32L0 串口中断接收 HAL库
1
国科大模式识别与机器学习2018-2019考试卷任课老师:黄庆明、常虹、郭嘉丰、山世光、李国荣、卿来云图像处理过,白纸黑字可打印。
15-17的试卷我上传的也有。
2023/8/31 3:48:23 808KB 国科大
1
15款FlashAS3.0游戏源码文件
2023/8/31 1:27:19 9.45MB 15款Flash AS3.0游戏源码 as3.0 游戏
1
本书高清PDF86M收集自网络,请在资源下载后24H内删除,著作权归原书作者。
如觉得图书非常有用,请自己购买纸质书籍。
Eclipse插件开发必备书籍,向作者致敬。
前言第1篇Eclipse起步篇第1章Eclipse概述第2章Eclipse安装与配置第3章Eclipse集成开发环境第4章EclipsecJava集成开发环境第5章Eclipse中CVS的团队开发第6章EclipsecJUnit工具第2篇Eclipse插件开发篇第7章初识Eclipse插件开发第8章重写HellocWorld模式第9章透视图第10章视图第11章编辑器第12章操作第13章对话框第14章其他扩展点第15章帮助第16章插件国际化第3篇EclipsecRCP开发篇第17章EclipsecRCP起步第18章解析模板生成RCP项目第19章菜单、工具栏、状态栏第20章透视图、视图、编辑器第21章RCP的其他用法第22章发布RCP产品第23章使用eFace进行RCP开发第4篇搭建常见的Eclipse开发环境篇第24章搭建EclipsecJEE开发环境第25章搭建EclipsecJME开发环境第26章搭建EclipsecRuby开发环境第5篇EclipsecRCP实战开发篇第27章RCP项目开发的前期准备第28章RCP项目的具体实施
2023/8/29 6:09:20 86.14MB Eclipse 插件
1
1、有两种对弈模式:人人对弈模式和人机对弈模式2、采用黑屏字符输入输出实现UI3、采用打分方法实现AI4、棋盘大小为15*15,棋盘将显示相应的行列号(A-O)5、棋子有两种颜色黑和白,代表着对弈的双方,棋子放在棋盘行列交叉处,惯例黑棋先下。
6、黑白任一方先连成5个棋子形成的直线(横线、竖线、对角线),则该方赢对方输7、任一方都没连成直线,且棋盘已满时,为和局8、最后一步下的位置有特殊标记
2023/8/28 4:46:41 5.38MB 五子棋 C++ 大作业 国科大
1
在Eclipse集成开发环境中设计实现一个Android下平台的即时通讯系统客户端,它能够使用户在Android手机客户端登录,并解析openfire服务器用户信息,完成在不同平台的客户端即时通信。
1、熟悉掌握Java的基本知识,学会运用Eclipse进行Android环境搭建,以及windows下的openfire服务器的搭建;
2、掌握用Eclipse进行Android平台的UI基本设计、HTTP网络协议及XML文件解析等关键技术的实现,深刻理解XMPP(可扩展消息处理现场协议)协议;
3、学习使用MVC模式来构建系统的客户端,并掌握这种程序设计模式,分析系统需求,设计出基于Android的简易即时通信系统,并利用AndroidSDK等予以实现,并对系统进行测试;
4、完成毕业论文的撰写,不少于12000字,阅读并翻译与课题相关的英文资料,不少于20000字符,参考文献不少于15篇,其中英文参考文献不少于2篇,完成的设计图纸不少于12幅。
2023/8/27 12:28:22 47.85MB Android 即时通信系统 毕业设计 论文
1
源代码:#include#include#include#include#definePI3.1415926/*定义常量*/#defineUP0x4800/*上移↑键:修改时间*/#defineDOWN0x5000/*下移↓键:修改时间*/#defineESC0x11b/*ESC键:退出系统*/#defineTAB0xf09/*TAB键:移动光标*//*函数声明*/intkeyhandle(int,int);/*键盘按键判断,并调用相关函数处理*/inttimeupchange(int);/*处理上移按键*/inttimedownchange(int);/*处理下移按键*/intdigithour(double);/*将double型的小时数转换成int型*/intdigitmin(double);/*将double型的分钟数转换成int型*/intdigitsec(double);/*将double型的秒钟数转换成int型*/voiddigitclock(int,int,int);/*在指定位置显示时钟或分钟或秒钟数*/voiddrawcursor(int);/*绘制一个光标*/voidclearcursor(int);/*消除前一个光标*/voidclockhandle();/*时钟处理*/doubleh,m,s;/*全局变量:小时,分,秒*/doublex,x1,x2,y,y1,y2;/*全局变量:坐标值*/structtimet[1];/*定义一个time结构类型的数组*/main(){intdriver,mode=0,i,j;driver=DETECT;/*自动检测显示设备*/initgraph(&driver,&mode,"");/*初始化图形系统*/setlinestyle(0,0,3);/*设置当前画线宽度和类型:设置三点宽实线*/setbkcolor(0);/*用调色板设置当前背景颜色*/setcolor(9);/*设置当前画线颜色*/line(82,430,558,430);line(70,62,70,418);line(82,50,558,50);line(570,62,570,418);line(70,62,570,62);line(76,56,297,56);line(340,56,564,56);/*画主体框架的边直线*//*arc(intx,inty,intstangle,intendangle,intradius)*/arc(82,62,90,180,12);arc(558,62,0,90,12);setlinestyle(0,0,3);arc(82,418,180,279,12);setlinestyle(0,0,3);arc(558,418,270,360,12);/*画主体框架的边角弧线*/setcolor(15);outtextxy(300,53,"CLOCK");/*显示标题*/setcolor(7);rectangle(342,72,560,360);/*画一个矩形,作为时钟的框架*/setwritemode(0);/*规定画线的方式。
mode=0,则表示画线时将所画位置的原来信息覆盖*/setcolor(15);outtextxy(433,75,"CLOCK");/*时钟的标题*/setcolor(7);line(392,310,510,310);line(392,330,510,330);arc(392,320,90,270,10);arc(510,320,270,90,10);/*绘制电子动画时钟下的数字时钟的边框架*//*绘制数字时钟的时分秒的分隔符*/setcolor(5);for(i=431;i<=470;i+=39)for(j=317;j<=324;j+=7){setlinestyle(0,0,3);circle(i,j,1);/*以(i,y)为圆心,1为半径画圆*/}setcolor(15);line(424,315,424,325);/*在运行电子时钟前先画一个光标*//*绘制表示小时的圆点*/for(i=0,m=0,h=0;i<=11;i++,h++){x=100*sin(
2023/8/25 8:11:27 142KB c语言实现电子时钟 课程设计
1
基于uniGUI的第三方控件Unifalcon完整源码版(2019-10-22),BuildwithExtJS6.7.0-uniGUI1.90.0.1510-HyperServer,基于UniGUI基础上扩展/新增了15个控件,是uniGUI的必备扩展控件包。
~最新版:uniGUI1.90.0.1511,后续请在我已上传资源中下载....
2023/8/24 20:03:11 10.24MB uniGUI Unifalcon
1
简易版扫雷程序代码publicclassMineSweeperGame2extendsApplication{Cell[][]cell;inttotalMines=0;intmarkBomb=0;//总的地雷数量,简单会有10个,一般会有40个,困难99个intshowMines=10;Strings=String.valueOf(showMines);Labeltips=newLabel("Gameisrunning!");LabelshowMineNum=newLabel("mines:"+s);publicvoidstart(StageprimaryStage){StagestartStage=newStage();//选择按钮的界面ButtonstartButton=newButton("RESTART");Buttonchooseeasy=newButton("EASY(10mines)");Buttonchoosenormal=newButton("NORMAL(40mines)");Buttonchoosehard=newButton("HARD(99mines)");BorderPaneprimaryPane=newBorderPane();HBoxstartPane=newHBox(15);StackPanetopButtonPane=newStackPane(startButton);StackPanetopButtonPane2=newStackPane(showMineNum);StackPanebuttomPane=newStackPane(tips);HBoxtopPane=newHBox(50);topPane.getChildren().addAll(topButtonPane,topButtonPane2);primaryPane.setTop(topPane);tips.setStyle("-fx-border-color:red;-fx-background-color:white;");showMineNum.setStyle("-fx-border-color:black");primaryPane.setBottom(buttomPane);buttomPane.setPadding(newInsets(15,15,15,15));topPane.setPadding(newInsets(15,15,15,15));startPane.setPadding(newInsets(15,15,15,15));startPane.getChildren().add(chooseeasy);startPane.getChildren().add(choosenormal);
2023/8/24 13:54:33 12KB java
1
本书通过介绍如何从麦克斯韦方程利用一系列简化假设直接得到集总电路抽象,在电气工程和物理间建立了清晰的联系。
本书中始终使用抽象的概念,以统一在模拟和数字设计中所进行的工程简化。
本书更为强调数字领域。
第1章电路抽象第2章电阻网络第3章网络定理第4章非线性电路分析第5章数字抽象第6章MOSFET开关第7章MOSFET放大器第8章小信号模型第9章储能元件第10章线性电气网络的一阶暂态过程第11章数字电路的能量和功率第12章二阶电路的暂态过程第13章正弦稳态:阻抗和频率响应第14章正弦稳态:谐振第15章运算放大器抽象第16章二极管附录A麦克斯韦方程和集总事物原则附录B三角函数及其恒等式附录C复数附录D解联立线性方程组
2023/8/19 14:34:56 2.65MB 模拟 数字 MIT 习题
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡