CRC完整性,反激拓扑,电快速脉冲群以及GD32文章分享
liebian365 2024-11-14 18:05 21 浏览 0 评论
在IAR下如何为工程开启CRC完整性校验功能?
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是在IAR开发环境下为工程开启CRC完整性校验功能的方法。
CRC校验在嵌入式领域里的应用非常广,比如在通信领域,CRC检验值可以作为数据包的一部分,用于检查一包数据传输过程中是否发生了比特错误,如果CRC校验失败,那么接收方可以通知发送方要求该包数据重新传输,这样能大大增加数据传输的可靠性。同时CRC在应用程序完整性验证方面也有广泛应用,相比和检验,CRC校验纠错能力更强;相比签名校验,CRC校验在速度方面又占优势,因此它是一个各方面比较均衡的完整性验证手段。
IAR是个非常老牌的嵌入式开发集成环境,它的功能非常强大,有很多宝藏功能值得我们去发掘。痞子衡自毕业之后就一直在使用IAR,算是一路看着它从古典画风的v6.50.x升级到现在潮流的v8.50.x,对于经典的CRC校验功能的支持,IAR当然不会放过,今天痞子衡就来介绍IAR下如何使用其自带的CRC校验功能。
一、ielftool命令行工具
IAR安装目录下有非常多的命令行小工具,这些小工具其实就是IAR的核心,集成开发环境界面只是提供人机交互,其背后的很多功能都是通过调用这些命令行小工具来实现的。其中用于实现CRC校验的功能就包含在ielftool.exe工具里:
ielftool.exe工具跟CRC相关的一共两个参数选项,一是--fill用于填充,二是--checksum用于设置算法,具体参数使用细节详见 \IAR Systems\Embedded Workbench 8.50.6\arm\doc\EWARM_DevelopmentGuide.ENU手册里的Checksum calculation for verifying image integrity小节。
此处痞子衡仅举一个简单例子,如下命令表示在源可执行文件sourceFile.out中计算范围__checksum_begin - __checksum_end之间的CRC结果,最终校验值__checksum长度为4字节、固定CRC32算法、计算单元为1字节、指定CRC初始值为0xffffffff,其余设置默认,并将结果放在目标可执行文件destinationFile.out中。
ielftool --fill="0xFF;__checksum_begin–__checksum_end"
--checksum="__checksum:4,crc32:p,0xffffffff;__checksum_begin-__checksum_end"
sourceFile.out
destinationFile.out
从上面的命令你应该能知道,sourceFile.out并不是任意可执行文件都行的,其必须包含必要的__checksum_begin、__checksum_end、__checksum的定义。假设我们代码中并没有实际使用CRC,那么我们需要在生成sourceFile.out文件的IAR工程选项里做如下设置:
注意:__checksum_begin、__checksum_end符号、__checksum变量、.checksum段四个名字,用户都可以自定义的,这里命名成这样主要是为了和IAR默认定义相统一。
让我们随便找一个嵌入式IAR工程按上面设置生成源hello_world.out文件,并使用ielftool工具执行一次命令看看,可以看到产生了__checksum值,新生成的hello_world_1.out文件里包含了正确的CRC校验结果。
二、为工程添加CRC校验
IAR界面里有两种使用ielftool来生成CRC校验值的方法,痞子衡一一介绍:
2.1 利用Checksum功能
第一种是直接在IDE界面里配置,我们随便打开一个嵌入式工程,比如 \SDK_2.8.2_FRDM-K64F\boards\frdmk64f\demo_apps\hello_world\iar\,在工程选项Linker/Checksum下面,勾选Fill unused code memory和Generate checksum便使能了CRC校验,蓝色框里的两个地址用于设置CRC计算范围,绿框里的参数用于设置CRC算法细节,具体每个配置什么意义可以查看 \IAR Systems\Embedded Workbench 8.50.6\arm\doc\EWARM_DevelopmentGuide.ENU手册里的Checksum一节,痞子衡在这里不予展开。
下图示例配置中有两点要说明:一、算法选择了CRC32,其多项式系数其实固定为0x04C11BD7;如果想自定义CRC32多项式系数值,可选CRC polynomial;二、因为地址设置的是 0x0 - 0x400,一共1025个字节(包含0x400),所以checksum unit size此处仅能选8-bit,因为IDE强制要求地址对齐。
设置好之后重新编译工程,此时会报错“ielftool error: The string '__checksum' was not found in the string table ”,因为在程序代码里,我们完全没有任何CRC相关的引用,IAR会忽略界面里使能的CRC功能,所以我们还需要将__checksum强行加入如下选项里(注意__checksum是IAR里默认定义的CRC检验值符号名)。
这时候再编译工程就可以在生成的.out和.map文件里看到CRC信息了,__checksum被链接器随机放在了0x2844的位置,__checksum_begin和__checksum_end是IAR默认记录CRC计算范围的符号变量名。
如果你想自己决定__checksum的链接位置,你可以在工程链接文件里添加放置 section .checksum,这个段便对应着__checksum。比如我们试着将这个段放在0x1000的位置:
再一次编译工程,查看map文件,这次__checksum被放在了我们指定的0x1000的位置。
2.2 利用Post-build功能
第二种方式是利用IDE里的Post-build功能,在第一节的基础上,在工程选项Linker/Extra Options里把ielftool命令加进去,这样在编译工程的时候,IAR会自动跑这个命令:
$TOOLKIT_DIR$\bin\ielftool --fill="0xFF;__checksum_begin-__checksum_end" --checksum="__checksum:4,crc32:p,0xffffffff;__checksum_begin-__checksum_end" --verbose "$TARGET_PATH#34; "$TARGET_PATH#34;
上述命令与第一节中命令基本一致,只是用"" ""替代了sourceFile.out destinationFile.out,并且加了--verbose显示执行操作信息:
三、在工程中验证CRC校验
IAR生成的CRC校验值在应用程序里的使用就比较简单了,见如下代码,其中calc_crc()函数需与我们之前在IAR配置的CRC算法参数相一致,此外代码中的数据类型也是与具体CRC配置有关的。
另外还有两个注意点:一、CRC计算范围不应包含__checksum存放位置;二、CRC计算范围如果没有按照算法对齐要求,那么实际计算时要相应补上0(使用IDE配置生成是强制对齐的,但是使用命令行没有强制对齐)。
extern uint32_t const __checksum;
extern int32_t __checksum_begin;
extern int32_t __checksum_end;
void TestChecksum()
{
uint32_t calc = 0;
// 根据CRC计算范围重算新CRC校验值
calc = calc_crc(0xFFFFFFFF,
(uint8_t *) &__checksum_begin,
((uint8_t *) &__checksum_end - ((uint8_t *) &__checksum_begin) + 1));
// 比对新CRC校验值与IAR生成的CRC校验值
if (calc != __checksum)
{
printf("Incorrect checksum!\n");
}
}
至此,在IAR开发环境下为工程开启CRC完整性校验功能的方法痞子衡便介绍完毕了,掌声在哪里~~~
查看原文:https://www.dianyuan.com/eestar/article-8498.html
反激拓扑5—如何设计反激变压器?
本节将会尽可能详细的从理论上进行反激变压设计的推导,在此申明,本节内容是基于理想情况下进行理论的讲解,至于实际中影响的各种因素,会在后续逐步进行深入讲解。
通常,在设计一个反激变压器之前,总会有一些输入条件,比如输入电压Vin,输出电压Vout,输出功率Po或者输出电流Io,依据我们选择的驱动IC和设计经验,可以初步确定开关频率fsw
1、计算输入平均电流
2、根据反激电路输入侧电流波形,平均电流Iagv与峰值电流Ipeak的关系如下:
CCM模式下,Ipeak>ΔI,DCM模式下,Ipeak=ΔI
3、计算变压器励磁电感量Lm
根据反激电路初级侧励磁电感电流波形分析,存在如下关系:
CCM模式:0<k<1
DCM模式:ΔI=Ipeak
根据电感感应电压公式:
4、AP计算法
目前AP法(即面积乘积法)仍被推荐为选择磁心的一种有效方法,用于计算变压器面积的方法称为AP法,如下图是一个典型的变压器示意图。
我们把磁芯的二维示意图画出来,如下图所示
其中Aw为磁芯可绕导线的窗口面积(cm^2),Ae为磁芯的有效横截面积(cm^2),则有AP=AW*Ae(cm^4)。
但AP法原本是针对传统的工频正弦波铁心变压器而提出的,直接用于波形复杂的高频变压器并不合适,计算结果也很不准确。由于推导过程比较繁杂,在此不做赘述,有兴趣的同学可以在网上查找学习,当然针对反激变压器计算的AP法公式并不唯一,但计算结果都不会相差很多,我们可以选择一个在实践中觉得比较合适的进行初步的设计计算。
小编经常采用的公式如下:
其中,B为磁通量,Kw为窗口填充系数,一般选择0.2-0.4,j为电流密度,一般选择4-6,在计算时,AP公式中各参数均为无单位数值。
5、计算变压器的匝数
在网上很多资料中,都普遍通过伏秒平衡原理进行变压器匝比的计算,如下式
通过上期对伏秒平衡法则的解释,很明显我们发现,上式仅适用于CCM模式下,因为在DCM模式下,励磁电感去磁的时间并非(1-D)*T,而是小于该值。不过在前边我们推理过
CCM模式和DCM模式的临界条件,为了简单,姑且可以先用上式计算出CCM模式下的匝数比Nps,然后通过DCM模式下的条件进行验证,知道选择合适的匝数比。
DCM模式下:
根据法拉第电磁感应定律:
其中,ψ表示磁链,B表示磁感应强度,S表示磁芯的横截面积,即上文中提到的Ae。
则副边匝数为
6、计算变压器原副边电流有效值
经过上述的推导,我们基本上已经确定了反激变压器原副边的电流波形,有效值可以通过积分公式进行计算
在此给出几组公式,可以在计算过程中求证一下是否正确
DCM模式:
其中,D1表示DCM模式下励磁电感去磁阶段时长占整个开关周期的比例。
CRM模式下:
CCM模式下:
根据其波形特点和有效值计算法则进行计算:
CCM和CRM模式通用的计算公式可以归纳为:
根据上述电流值的计算,可以选择合适的原副边绕组导线。
查看原文:https://www.dianyuan.com/eestar/article-8531.html
电快速脉冲群(EFT)测试项目介绍
1. 电快速瞬变脉冲群抗扰度试验
1.1 试验目的
电快速瞬变脉冲群抗扰度测试的目的是为评估电气和电子设备的供电电源端口、信号、控制和接地端口在受到电快速瞬变脉冲群干扰时的性能确定一个共同能再现的评定依据。本试验是为了验证电气或电子设备对诸如来自切换瞬态过程(切断感性负载、继电器触点弹跳)的各种类型瞬变骚扰的抗扰度。
1.2 试验标准依据
IEC61000-4-4-2012 、GB/T17626.4-2018 《电磁兼容 试验和测量技术 电快速瞬变脉冲群抗扰度试验》
1.3 试验类别
- 供电电源端口试验配置:
对于供电电源端口经过耦合/去耦网络直接耦合电快速瞬变脉冲群是首选的试验方法。若没有适合的耦合/去耦网络,例如当交流电源电流大于100A,可采用替代方法。然而,不建议使用容性耦合夹的方法,因为在耦合脉冲群时,耦合夹的效率远低于用33nF电容直接注入的方法。
- 输入输出信号&通信端口试验配置:
使用容性耦合夹把骚扰试验电压施加到输入/输出端口和通信端口,当采用容性耦合夹的方法时,连接受试设备的非受试或者辅助设备应适当去耦。
- 安装后试验的试验配置:
这些试验是可选用的,只有在制造商和用户同意后才可进行这些试验。必须考虑试验本身可能对受试设备有破坏性,其他位于同一地点的其他设备可能会损坏或者受到不可接受的影响。应该按照设备或系统的最终状态进行试验,为了尽可能逼真地模拟实际的电磁环境,在进行安装后试验时应该不用耦合/去耦网络。
1.4 试验等级
1.5 试验结果的判定
试验结果应依据受试设备的功能丧失或性能降级进行分类,相关的性能水平由设备的制造商或需要方确定,或由产品的制造商和购买方双方协商同意。推荐按以下要求分类:
A级判定(Criterion A):
在制造商、委托方或购买方规定的限值内性能正常。
B级判定(Criterion B):
功能或性能暂时丧失或降低,但在骚扰停止后能自行恢复,不需要操作者干预。
C级判定(Criterion C):
功能或性能暂时丧失或降低,但需操作人员干预才能恢复。
D级判定(Criterion D):
因设备硬件或软件损或数据丢失而造成不能恢复的功能丧失或性能降低。
备注:
- 由制造商提出的技术规范可以规定对受试设备产生的某些影响是不重要的,而这些影响是可以接受的。
- 没有适用的通用标准、产品或产品类标准时,这种分类可以由负责相应产品通用标准、产品标准和产品类标准的专业标准化技术委员会制定用于作为明确性判据的指南,或作为制造商和购买方协商的性能判据的框架。
2. 电快速瞬变脉冲群试验要求
2.1 脉冲群发生器电路简图
经由挑选的电路元件Cc、Rs、Rm、Cd,使发生器在开路和接50Ω阻性负载的条件下产生一个快速瞬变。信号发生器的有效输出阻抗应为50Ω。
2.2 脉冲群发生器性能特性
- 性能参数:
输出阻抗: 同轴输出 50Ω
极性: 正极性和负极性(可切换的)
隔直电容: 10(1+20%)nF
重复频率: 重复频率值*(1+20%)kHz
与供电电源的关系:异步
脉冲群持续时间:5kHz时为15(1+20%)ms,100kHz时为0.75(1+20%)ms
脉冲群周期: 300(1+20%)ms
- 脉冲波形:(具体详见GB/T17626.4-2008波形图3)
- 快速瞬变脉冲群概略图:
2.3 耦合/去耦网络
- 耦合/去耦网络特性参数如下:
耦合电容:33nF
耦合方式:共模
2.4 容性耦合夹
耦合夹的耦合电容取决于电缆的直径,材料和屏蔽(如果存在)。该装置由盖住受试线路电缆(扁平型或圆型)的夹板(用镀锌钢、黄铜、铜或铝板制成)组成,并且应放置在面积最小为1 ㎡的接地参考平面上。接地参考平面的周边至少应超出耦合夹0.1m。
耦合夹的两端应具有高压同轴接头,其任一端均可与试验发生器连接。发生器应连接到耦合夹最接近受试设备的那一端。耦合夹本身应尽可能地合拢,以提供电缆和耦合夹之间最大的耦合电容。
- 耦合夹特性参数:
- 电缆和耦合夹之间典型的耦合电容:100pF~1000pF
- 圆电缆可用的直径范围:4mm~40mm
- 绝缘耐压能力:5KV
- 应用范围:
输入输出信号、通讯端口上的连接线的验收试验要采用耦合夹的耦合方式。耦合夹耦合的方式也可用于交流/直流电源端口的试验。除了出现不符合GB/T17626.4 2008或者IEC61000-4-4标准6.2定义的不适用情形。
2.5 试验配置
固定落地式安装或者台式受试设备和设计安装于其他配置中的设备,都应放置在接地参考平面上,并用厚度为0.1mm±0.01m的绝缘支座与之隔开,对于安装天花板或者墙壁的设备应按台式设备试验。
用于实验室形式试验的一般试验配置
架式安装设备的试验配置示例
查看原文:https://www.dianyuan.com/eestar/article-8478.html
GD32真的很香
最近单位赶两个项目,可把我忙毁了,期间准备买几个STM32的芯片,去常购的店家咨询了一下价格,这个价格真心是用不起的节奏。
没办法,找了一个“靠谱”的店家,买了几个翻新的STM32F103(现在便宜的STM32,十之八九都是翻新的,所以不如直接就买翻新的,自我感觉也比店家宣称是全新原装要好),结果不知道怎么回事,回来之后,各种问题不断,说好是经过测试的翻新芯片,结果还是翻车了。
全新原装贵的离谱,便宜的还不靠谱,一直听说国产32与STM32的兼容性都不错,个别还可以直接替代,报着试试看的态度买了几片,结果什么都没改,跟使用STM32一样一样的,直接下载运行,完美替代,目前使用了半个多月,暂时没有遇到坑。
28元的价格,跟STM32比起来,我只能说GD32真香!~
既然这么好用,咱们今天就来演示一下GD32如何点灯吧。
测试环境
- MDK 5.14
- 固件库 GD32F10x_Firmware_Library_V2.2.2
- 补丁包 GD32F10x_AddOn_V2.0.2 ,具体版本为:GigaDevice.GD32F10x_DFP.2.0.2.pack
- 下载工具:JLINK SW模式下载
- 测试的硬件为公众号开源的最小系统核心板V1
官方资料
使用一个新的MCU,我们要找一下他的资料,搭建一下环境,我们先来找一下相关官方资料吧。
GD32数据手册
http://www.gd32mcu.com/cn/download/5?kw=GD32F1
GD32开发环境搭建
http://www.gd32mcu.com/cn/download/7?kw=GD32F1
GD32F10x Firmware Library 中存放的是GD32F10x的标准固件库:GD32F10x_Firmware_Library_V2.2.2.rar
GD32F10x ADD-ON 中存放的是GD32的Keil补丁包:GigaDevice.GD32F10x_DFP.2.0.2.pack ,要想让Keil支持GD32F10x系列芯片,则需要安装此补丁包。
双击安装GD32F10x支持包:GigaDevice.GD32F10x_DFP.2.0.2.pack ,让Keil支持GD32系列芯片。
修改工程模板
将 GD32F10x_Firmware_Library_V2.2.2.rar 解压,在其中,我们可以得到官方提供的工程模板,具体位置如下所示:
我们使用Keil打开此工程模板:\GD32F10x_Firmware_Library_V2.2.2\Template\Keil5_project\Project.uvprojx,然后在Keil的Options对话框中,Device标签下我们选择:GD32F103RE,C/C++标签下修改预定义为 GD32F10X_HD ,Debug标签下,下载工具选择J-LINK并进行相关设置。
最小系统核心板上的硬件资源
最小系统核心板上预留有一个按键和一个LED,本文的实例我们选用这两个硬件资源为例进行演示。
LED1为低电平的时候,D91亮;LED1为高电平的时候,D91灭。
BTN1默认状态,KEY1为高电平;BTN1被按下时,KEY1为低电平。
修改按键和LED对应GPIO
\GD32F10x_Firmware_Library_V2.2.2\Utilities\gd32f10x_eval.c 文件修改内容如下:
\GD32F10x_Firmware_Library_V2.2.2\Utilities\gd32f10x_eval.h 文件修改的内容如下:
#include "gd32f10x.h"
/* exported types */
typedef enum
{
LED1 = 0,
LED2 = 1,
LED3 = 2,
LED4 = 3,
LED5 = 4
} led_typedef_enum;
/* eval board low layer led */
#define LEDn 5U
#define LED1_PIN GPIO_PIN_11
#define LED1_GPIO_PORT GPIOA
#define LED1_GPIO_CLK RCU_GPIOA
/* wakeup push-button */
#define WAKEUP_KEY_PIN GPIO_PIN_12
#define WAKEUP_KEY_GPIO_PORT GPIOA
#define WAKEUP_KEY_GPIO_CLK RCU_GPIOA
#define WAKEUP_KEY_EXTI_LINE EXTI_12
#define WAKEUP_KEY_EXTI_PORT_SOURCE GPIO_PORT_SOURCE_GPIOA
#define WAKEUP_KEY_EXTI_PIN_SOURCE GPIO_PIN_SOURCE_12
#define WAKEUP_KEY_EXTI_IRQn EXTI10_15_IRQn
\GD32F10x_Firmware_Library_V2.2.2\Template\main.c 中main函数修改如下:
int main(void)
{
/* configure systick */
systick_config();
/* initilize the LEDs, USART and key */
gd_eval_led_init(LED1);
// gd_eval_led_init(LED2);
// gd_eval_led_init(LED3);
// gd_eval_led_init(LED4);
gd_eval_com_init(EVAL_COM0);
gd_eval_key_init(KEY_WAKEUP, KEY_MODE_GPIO);
/* print out the clock frequency of system, AHB, APB1 and APB2 */
printf("\r\nCK_SYS is %d", rcu_clock_freq_get(CK_SYS));
printf("\r\nCK_AHB is %d", rcu_clock_freq_get(CK_AHB));
printf("\r\nCK_APB1 is %d", rcu_clock_freq_get(CK_APB1));
printf("\r\nCK_APB2 is %d", rcu_clock_freq_get(CK_APB2));
while(1){
if(RESET == gd_eval_key_state_get(KEY_WAKEUP)){
gd_eval_led_on(LED1);
delay_1ms(500);
gd_eval_led_off(LED1);
// gd_eval_led_toggle(LED4);
}
}
}
编译并下载运行
编译并下载程序,复位核心板,最终实现的效果为:
- 复位芯片,串口1(115200,N,8,1)输出 SYS 、 AHB 、 APB1 、 APB2 的主频
- LED1默认常亮,按下并松起BTN1,LED1熄灭0.5S,然后自动亮起
GD32F10x标准固件库
STM32的程序虽然可以直接用,但是GD原厂不做保证,还是用官方库比较好。
GD32F10x标准固件库,适用于GD32F10x系列MCU,固件库包括程序、数据结构和宏定义,覆盖所有集成外设的特征,与Cortex-M微控制器软件接口标准(CMSIS)兼容。
CMSIS是 Cortex-M 处理器与供应商无关的硬件抽象层软件接口,具体含义大家可以检索 软件接口标准(CMSIS) 进行了解,以后我们也会进一步介绍内容。
总结
总的来说,STM32F103RET6和GD32F103RET6的兼容性还是蛮不错的,现在STM32单价都200+的情况下,GD32F103只需要30元不到,说实话,真的很香。
美中不足,给国产芯片提点意见,GD32的宣传力度不够,现在STM32卖的这么贵,多么好的弯道超车机会,当珍惜呀!
另外一个,部分手册没有中文版,作为一个国内的MCU厂商,没有中文版的手册,实属不应该,希望这点多多向STM32学习一下。
另外可以考虑跟某个开发板厂商搞个合作,生产一个开发板,让更多的开发者知道GD,知道国产MCU也是不错的。
现在STM32这么贵,大家可以考虑用GD32代替哈,公众号里的核心板我都换成GD32了,小哈哥用了半个月GD32,串口、定时器、GPIO、SPI都没有发现问题,大家可以试试效果哈。
GD加油,国产MCU加油!
查看原文:https://www.dianyuan.com/eestar/article-8376.html
更多精彩内容,尽在电子星球 APP(https://www.eestar.com/)
相关推荐
- 4万多吨豪华游轮遇险 竟是因为这个原因……
-
(观察者网讯)4.7万吨豪华游轮搁浅,竟是因为油量太低?据观察者网此前报道,挪威游轮“维京天空”号上周六(23日)在挪威近海发生引擎故障搁浅。船上载有1300多人,其中28人受伤住院。经过数天的调...
- “菜鸟黑客”必用兵器之“渗透测试篇二”
-
"菜鸟黑客"必用兵器之"渗透测试篇二"上篇文章主要针对伙伴们对"渗透测试"应该如何学习?"渗透测试"的基本流程?本篇文章继续上次的分享,接着介绍一下黑客们常用的渗透测试工具有哪些?以及用实验环境让大家...
- 科幻春晚丨《震动羽翼说“Hello”》两万年星间飞行,探测器对地球的最终告白
-
作者|藤井太洋译者|祝力新【编者按】2021年科幻春晚的最后一篇小说,来自大家喜爱的日本科幻作家藤井太洋。小说将视角放在一颗太空探测器上,延续了他一贯的浪漫风格。...
- 麦子陪你做作业(二):KEGG通路数据库的正确打开姿势
-
作者:麦子KEGG是通路数据库中最庞大的,涵盖基因组网络信息,主要注释基因的功能和调控关系。当我们选到了合适的候选分子,单变量研究也已做完,接着研究机制的时便可使用到它。你需要了解你的分子目前已有哪些...
- 知存科技王绍迪:突破存储墙瓶颈,详解存算一体架构优势
-
智东西(公众号:zhidxcom)编辑|韦世玮智东西6月5日消息,近日,在落幕不久的GTIC2021嵌入式AI创新峰会上,知存科技CEO王绍迪博士以《存算一体AI芯片:AIoT设备的算力新选择》...
- 每日新闻播报(September 14)_每日新闻播报英文
-
AnOscarstatuestandscoveredwithplasticduringpreparationsleadinguptothe87thAcademyAward...
- 香港新巴城巴开放实时到站数据 供科技界研发使用
-
中新网3月22日电据香港《明报》报道,香港特区政府致力推动智慧城市,鼓励公私营机构开放数据,以便科技界研发使用。香港运输署21日与新巴及城巴(两巴)公司签署谅解备忘录,两巴将于2019年第3季度,开...
- 5款不容错过的APP: Red Bull Alert,Flipagram,WifiMapper
-
本周有不少非常出色的app推出,鸵鸟电台做了一个小合集。亮相本周榜单的有WifiMapper's安卓版的app,其中包含了RedBull的一款新型闹钟,还有一款可爱的怪物主题益智游戏。一起来看看我...
- Qt动画效果展示_qt显示图片
-
今天在这篇博文中,主要实践Qt动画,做一个实例来讲解Qt动画使用,其界面如下图所示(由于没有录制为gif动画图片,所以请各位下载查看效果):该程序使用应用程序单窗口,主窗口继承于QMainWindow...
- 如何从0到1设计实现一门自己的脚本语言
-
作者:dong...
- 三年级语文上册 仿写句子 需要的直接下载打印吧
-
描写秋天的好句好段1.秋天来了,山野变成了美丽的图画。苹果露出红红的脸庞,梨树挂起金黄的灯笼,高粱举起了燃烧的火把。大雁在天空一会儿写“人”字,一会儿写“一”字。2.花园里,菊花争奇斗艳,红的似火,粉...
- C++|那些一看就很简洁、优雅、经典的小代码段
-
目录0等概率随机洗牌:1大小写转换2字符串复制...
- 二年级上册语文必考句子仿写,家长打印,孩子照着练
-
二年级上册语文必考句子仿写,家长打印,孩子照着练。具体如下:...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)