- 博客(66)
- 收藏
- 关注
原创 LWIP使用经验---变态级(好文章)
表1 pbuf类型与特点每一种pbuf分配内存的方式都不一样,如图2所示。图2四种数据包管理结构只有选择合适的pbuf类型才能发挥LWIP的最大性能,一个数据包可能是多种pbuf的组合,用链表连接起来,如图3所示。图3 pbuf链表。
2024-11-14 06:26:17
1222
原创 动态库与静态库优缺点比较_android java静态库和动态库的区别(1)
在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。本文仅限于介绍linux下的库。
2024-11-12 23:37:21
562
原创 动态切换底部导航栏及指定页面内容(uniapp开发小程序)_uni
将需替换页面封装成组件,将替换页面封装为组件。进入小程序首页时,通过vux存储全局判断Flag。通过全局Flag,结合uniapp中**uni.setTabBarItem(OBJECT)**方法切换tab栏文字和标题,同时判断,进行组件之间切换。这个思路已舍弃,代码已删除,采用思路二。进入小程序首页时,通过vux存储全局判断Flag,使用自定义组件替换原生组件。.配置vuex : uniapp中已经集成了vuex,我们直接用就可以。onload中:小程序每次进入时都要先获取一遍参数配置,然后初始化页面。
2024-11-12 23:35:21
1000
原创 利用注解实现spring基本配置详解_10
2.@Resource(JSR-250标准注解,推荐使用它来代替Spring专有的@Autowired注解)Spring 不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource、@PostConstruct以及@PreDestroy。1.在java代码中使用@Autowired或@Resource注解方式进行装配 ,这两个注解的区别是:@Autowired默认按类型装配,@Resource默认按名称装配,当找不到名称匹配的bean才会按类型装配。
2024-11-12 23:27:06
546
原创 利用STM32F103单片机输出SPWM波_改变spwm波的占空比
由于生成的正弦数据最大值是1000,输出PWM的ARR值也是1000,那么生成的正弦值就可以直接做为占空比用。如果生成的正弦波数据和ARR值不一样,在此处需要一个转换,用比例系数调整正弦波中的最大值刚好是占空比最大值就行。然后用中断检测这个脉冲,每次过零点到来时,在中断中将正弦波数组下标设置为0,这样每个过零点时,输出的正弦波也从0点开始输出。这样在定时器1输出PWM比的时候,在定时器2中断中调整PWM的占空比,这样输出的PWM波经过外部电容后,就是一个正弦波。数据生成好之后,下来设置定时器输出PWM,
2024-11-12 23:25:06
642
原创 利用nodejs对本地json文件进行增删改查_fs-extra json增删改查
下面我们来看一下json文件的结果。看,json文件已经被新增进来了。一开始的json文件是这个样子的。先看一下json文件长什么样。下面写nodejs的代码。
2024-11-12 23:23:06
204
原创 利用K8S技术栈打造个人私有云(连载之:K8S环境理解和练手)
好了,理论的东西看多了可能有点蒙,只能多找点不同的材料阅读并理解了。Service 是一个定义了一组Pod的策略的抽象,可以理解为抽象到用户层的一个宏观服务。可见debian容器中写入的东西在nginx容器中获得了,因此文件交换也完成了。本示例演示的是:部署一个包含Redis集群、基于PHP的留言板系统。本例子创建一个包含两个容器的POD,并在容器之间完成文件交换。可以看到debian容器已经停止了,nginx容器依然运行。,对于理解理论概念非常有好处,下面开始动手吧!
2024-11-12 23:18:58
884
原创 初入职场SVN使用教程,保姆级
所以啊,一般如果你们是使用svn协同开发的话,你们就会有中心服务代码,这个是你不需要管的,你只需要在你的电脑上安装好svn客户端就行了,上述已经告诉你如何安装了。可能有些人比较好奇,这个服务中心是啥在哪啊,这个一般就是svn服务器,也是需要搭建的,可以本地搭建,也可以远程搭建,公司一般就是远程大家,大家一起食使用了,这个大家感兴趣,我到时候可以另外写一篇教大家如何搭建svn服务器!
2024-11-12 23:16:58
1102
原创 创建双向链表(详解)_双向链表的创建
在单链表中,我们有一个数据域,还有一个指针域,数据域用来存储相关数据,而指针域则负责链表之间的“而在双向链表中,我们需要有两个指针域,一个负责,一个负责。同单链表一样,对双向链表的操作也有。
2024-11-12 23:14:57
551
原创 分享嵌入式软件调试方法和几个工具_adl400调试软件
我们常常说,软件三分写七分调。实际开发中,确实也是这样子的。我工作这几年了,对这体会也越来越深。每当需求一下来,我代码很快就可以写完,但是,调试需要花很多时间。这里需要明确的是, 调试的目的不仅仅是调通整个功能需求。调通功能是最基本的要求,还需要进行优化、完善逻辑、完善异常处理。所以,需要非常长的时间。记得毕业的时候参与的第一个项目,那个项目的硬件架构相对一般产品来说会复杂一些:我负责的部分就是D芯片的软件。
2024-11-12 23:12:57
915
原创 分享一份嵌入式软件工具清单_ide keil uvison iar rt-thread studio deveco studio
大家好,我是ZhengN。
2024-11-12 23:10:56
334
原创 分享一份嵌入式软件工具清单_ide keil uvison iar rt-thread studio deveco studio(1)
大家好,我是ZhengN。
2024-11-12 23:08:56
903
原创 分享一个开源的QT的串口示波器_qt示波器
注意由于QT自带文本显示窗口加载大量数据后会造成软件卡顿,现解决方案为设定一个显示缓冲区,在有刷新数据阶段(即串口接收数据阶段),如果需要保持刷新状态(即实时显示接收得数据),则仅显示显示缓冲区的内容,你可以使用鼠标移动向上滚动条,停止数据刷新,同时当你向上移动滚动条到一定程度,便会开始加载所有数据,如果你想再次触发实时刷新数据状态,只需要将滚动条移动到最低端,并确保有数据接收。逛github时看到这个QT的串口示波器,完全开源,支持串口、TCP、波形显示、通信协议。直接来源 | 果果小师弟。
2024-11-12 23:06:55
262
原创 分享一个开源的QT的串口示波器_qt示波器(1)
注意由于QT自带文本显示窗口加载大量数据后会造成软件卡顿,现解决方案为设定一个显示缓冲区,在有刷新数据阶段(即串口接收数据阶段),如果需要保持刷新状态(即实时显示接收得数据),则仅显示显示缓冲区的内容,你可以使用鼠标移动向上滚动条,停止数据刷新,同时当你向上移动滚动条到一定程度,便会开始加载所有数据,如果你想再次触发实时刷新数据状态,只需要将滚动条移动到最低端,并确保有数据接收。逛github时看到这个QT的串口示波器,完全开源,支持串口、TCP、波形显示、通信协议。直接来源 | 果果小师弟。
2024-11-12 23:04:55
339
原创 函数指针与软件设计_函数指针 解耦
接口是最高级的抽象。在linux kernel里面,接口的概念无处不在,像虚拟文件系统(VFS),它定义一个文件系统的接口,只要按照这种接口的规范,你可以自己开发一个文件系统挂上去。采用分层设计,每层都只需关心自己的东西,这减小了系统的复杂度,层与层之间的交互仅限于一个很窄的接口,只要接口不变,某一层的变化不会影响其它层,这隔离了变化。Signal(如boost的signal和glib中的signal)机制是一个典型的例子,一个对象自身的状态可能是在变化的(或者会触发一些事件),而其它对象关心它的变化。
2024-11-12 23:00:49
335
原创 「数字电路系列」博文目录,学习总结_第五版数字电路目录
在疫情前的一个多月里,工作不是很忙,将《数字电子技术基础~阎石版》这门课程重新复习了一遍,从事电子工作,数电和模电是必不可少的,也是需要不断理解学习的,本身课程有点难度,借此也写了10篇博客对每个章节进行了总结,其中有些章节不适合写博客,就没有撰写了,这篇博客借助思维导图对课本上所有的知识点进行了归纳总结。
2024-11-11 19:55:30
246
原创 「为什么代码要整洁?」——代码整洁度对于项目质量的影响,让我们通过这边文章来教你js和ts的代码整洁技巧,让你的项目更出众
使用方便搜索的名称:避免硬编码,对数据用常量const记录。类名应该是名词,方法名应该是动词。多个变量属于同一类型的属性,那就他们整合成一个对象。同时省略多余的上下文。其他:形参不超过三个,对测试函数也方便。多了就使用对象参数。同时建议使用对象解构语法,有几个好处:函数只做一件事,代码读起来更清晰,函数就能更好地组合、测试、重构。自顶向下地书写函数,人们都是习惯自顶向下读代码,如,为了执行A,需要执行B,为了执行B,需要执行C。如果把A、B、C混在一个函数就很难读了。
2024-11-11 19:53:30
706
原创 《黑马》——C++核心编程_黑马c+
*作用:**函数名可以相同,提高复用性同一个作用域下函数名称相同函数参数类型不同或者个数不同或者顺序不同函数的返回值不可以作为函数重载的条件//函数重载需要函数都在同一个作用域下cout
2024-11-11 19:51:29
722
原创 《计算机网络——自顶向下方法》习题答案和知识点总结 第一章_自顶向下方法课后答案
应⽤层报⽂:应⽤程序想发送和通过传输层的数据;传输层段:由传输层⽣成并且封装有传输层头信息的应⽤层报⽂⽹络层数据段:封装有⽹络层头信息的传输层段链路层帧:封装有链路层头信息的⽹络层数据段。
2024-11-11 19:49:28
986
原创 《画解数据结构》九张动图,画解顺序表_数据结构顺序表怎么画
目前本专栏正在进行优惠活动,在博主主页添加博主好友(好友位没有满的话),可以获取付费专栏优惠券。这篇文章,作者将用「 七张动图 」来阐述一种最基础的顺序结构「 顺序表 」相信看我文章的大多数都是「 大学生 」,能上大学的都是「 精英 」,那么我们自然要「 精益求精 」,如果你还是「 大一 」,那么太好了,你拥有大把时间,当然你可以选择🌳《画解数据结构》🌳。
2024-11-11 19:47:27
101
原创 《物联网 - 机智云开发笔记》第1章 机智云平台快速入门
笔者使用的‘移动网络’方案。产品开发的第一步是定义产品的功能,一个数据点可以定义为产品的某个功能,如开关等。笔者选择‘去编辑’。笔者下面定义了LED的数据点类型。进入首页,右上角创建,创建一个移动应用。应用包名需要唯一。接着等待片刻即可。根据自己喜好配置。接着关联产品。为产品添加控制页面。然后构建应用即可。等待构建完成即可下载。构建完成之后扫描二维码即可下载安装到手机。在没有实体之前,可以使用虚拟设备验证云平台。登录APP后,扫描虚拟设备的二维码,即可添加设备。
2024-11-11 19:45:27
723
原创 《数据库系统概论》第五版(王珊版)全书知识梳理_数据库原理王珊学习
本系列参考书目:《数据库系统概论》第五版(王珊版)《数据库系统概论》第五版(王珊版)是为“数据库系统”课程编写的教材,是很多学校数据库系统课程的指定教材也是经典教材,本系列根据课程重难点 整合此书精华部分,以求在尽可能短的时间内掌握相应知识,希望能够让你有所收获o(* ̄▽ ̄*)ブ后续还会进行更进一步的优化整理,欢迎关注,尽请期待。
2024-11-11 19:43:25
303
原创 《动手学深度学习》安装CPU计算的MXNet和GPU版本的MXNet
我目前也不清楚这里为什么要用cmd命令行窗口,但是之后运行的conda命令需要在Anaconda命令行窗口中执行,我这里再介绍一下,我启动的方法。在这里输入anaconda就可以选择进入了,因为进入默认是C盘,我们可以cd G:命令进入G盘(我这里是G盘,你们可以替换),然后使用激活gluon,最后使用进入浏览器中的jupoyter编辑器。
2024-11-11 19:37:19
818
原创 《人工智能各领域技能树汇总整理》_人工智能技能树
注明:以下图片来源于人工智能头条公众号,公众号上的图片会更清楚一些哦!如果觉得图片太小,看不清楚,可以单击图片放大,效果会好很多。
2024-11-11 19:35:19
298
原创 《Learning to Estimate 3D Hand Pose from Single RGB Images》 论文笔记
本文介绍了从2D彩色图像进行3D hand pose estimation的一种方法,总体来说方法很直观。论文摘要主要讲了以下几点:低成本的深度相机和深度学习使得能够从深度图像进行合理的3D手姿势估计;本文提出了一种从常规RGB图像估计3D手部姿态的方法。由于缺少深度信息,该任务具有更多的模糊性;为此,本文提出了一个深度网络,学习网络隐式3D关节的先验。与图像中检测到的关键点一起,该网络 产生良好的3D姿势估计;引入了基于合成手模型的大规模3D手势数据集用于训练相关网络。
2024-11-11 19:33:19
886
1
原创 《Autosar_BSW高阶配置》总目录_培训教程持续更新中
【CANFD/经典CAN/CANXL】专栏链接【诊断网络层/传输层(ISO 15765)】专栏链接】专栏链接")《UDS诊断(ISO 14229)》专栏链接》专栏链接")《OBD诊断(ISO 15031)》专栏链接》专栏链接")
2024-11-11 19:27:07
1035
原创 《Autosar_BSW高阶配置》总目录_培训教程持续更新中(1)
【CANFD/经典CAN/CANXL】专栏链接【诊断网络层/传输层(ISO 15765)】专栏链接】专栏链接")《UDS诊断(ISO 14229)》专栏链接》专栏链接")《OBD诊断(ISO 15031)》专栏链接》专栏链接")
2024-11-11 19:25:07
975
原创 __attribute__之section详解
return 0;return 0;argv)* 从段的起始地址开始获取数据,直到末尾地址*/do {++pf_init;return 0;
2024-11-11 19:16:49
1043
原创 __attribute__((section(x))) 使用详解
我们知道在传统的C语言编程中程序结构是这样的。init_xx();...while(1)...先进行若干个初始化程序,然后在循环的执行一段代码。这样开发固然可以,但是这样有一个让人非常不爽的地方,就是每写一个初始化函数都要在main函数中调用,非常的不方便。但是如果使用section先事先将所有的初始化函数加入到我们自己定义的输入段中,然后再在main函数中将这个输入段中初始化函数依次取出,这样就可在不修改main函数的前提下完成对系统的初始化了。
2024-11-11 19:12:42
1166
原创 NBiot M5311模组+STM32F103调试_stm32f103 如何选择 m5311(1)
M5311模组+STM32F103的调试,主要问题在串口,只要串口通信没问题,其它的都是AT指令搞定的。首先搞定STM32F103的USART,我用的是USART1,初始化如下。
2024-11-10 09:31:43
151
原创 Navicat Premium 安装_generating new rsa private key,it may take a long
然后将序列号输入,提示激活失败,那么就有个手动激活了。手动激活有个邀请码,输入后,俩次回车,就有个license,输入,不出意外可以激活。链接:https://pan.baidu.com/s/1aDmqqoFF4W-NZb-uaVyHnw。关键的时候到了,断网~~~
2024-11-10 09:25:44
174
原创 MySQL高级建表语句_mysql grouparray
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT’入职时间’VARCHAR(20) NOT NULL DEFAULT’’ COMMENT’职位’,VARCHAR(24)NOT NULL DEFAULT’’ COMMENT’姓名’,INT NOT NULL DEFAULT 0 COMMENT’年龄’,)CHARSET utf8 COMMENT’员工记录表’;
2024-11-10 09:23:44
528
原创 MySQL镜像下载及启动
如果数据库已经存在,将提示数据库已经存在,不再创建数据库,否则将创建数据库,如果删除已有数据库,例如bookDatabase;我把MySQL安装在了E:\mysql-8.0.23-winx64,在命令行窗口进入MySQL安装目录的bin子目录下。执行成功后,MySQ安装目录下多出一个data子目录(用于存放数据库),data子目录下找到.err文件。在MySQL安装目录下的bin子目录,cmd打开新的命令行窗口(不必管理员身份啦),输入。现在,我们来进行一些基本的数据库操作!命令格式为:use 数据库名;
2024-11-10 09:21:43
524
原创 MYSQL的常用命令和增删改查语句和数据类型_熟练mysql数据库的基本操作,能编写sql语句进行增删改查等命令的使用;
例 2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从 internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。
2024-11-10 09:17:43
845
原创 mysql查询错误 FUNCTION nvl does not exist
mysql 中没有nvl ()函数,使用ifnull代替,示例如下:mysql>
2024-11-10 09:15:43
327
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人