这是我自己写给自己用的代码,不是cJson官网上的代码,亲自测试可用的。
本套代码包含json数据结构的解析、构析、删除、查找、增添、新建等功能,测试有效可行,易于各个系统间的移植。
大部分系统间移植只需要之间添加cJson.h和cJson.c文件直接使用API即可,小部分只需要修改cJson.h中的兼容代码宏定义即可。
教程链接https://blog.csdn.net/qq_33784286/article/details/113182257
2023/10/30 2:18:26 7KB c语言 json 解析 易于移植
1
Unity编辑器语言开发的,拖入项目Assest目录下,点击Unity编辑器上方栏的“我的拓展编辑器”即可打开使用。
项目展示写了一个博客:https://blog.csdn.net/qq_37835111/article/details/86083860欢迎大家讨论
1
VFW(VideoforWindows)是Microsoft推出的关于数字视频的一个软件开发包,VFW的核心是AVI文件标准。
AVI(AudioVideoInterleave)文件中的音、视频数据帧交错存放。
围绕AVI文件,VFW推出了一整套完整的视频采集、压缩、解压缩、回放和编辑的应用程序接口(API)。
由于AVI文件格式推出较早且在数字视频技术中有广泛的应用,所以VFW仍然有很大的实用价值,而且进一步发展的趋势。
  在VC++开发环境中调用VFW和使用其它开发包没有什么不同,只是需要将VFW32.lib文件加入工程中,但在开放视频捕捉与压缩管理程序时需要其它软件硬件设置。
VFW为AVI文件提供了丰富的处理函数和宏定义,AVI文件的特点在于它是典型的数据流文件,它由视频流、音频流、文本流组成。
所以对AVI文件的处理主要是处理文件流。
2023/9/3 14:14:44 27KB VFW(Video for Windows) for
1
目录诸论第1章TMS320C54x的结构原理1.1TMS320系列DSP芯片概述101.1.1TMS320系列DSP的分类及应用101.1.2TMS320C5000DSP平台111.2TMS320C54xDSP131.2.1TMS320C54x的主要特性131.2.2TMS320C54x的组成框图161.3总线结构181.4存储器191.4.1存储器空间分配201.4.2程序存储器231.4.3数据存储器241.5中央处理单元271.5.1算术逻辑运算单元281.5.2累加器A和B291.5.3桶形移位器311.5.4乘法器/加法器单元321.5.5比较、选择和存储单元331.5.6指数编码器341.5.7CPU状态和控制寄存器341.6数据寻址方式391.6.1立即寻址411.6.2绝对寻址411.6.3累加器寻址411.6.4直接寻址421.6.5间接寻址431.6.6存储器映像寄存器寻址461.6.7堆栈寻址471.7程序存储器地址生成方式481.7.1程序计数器491.7.2分支转移491.7.3调用与返回501.7.4条件操作511.7.5重复操作531.7.6复位操作541.7.7中断551.7.8省电方式591.8流水线601.8.1流水线操作601.8.2延迟分支转移621.8.3条件执行641.8.4双寻址存储器与流水线651.8.5单寻址存储器与流水线671.8.6流水线冲突和插入等待周期671.9在片外围电路711.9.1并行I/O口及通用I/O引脚711.9.2定时器721.9.3时钟发生器741.9.4主机接口781.10串行口831.10.1串行口概述831.10.2标准串行口841.11DMA控制器971.11.1DMA控制器的基本特性971.11.2子地址寻址方式971.11.3DMA通道优先级和使能控制寄存器1001.11.4DMA通道现场寄存器1021.11.5DMA编程举例1081.12外部总线1131.12.1外部总线接口1131.12.2外部总线操作的优先级别1141.12.3等待状态发生器1151.12.4分区切换逻辑1171.12.5外部总线接口定时图1181.12.6复位和IDLE3省电工作方式1201.13TMS320C54x引脚信号说明122第2章指令系统2.1指令的表示方法1302.1.1指令系统中的符号和略语1302.1.2指令系统中的记号和运算符1332.2指令系统1352.2.1指令系统概述1352.2.2指令系统分类135第3章汇编语言程序开发工具3.1TMS320C54x软件开发过程1373.2汇编语言程序的编写方法1393.3汇编语言程序的编辑、汇编和链接过程1413.4COFF的一般概念1433.4.1COFF文件中的段1433.4.2汇编器对段的处理1443.4.3链接器对段的处理1463.4.4COFF文件中的符号1483.5汇编1493.5.1运行汇编程序1493.5.2列表文件1513.5.3汇编命令1543.5.4宏定义和宏调用1543.6链接1563.6.1运行链接程序1563.6.2链接器选项1573.6.3链接器命令文件1583.6.4多个文件的链接164第4章Simulator和CCS集成开发工具的使用方法4.1Simulator的使用方法1694.1.1软件仿真器概述1694.1.2仿真命令1714.1.3仿真器初始化命令文件1744.1.4仿真外部中断1764.2什么是CCS1774.3如何安装和设置CCS1784.3.1CCS对计算机系统的配置要求1784.3.2CCS的安装与设置1784.4CCS窗口介绍1804.4.1CCS窗口示例1804.4.2CCS的菜单栏和快捷菜单1804.4.3CCS的常用工具栏1814.5如何建立工程文件1824.5.1工程文件的建立、打开和关闭1834.5.2在工程文件中添加或删除文件1834.5.3编辑源文件1834.5.4工程的构建1844.6如何调试程序1854.6.1加载可执行文件1854.6.2程序的运行和复位1864.6.3断点设置1874.6.4内存、寄存器和变量操作1884.7如何与外部文件交换数据1914.7
2023/8/25 15:41:47 3.6MB DSP结构 原理 TMS320C54X
1
纯人工翻译中文版本,STM32CubeMX用户手册中文版,STM32CubeMX用户手册中文版UM1718-翻译版.菜鸟到高手,显得有些霸气哈,不过的确如此,官方带给我们一个比较实用的stm32的工具。
这个工具就是STM32CubeMX,昨天玩freeRTOS的时候就提到过。
说到freeRTOS,这里就多说两句。
全局变量,在任务间相互访问的时候也是需要临界保护的,不然可能会出现奇怪的问题。
不过我们可以关掉时间片调度,任务间可以访问全局变量而不用加保护(不等于菜鸟可以随意代码)。
关闭了时间片调度,只有发生vTaskDelay的时候才会上下文切换。
只要代码合理访问全局变量可以不加保护的。
因此代码也不是可以任意书写的,关于freeRTOS的问题,多看看源码,一切都会有答案。
源码较少,这里就不过多介绍。
关闭时间片不是网上说的configUSE_TIME_SLICING这个宏定义,老鸟发现这个宏压根没用哈,嘿嘿。
阅读源码可以找到相关宏配置。
不过不建议关闭,时间片调度也可以让一个任务在执行一定时间后切换到其他就绪任务去执行。
如果有freeRTOS相关问题,可以留言给我。
废话说多了点哈,继续我们的STM32CubeMX。
下面我们来讲讲这个工具的作用,讲完后,可以自己下载一个试试,挺简单不多介绍。
到官网下载STM32CubeMX,并安装。
1:芯片选型打开STM32CubeMX,我们点击newproject,我们就可以进行芯片选型,如果你下载了打开了这个工具,是不是很惊讶,stm32的所有产品型号都在里面,而且左下提供了资源勾选,比如你要以太网支持,勾选以太网选项,所有的支持以太网的stm32芯片才会被显示,旁边还有个max的栏目指示了芯片最多支持该功能的个数。
空白的一般默认只有一个。
下图是我勾选以太网的截图。
上图不仅提供了芯片,还提供了价格,是否在售,封装,存储,频率等一些列信息。
除了cpu资源可以选型外,上面还提供了脚多少,存储大小等非常灵活的选型方式。
我们选择其中一个的单片机后。
右上部分给我们提供了完美的支持。
第一个选项提供了改cpu的特性,我们可以大概的了解选中的cpu资源。
第二个选项提供该cpu框图,截图图片太大,这里就不截图了。
第三个选项提供了cpu文档,这个文档非常多也非常全面,基本不用在网上东找西找了,主要给硬件工程师用。
第四个选项提供了cpu的相关设计资源,软件编程文档,给软件工程师用,非常全面,包括网上很少用到的文档资料,比如系统移植相关的底层资料(堆栈,指令,汇编)。
第五个选项提供了芯片购买途径,这个每个人自己选择吧。
第六个选项开始工程,芯片选好了,就可以开始工程。
2:设定芯片。
芯片选好后,可以开始设定芯片。
这就是软件工程师的好帮手呀。
比如我要以太网功能,勾选上以太网即可,他就会自动分配出芯片对应的以太网接口。
如下图:上面我选了标准的MII接口。
很多人可能就不理解,你勾了个以太网,咋报错了。
老鸟告诉你为啥变红了,stm32有个复杂的功能就是io口复用,勾选mii后分配的io口和spi2以及iis口重合了,所以这个工具非常智能的提示了出来,非常神奇吧。
告诉你他们不能使用了。
还有些变黄了,说明他们可以选择性使用,真是太方便了,省去了查资料慢慢找io的痛苦。
比如我们还要给它个外部时钟。
我们勾选时钟即可,响应的时钟脚就会分配出来。
如果要将某个脚设置成输入输出那就更简单了,鼠标点选对应的io口选择对应功能即可,比如我单击PA6,它的所有功能可以轻松选择:软件使用比较简单,不过多解释,一看就明白,设置完芯片功能后,我们就设定系统各项功能时钟。
选择时钟设置页面(clockconfiguration)时钟轻松设定,如下图,简单明了,不过多解释了:时钟配置完成后,可以切换到configuration选项对功能进一步设定,里面参数都是常用的功能,设置较为简单。
就不多举例了,比如网络功能里面设置mac地址等。
3:生产初始化代码经过上面的图形化设定,我们可以直接生产初始化代码。
省去我们查阅资料慢慢配置的的环节,时间更多的利用在应用层设计。
点击project下面的生成代码选项。
输入工程名(根据你项目需要起名),这里我就随便输入一个名字。
设定好相关参数。
点击ok即可。
顺便说下,这个工具是配带教程的,我这里只是告诉大家有这样个工具可以加速开发,具体设置参考官方教程。
生成后打开文件夹内容如下:上图的inc和src文件夹里面是生成的主要代码,其他几个文件夹里面的东西,大家可以根据自己需要选择。
src文件夹文件如下:打开熟悉的ma
2023/8/19 21:31:32 11.41MB stm32 仿真
1
纯正正弦波源程序//spwm信号调制//------------------------------------------------------------#include#include//系统配置__CONFIG(HS&PWRTEN&BOREN&PROTECT&WDTEN);//打开看门狗,选择高速晶振,上电延时复位,掉电复位使能,代码保护//------------------------------------------------------------//指示灯宏定义#defineL1_RED_ONRB1=1;RB2=0;//L1红灯亮#defineL1_OFFRB1=0;RB2=0;#defineL2_RED_ONRB4=1;RB3=0;//L2红灯亮#defineL2_OFFRB4=0;RB3=0;#defineL3_RED_ONRB7=1;RB5=0;//L3红灯亮#defineL3_OFFRB7=0;RB5=0;#defineL1_GREE_ONRB2=1;RB1=0;//L1绿灯亮#defineL2_GREE_ONRB3=1;RB4=0;//L2绿灯亮#defineL3_GREE_ONRB5=1;RB7=0;//L3绿灯亮
2023/8/2 15:42:34 94KB 逆变器
1
使用stm32f103RCT6串口DMA空闲中断接收,DMA发送完整源码,修改串口只需修改对应宏定义即可
2023/7/1 16:21:09 2.91MB stm32F103 串口 DMA
1
第1章概述1.1单片机的结构与应用1.1.1单片机的定义、分类与内部组成1.1.2单片机应用系统的结构及其工作过程1.1.3单片机的应用1.2单片机基础知识1.2.1数制与数制间的转换1.2.2单片机中数的表示方法及常用数制的对应关系1.2.3逻辑数据的表示1.2.4单片机中常用的基本术语1.3单片机入门的有效方法与途径1.4学习单片机的基本条件1.4.1软件条件1.4.2硬件条件习题与实验第2章单片机开发软件及开发过程2.1仿真软件Proteus的使用2.1.1Proteus的主要功能特点2.1.2实例1:功能感受——Pmteus仿真单片机播放《渴望》主题曲2.1.3Proteus软件的界面与操作介绍2.1.4实例2:Proteus仿真设计快速入门2.2KeilC51的使用2.2.1单片机最小系统2.2.2实例3:用Kei1C51编写点亮一个发光二极管的程序2.3程序烧录器及烧录软件的使用习题与实验第3章逐步认识单片机基本结构3.1实例4:用单片机控制一个灯闪烁3.1.1实现方法3.1.2程序设计3.1.3用Proteus软件仿真3.1.4延时程序分析3.2实例5:将P1口状态送入P0口、P2口和P3口3.2.1实现方法3.2.2程序设计3.2.3用Proteus软件仿真3.2.4用实验板试验3.2.5I/O口功能介绍3.2.6I/O口的结构分析3.3实例6:使用P3口流水点亮8位1ED3.3.1实现方法3.3.2程序设计3.3.3用Proteus软件仿真3.3.4用实验板试验3.4实例7:通过对P3口地址的操作流水点亮8位1ED3.4.1实现方法3.4.2程序设计3.4.3用Proteus软件仿真3.4.4用实验板试验3.5MCS-51单片机存储器的基本结构3.5.1程序存储器3.5.2数据存储器3.6单片机的复位电路习题与实验第4章单片机C语言开发基础4.1C语言源程序的结构特点4.2标志符与关键字4.3C语言的数据类型与运算符4.3.1数据类型4.3.2运算符4.3.3实例8:用不同数据类型的数据控制1ED的闪烁4.3.4实例9:用P0口、P1口分别显示加法和减法运算结果4.3.5实例10:用P0口、P1口显示乘法运算结果4.3.6实例11:用P1口、P0口显示除法运算结果4.3.7实例12:用自增运算控制P0口8位1ED的闪烁花样4.3.8实例13:用P0口显示逻辑“与”运算结果4.3.9实例14:用P0口显示条件运算结果4.3.10实例15:用P0口显示按位“异或”运算结果4.3.11实例16:用P0口显示左移运算结果4.3.12实例17:“万能逻辑电路”实验4.3.13实例18:用右移运算流水点亮P1口8位1ED4.4C语言的语句4.4.1概述4.4.2控制语句4.4.3实例19:用if语句控制P0口8位LED的点亮状态4.4.4实例20:用swtich语句控制PO口8位LED的点亮状态4.4.5实例21:用for语句设计鸣笛报警程序4.4.6实例22:用while语句控制PO口8位LED闪烁花样4.4.7实例23:用dOwhile语句控制PO口8位LED流水点亮4.5C语言的数组4.5.1数组的定义和引用4.5.2实例24:用字符型数组控制PO口8位LED流水点亮4.5.3实例25:用PO口显示字符串常量4.6C语言的指针4.6.1指针的定义与引用4.6.2实例26:用PO口显示指针运算结果4.6.3实例27:用指针数组控制PO口8位LED流水点亮4.6.4实例28:用数组的指针控制PO口8位LED流水点亮4.7C语言的函数4.7.1函数的定义与调用4.7.2实例29:用PO口、P1口显示整型函数返回值4.7.3实例30:用有参函数控制PO口8位LED流水速度4.7.4实例3l:用数组作函数参数控制PO口8位LED流水点亮4.7.5实例32:用指针作函数参数控制PO口8位LED流水点亮4.7.6实例33:用函数型指针控制PO口8位LED流水点亮4.7.7实例34:用指针数组作为函数的参数显示多个字符串4.7.8实例35:字符软件ctype.h中的isalpha()函数应用举例4.7.9实例36:内部函数库文件intrins.h中的_cml_()函数应用举例4.7.10实例37:标准函数库文件stdlib.h中的rand()函数应用举例4.7.1l实例38:字符串函数库文件string.h中的strcmp()函数应用举例4.8C语言的编译预处理4.8.1常用预处理命令介绍4.8.2实例39:宏定义应用举例4.8
2023/6/30 19:58:11 56.86MB 单片机 c语言100例
1
适用于版本为6.15.8803汇编编译器ml.exe;
定义Unicode字符串的宏;
编译SSE3、SSSE3、SSE4.1指令的宏;
定义接口和调用接口中方法的宏。
2023/6/8 4:09:20 52KB 汇编 Unicode SSE4 COM接口
1
该驱动反对于MX25系列的NORflash,操作方式反对于SPI,QPI,SPAR接口,反对于软件SPI,硬件spi配置配备枚举,都是经由宏定义配置配备枚举。
2023/4/16 12:53:03 13KB MX25L驱动
1
共 47 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡