- 博客(88)
- 收藏
- 关注

原创 网络编程 IO多路复用 [select版] (TCP网络聊天室)
网络编程 IO多路复用 [select版] (TCP网络聊天室)//head.h 头文件。//TcpGrpSer.c 服务器端。//TcpGrpUsr.c 客户端。
2023-07-30 16:07:34
855

原创 网络编程 IO多路复用 [epoll版] (TCP网络聊天室)
功能:创建一个epoll句柄//创建红黑树根节点 epoll把要监测的事件文件描述符挂载到红黑树上。timeout:超时检测 >0:毫秒级检测 ==0:立即返回 -1:不关心是否超时。EPOLL_CTL_MOD:修改epoll检测的事件类型。EPOLL_CTL_DEL:将文件描述符从epoll删除。EPOLL_CTL_ADD:添加要监测的事件文件描述符。>0:准备好的文件描述符的个数。返回值:成功返回根节点对应的文件描述符,失败返回-1。参数: epfd:epoll_create创建的句柄。
2023-07-30 15:46:50
1101

原创 驱动开发 day3 (模块化驱动启动led,蜂鸣器,风扇,震动马达)
模块化驱动启动led,蜂鸣器,风扇,震动马达并加上Makefile。//编译驱动(注意Makefile的编译到移植到开发板的内核)封装模块化驱动,可自由安装卸载驱动,便于驱动更新。//编译fun.c 函数(用到交叉工具编译)1.安装模块驱动同时初始化各个设备并使能。3.通过c函数程序输入控制各个设备。mycmod.c //驱动函数。2.该驱动会自动创建驱动节点.head.h //头文件。
2023-07-25 19:58:24
1218

原创 网络编程 TCP电子网络词库
客户端 tcp_cli.c。头文件 head.h。服务器 main.c。功能函数 fun.c。实现以下电子词典功能登录注册功能,不能重复登录,重复注册。用户信息也存储在数据库中。单词查询功能历史记录功能,存储单词,意思,以及查询时间,存储在数据库基于TCP,支持多客户端连接采用数据库保存用户信息与历史记录将dict.txt的数据导入到数据库中保存。返回上级、按下ctrl+c退出客户端后,该客户端退出登录
2023-06-03 10:38:43
97289
原创 windows批处理脚本(if命令)
BAT批处理脚本中的IF语句用于执行条件判断,根据条件是否满足来决定执行不同的命令。IF语句的基本语法格式如下: :表示取反,即如果条件不满足时执行后面的命令。 :条件表达式,可以是以下几种: :检查上一个命令的退出代码是否大于等于指定的数字。 :检查两个字符串是否相等。 :检查文件是否存在。 :检查变量是否已定义。 如果条件满足,则执行;如果不满足,可以执行后面的。检查文件是否存在: 比较字符串: 检查变量是否定义: 结合ERR
2025-02-26 11:41:04
430
1
原创 开发小技巧分享 02:xml解析工具
对于开发者而言,我们经常会遇到各种各样的配置文件,很多时候开发人员喜欢用较为轻便的json来存储相关的配置信息。因而,如何解析好json文件就成为了我们开发人员的一项基本技能。的子集,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML是标准通用标记语言 可扩展性良好,内容与形式分离,遵循严格的语法要求,保值性良好等优点。类似的,xml功能与json有很多相类是的地方,不同的是,xml比json多了些属性解读,注释等的用途,对于数据存储而言有了更多的可拓展性。
2025-02-18 15:30:05
747
原创 车载音频开发(三):对wav音频做定浮点转换(采样深度转换)
对于不论多少位的定点采样,通常都要将其转换为浮点数(归一化)对其进行处理,且在wav定点采样存储时,数值超过1或小于-1的值通常无意义,即不论多少位的定点采样,在转换至浮点时,其值不能超过1,且不能小于-1;当浮点转定点时,若数值在-1到1的范围内,乘上所要转换的位深度的最大取值;当数值超过1或小于-1时,通常会把大于1或者小于-1的数直接赋值为1或-1;IEEE 浮点数: [-3.4*10^38, -1.18*10^-38] ∪ [1.18*10^-38, 3.4 * 10^38]
2025-02-18 10:44:29
684
原创 车载音频开发(二):对音频数据作音量调节
接下来我们可以将音频的每个采样点的数据提取出来,对数据进行处理,简单的,我们可以将数据减小或增大来升高或减低整体的音量。接下来,我们用用一个函数将所有采样点数据进行提取并调整音量。然后,我们必须要指导采样点数值与分贝值(dB)之间的关系。data : 每个采样点存储的数值(以浮点值为例)定点常见的有16bit,24bit,和32bit。1.首先还是创建读取wav头部信息的结构体。我们已经对音频文件wav有了初步的了解。db : 每个采样点转化的dB值。一般的,音频的数据采样点分为定点和浮点。
2025-01-09 16:03:17
740
原创 开发小技巧分享 01:JSON解析工具
对于开发者而言,我们经常会遇到各种各样的配置文件,很多时候开发人员喜欢用较为轻便的json来存储相关的配置信息。因而,如何解析好json文件就成为了我们开发人员的一项基本技能。
2025-01-02 16:00:52
262
原创 windows批处理脚本(bat脚本指令)
批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。这些命令统称批处理命令。
2024-03-14 11:57:20
2817
原创 驱动开发 day8 (设备树驱动,按键中断实现led亮灭)
/编译驱动 (注意Makefile的编译到移植到开发板的内核)需要在/arch/arm/boot/dts/修改 stm32mp157a-fsmp1a-dts 文件。KERNELDIR 赋予的路径可能有所不同。//清除编译生成文件。
2023-08-01 19:46:32
1417
原创 驱动开发 day4 (led灯组分块驱动)
/编译驱动(注意Makefile的编译到移植到开发板的内核)//编译fun.c 函数(用到交叉工具编译)
2023-07-27 16:32:57
1488
原创 QT day3 (封装软件)
5> 在当前文件夹的空白处,按shift+右键,选择在powershell打开,输入相关指令,并执行。6> 此时,该文件夹中出现多个文件,说明发布成功,可用打包发给好友即可。2> 在qt_creator中,以release的形式运行一下程序。3> 在影子目录下,找到release文件夹中的可执行程序。将qt安装路径下的bin目录,放入系统环境变量中。将qt的工具下的bin目录,放入系统环境变量中。4> 将可执行程序复制到一个新的文件夹中。
2023-06-14 20:11:45
191
原创 QT day2 (登录界面及弹出跳转)
点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两个按钮ok和cancel,点击ok后,会清除密码框中的内容,继续进行登录;点击取消按钮后,弹出问题对话框,询问是否确定要退出登录,给出两个按钮,yes|no,点击yes,则直接关闭整个登录界面,如果点击no则进行进行登录。如果账号和密码匹配,则弹出信息对话框,给出提示信息为“登录成功”,给出一个按钮ok,点击ok后,关闭整个登录界面,跳转到其他界面。
2023-06-13 22:11:40
643
原创 C++ day6 (多态)
全局变量,int monster = 10000;定义英雄类hero,受保护的属性string name,int hp,int attck;公有的无参构造,有参构造,虚成员函数 void Atk(){blood-=0;},法师类继承自英雄类,私有属性 int ap_atk=50;重写虚成员函数void Atk(){blood-=(attck-ap_atk);射手类继承自英雄泪,私有属性 int ac_atk = 100;实例化类对象,判断怪物何时被杀死。
2023-06-10 09:40:36
168
原创 C++ day4 (运算符重载)
无参构造,有参构造,拷贝构造,拷贝赋值构造。赋值运算符重载 :(+=)算数运算符重载 :(+)已知三角新三条边求周长面积。
2023-06-07 19:53:12
216
原创 C高级 SHELL day5 (Makefile)
Makefile是一个工程管理工具,本质上是一个文件,这个文件中存放的是代码编译的规则。Makefile会根据文件的时间戳来决定工程内的文件本次是否需要编译。时间戳:修改文件后会更新时间戳。若文件的时间戳修改了,则执行Makefile工程文件的时候会重新编译修改时间戳的文件若文件的时间戳没有修改,则执行Makefile工程文件的时候不会重新编译未修改时间戳的文件提升效率,没有修改的文件不会重新编译。
2023-06-01 16:45:22
95
原创 C高级 SHELL day4 (计算日期是当年的第几天)
shell脚本的概念shell脚本是一个以.sh结尾的文件,例如 1.sh test.shshell脚本中存储的是有序的,能够实现特定功能的shell指令集合。除了shell指令,还有特定的语法:分支结构,循环结构,数组,函数等等.....优点:不需要编译,脚本语言不需要编译,不依赖任何编译工具。避免开发人员反复进行重复步骤。提高C代码编译效率,可以利用编写的shell脚本(makefile),指定编译顺序,依赖关系。代码修改后直接执行脚本重新编译即可。
2023-05-31 19:34:30
122
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人