百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

CRC完整性,反激拓扑,电快速脉冲群以及GD32文章分享

liebian365 2024-11-14 18:05 26 浏览 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)输出 SYSAHBAPB1APB2 的主频
  • 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/)

六篇技术文章,让你秒懂电容的脾气秉性

七篇DIY技术文章献给你,让你脑洞全开

五篇文章帮你开启DSP的学习思路

汇总篇:关于PID知识,重点在此

相关推荐

“版本末期”了?下周平衡补丁!国服最强5套牌!上分首选

明天,酒馆战棋就将迎来大更新,也聊了很多天战棋相关的内容了,趁此机会,给兄弟们穿插一篇构筑模式的卡组推荐!老规矩,我们先来看10职业胜率。目前10职业胜率排名与一周前基本类似,没有太多的变化。平衡补丁...

VS2017 C++ 程序报错“error C2065:“M_PI”: 未声明的标识符&quot;

首先,程序中头文件的选择,要选择头文件,在文件中是没有对M_PI的定义的。选择:项目——>”XXX属性"——>配置属性——>C/C++——>预处理器——>预处理器定义,...

东营交警实名曝光一批酒驾人员名单 88人受处罚

齐鲁网·闪电新闻5月24日讯酒后驾驶是对自己和他人生命安全极不负责的行为,为守护大家的平安出行路,东营交警一直将酒驾作为重点打击对象。5月23日,东营交警公布最新一批饮酒、醉酒名单。对以下驾驶人醉酒...

Qt界面——搭配QCustomPlot(qt platform)

这是我第一个使用QCustomPlot控件的上位机,通过串口精确的5ms发送一次数据,再将读取的数据绘制到图表中。界面方面,尝试卡片式设计,外加QSS简单的配了个色。QCustomPlot官网:Qt...

大话西游2分享赢取种族坐骑手办!PK趣闻录由你书写

老友相聚,仗剑江湖!《大话西游2》2021全民PK季4月激燃打响,各PK玩法鏖战齐开,零门槛参与热情高涨。PK季期间,不仅各种玩法奖励丰厚,参与PK趣闻录活动,投稿自己在PK季遇到的趣事,还有机会带走...

测试谷歌VS Code AI 编程插件 Gemini Code Assist

用ClaudeSonnet3.7的天气测试编码,让谷歌VSCodeAI编程插件GeminiCodeAssist自动编程。生成的文件在浏览器中的效果如下:(附源代码)VSCode...

顾爷想知道第4.5期 国服便利性到底需优化啥?

前段时间DNF国服推出了名为“阿拉德B计划”的系列改版计划,截至目前我们已经看到了两项实装。不过关于便利性上,国服似乎还有很多路要走。自从顾爷回归DNF以来,几乎每天都在跟我抱怨关于DNF里面各种各样...

掌握Visual Studio项目配置【基础篇】

1.前言VisualStudio是Windows上最常用的C++集成开发环境之一,简称VS。VS功能十分强大,对应的,其配置系统较为复杂。不管是对于初学者还是有一定开发经验的开发者来说,捋清楚VS...

还嫌LED驱动设计套路深?那就来看看这篇文章吧

随着LED在各个领域的不同应用需求,LED驱动电路也在不断进步和发展。本文从LED的特性入手,推导出适合LED的电源驱动类型,再进一步介绍各类LED驱动设计。设计必读:LED四个关键特性特性一:非线...

Visual Studio Community 2022(VS2022)安装图文方法

直接上步骤:1,首先可以下载安装一个VisualStudio安装器,叫做VisualStudioinstaller。这个安装文件很小,很快就安装完成了。2,打开VisualStudioins...

Qt添加MSVC构建套件的方法(qt添加c++11)

前言有些时候,在Windows下因为某些需求需要使用MSVC编译器对程序进行编译,假设我们安装Qt的时候又只是安装了MingW构建套件,那么此时我们该如何给现有的Qt添加一个MSVC构建套件呢?本文以...

Qt为什么站稳c++GUI的top1(qt c)

为什么现在QT越来越成为c++界面编程的第一选择,从事QT编程多年,在这之前做C++界面都是基于MFC。当时为什么会从MFC转到QT?主要原因是MFC开发界面想做得好看一些十分困难,引用第三方基于MF...

qt开发IDE应该选择VS还是qt creator

如果一个公司选择了qt来开发自己的产品,在面临IDE的选择时会出现vs或者qtcreator,选择qt的IDE需要结合产品需求、部署平台、项目定位、程序猿本身和公司战略,因为大的软件产品需要明确IDE...

Qt 5.14.2超详细安装教程,不会来打我

Qt简介Qt(官方发音[kju:t],音同cute)是一个跨平台的C++开库,主要用来开发图形用户界面(GraphicalUserInterface,GUI)程序。Qt是纯C++开...

Cygwin配置与使用(四)——VI字体和颜色的配置

简介:VI的操作模式,基本上VI可以分为三种状态,分别是命令模式(commandmode)、插入模式(Insertmode)和底行模式(lastlinemode),各模式的功能区分如下:1)...

取消回复欢迎 发表评论: