配送一个自己写的串口驱动程序用DMA接收数据接收完会产生一个空闲中断由此可判断接收完一个包的数据再配送一个我自己写的动态内存管理跟ESP8266的驱动在项目中测试460800的波特率30kb一秒的数据接收一包1024个字节每包需要应答15字节的情况下AT指令处理是使用多个缓冲级来处理模块发送过来的数据分别有模块应答缓冲级跟等待应答的缓冲级、被忽略的AT指令集的缓冲级(例如注册一个SENDOK\r\n则模块应答此条指令立刻清除缓冲级释放内存无需等待超时直接忽略)还有需要回调的缓冲级(则出现此指令调用回调函数)都是通过注册的方式来实现如果出现一包跟指令被分到一个包内AT处理函数一样可以搜索到AT指令使用strstr函数来实现函数的缓冲级都是指针不占用内存使用动态内存管理的方式有数据则创建内存放入数据作为一个缓冲级如果模块应答的数据在规定的时间内没有响应则删除此缓冲级函数前都有注释介绍下面介绍一些常用的函数:at_init初始化一些变量已经串口at_time_task使用定时器回调1毫秒回调一次用来计数超时的指令缓冲&等待超时的计数at_clear_all在模块开机的时候可能会有很多乱数据可以在初始化完毕后使用此函数清除所有缓冲级释放所有内存at_processing处理AT的应答超时的指令(做删除释放内存的动作),还有处理等待的AT指令此函数一定要不断循环处理可以加入到定时器目前我实验是在UCOS上的所以直接创建个任务来执行此函数当程序在等待某个AT指令的时候此函数会寻找接收的缓冲级是否有等待的AT指令at_cmd_cb_hand回调处理函数如果接收缓冲级出现某个已经注册的指令则回调注册时所填写的函数地址at_send_cmd发送一个AT指令可以用跟printf一样使用%d等等at_send_data发送数据的时候所使用需要填写长度at_cmd_ignore_register注册一个被忽略的AT指令带入参数*s(例如填写一个"SENDOK"则模块应答的此条指令直接被忽略释放内存被忽略之前会检查此缓冲级会不会带有别的AT指令需要回调的)at_cmd_ignore_cancel取消被忽略的指令则取消已经注册的被忽略的AT指令at_cmd_cb_registerAT指令的回调注册例如参数填写"+IPD",函数名a则出现+IPD的时候回调a函数a函数有类型在at.h文件里面有at_cmd_cb_cancel注销回调你懂得at_wait_cmd等待一个AT指令集或者超时则立刻返回等待途中会不断调用OS的延迟程序让系统能有时间去执行其他任务使用方法例如{at_send_cmd("AT+UART=%u,%u,%u,%u,%u\r\n",baudrate,databit,stopbit,parity,flow_control);return(esp_error)at_wait_cmd("\r\nOK\r\n",2000,NULL);}at_errorat_wait2_cmd(char*s,char*s2,u16timeout,u8*index)此函数是等待两个AT指令集如果出现一个则立刻返回返回值h文件有介绍AT_DONE则出现此条指令index参数则提取应答的缓冲首地址使用at_buf_get函数获取首地址使用完后要调用at_free_buf来清除并释放这个缓冲级at_buf_len_get查询此应答的缓冲级长度如果在index填写NULL则不需要缓冲级首地址直接清除释放缓冲级
1
明智智能充电器,串口曲线软件.2010-5-19Sunopux1.5.9(Build73)+Sunopux支持库升级到2.0+重新设计的数据接收机制,向下兼容+提供数据同步信号*修复帧数统计错误+导出数据提供同步信号+支持最小化到系统托盘+显示更多充电器状态-取消通道温度曲线输出*调整菜单布局*修复时间坐标计算的错误*修复帧数统计复位的错误*修复其他一些错误
1
(包含组网.发送数据.接收数据.COAP.UDP).所有功能都已经做好了.针对适用于STM8的芯片.其他的芯片.需要把底层的接口修改下.流程都是OK的
2025/6/25 17:31:54 169KB BC95 COAP 移远 NB
1
Android串口工具源码,通过JNI实现串口的连接,发送数据,接收数据。
不需要第三方包就可以实现我们自己的串口功能
2025/6/12 22:07:40 656KB Android JNI 串口
1
采用CS8416作为数据接收,SRC4192采样升频,PCM1792解码。
控制部分由单片机完成,有原理图有代码。
方便喜欢DIY的朋友试试。
我自己还没有试过,看过代码应该是好的。
有兴趣的朋友不妨试试。
2025/6/8 13:06:56 1.5MB DAC解码器
1
一、本课题的目的和意义全球定位系统GPS是近年来开发的最具开创意义的高新技术之一,其全球性、全天候的导航定位、定时、测速优势必然会在诸多领域中得到越来越多的应用。
GPS全球定位系统在实际生活中被广泛应用,是当今信息时代发展德重要组成部分。
因其具有性能良好、精度高、应用广的特点,使其成为了迄今最好的导航定位系统。
掌握GPS定位设计技巧,使自己所学的知识在现实中得以应用。
制作出一套设计方案,以软硬件相结合的方式完成整个GPS数据接收和显示的过程,以及用户对自己定位信息的管理与远程操作。
在生活中发挥这套方案的实用性,在防止贵重物件遗失,老人儿童防丢,以及需要得到定位信息的绝大多数场景下发挥有力作用。
二、课题的国内外开发动态随着数字大规模集成电路的发展和定位功能需求,GPS已经开始更多的嵌入到移动手持设备、消费电子产品中。
美国为了充分利用GPS系统的商业价值,独霸全球导航定位市场,近年来对GPS系统进行了一系列的更新。
而基于GPS的软、硬件系统大多数广泛应用于航天、航空、航海、运输、勘探等诸多领域,并且正在潮水般向人们生活中普及,在个人健康、物件安全方面更有应用市场,比如智能手环、摩拜单车、儿童智能书包等。
三、课题的基本内容制作出一套设计方案,以软硬件相结合的方式完成整个GPS数据接收和显示的过程,以及用户对定位信息的管理和远程操作。
达到用户通过手机端(Android)的应用软件,获取硬件GPS数据,以及用户收发远程操作指令。
万里寻踪系统作为一款GPS定位系统,它能够实时获取硬件经纬度信息,以及计算出移动方向和速度。
本系统按功能分为以下几个模块:(1)定位模块:手机端(Android)应用软件上面实时获取定位信息,展示在手机地图上。
(2)用户管理模块:实现用户的添加和删除,以及用户修改信息等功能。
(3)设备管理模块:实现设备的添加和删除,以及用户绑定等功能。
(4)登录管理模块:实现用户的登录信息的管理等功能。
(5)定位管理模块:实现用户对定位信息的管理,已经历史位置的查看等功能。
四、拟解决的主要问题本系统开发的难点主要有三个方面:一是硬件模块如何通过网络与系统建立通信;
二是手机端(Android)应用与系统是如何进行信息交换的;
三是系统面对大量硬件模块如何处理高并发的硬件请求;
只有硬件模块与系统建立实时的通信链路情况下,才可能把定位信息的发送给系统,和系统下发指令给硬件模块。
只有手机端(Android)应用与系统端是安全地、可靠地、精准地与系统进行信息交换,才不会发生定位信息的错误、定位偏差,或者用户信息被窃取。
系统面对数量巨大的硬件模块,要做到系统安全、正常地运行,也需要对系统架构合理地设计、实现。
此外,利用MySQL5.6建立好数据关系库和建立好客户端和服务器之间的连接又是另一个难点。
建立良好的数据库要从科学性、安全性、规范性、结构性等各个方面进行考虑。
客户端和服务器之间的连接要配置好数据库服务器等。
五、课题设计的实现方案(1)本系统开发语言的选择本系统使用的开发语言是Java语言,Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
因此在开发本系统时我把它作为本系统的开发语言。
(2)本系统开发工具的选择本系统将Eclipse当作Java集成开发环境(IDE)来使用,Eclipse包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。
由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;
例如,支持诸如C/C++、COBOL、PHP、Android等编程语言的插件已经可用。
本系统创建、管理数据库使用的工具是MySQL5.6。
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
由于MySQL是开放源代码的,因此任何人都可以在GeneralPublicLicense的许可下下载并根据个性化的需要对其进行修改。
MySQL因为其速度、可靠性和适应性而备受关注。
大多数人都认为在不需要事务化处
2025/5/26 5:25:08 40KB 毕业设计 开题报告
1
在对通信模型有了基本的认识时,学习到的仅仅是一个模型,如果想把这些真正的用于实际工作中,那么还需要不断的完善、扩展和优化。
比如经典的TCP读包写包问题,或者是数据接收的大小,实际的通信处理与应答的处理逻辑等等一些细节问题需要认真的去思考,而这些都需要大量的时间和经历,以及丰富的经验。
所以想学好Socket通信不是件容易事,那么接下来就来学习一下新的技术Netty,为什么会选择Netty?因为它简单!使用Netty不必编写复杂的逻辑代码去实现通信,再也不需要去考虑性能问题,不需要考虑编码问题,半包读写等问题。
强大的Netty已经帮我们实现好了,我们只需要使用即可。
Netty是最流行的NIO框架,
2025/4/11 9:35:11 2.33MB Netty——基本使用介绍
1
串行通信口简称串口。
美国电子工业协会EIA按电气标准及协议来分,包括RS-232C、RS-422、RS-485、USB等。
RS-232、RS-422与RS-485标准只对接口的电气特性作出规定,不涉及接插件、电缆或协议。
USB是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。
最常用的接口就是RS-232串口和并口,RS232是一个全双工的通讯协议,它可以同时进行数据接收和发送的工作。
本工具包含全代码。
2025/4/6 19:47:22 22.09MB 串口通信 C++ 全代码
1
利用stm32的串口中断和系统时钟中断实现对上位机韦根26的串口数据接收,并将其转化为韦根26发送出去。
2025/1/29 22:57:29 3.57MB stm32 韦根26
1
功能:发送数据,接收数据,可以显示接收和发送的字符数,新手观看更容易写自己的上位机程序。
2024/12/22 6:52:46 1.13MB C# 串口 调试 助手
1
共 57 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡