徐松亮STM32教学-嵌入式工程师培训资料(重磅资料)

版权声明:本文为博主徐松亮的原创作品,未经允许不得转载,多谢支持!QQ:5387603

推荐点击此链接:欢迎进入徐松亮博客一站式导航搜索(随时更新)


之所以所这篇资料是重磅资料,是因为基于STM32开发产品,我拥有近10年的开发经验,属于饭碗级的看家本领,这篇是我工作中给新入职工程师培训用的文档之一,可供参考价值本人认为还是很高的,工程源码链接后续会上传。

目录

1,ARM简介

 ARM公司介绍

IP核发展

ARM授权厂商(大于175个)

Cortex-M内核介绍

ARM资源获取

 2,ST意法半导体介绍

 7.3.1     发展史

 7.3.2     MCU生态系统

 7.3.3     STM32之选型

3,STM32之开发环境

 硬件开发工具:    

 软件开发工具:    

CMSIS

嵌入式软件

4,STM32资源获取

 5,STM32之开发环境搭建

IDE(Integrated Development Environment)介绍与安装

JLINK安装

串口打印

6,STM32之内存映射

CPU内部Flash        

CPU内部SRAM1        

CPU内部SRAM2        

 内存映射表

 8,STM32之工程架构

目录结构与MDK工程结构

新项目步骤

9,STM32之Map与Htm文件

什么是Map文件

名词解释

目的

MDK需要配置的选项

htm文件

10,STM32的三种启动方式

11,数据类型,变量与堆栈

ANSI C和ISO C历史

ARM架构数据类型

推荐头文件stdint.h对数据类型的定义

 7.12.4     局部变量与全局变量

 7.12.5     堆栈

12,STM32之存储器分配与IAP

13,STM32之USB-Debug调试

目的

条件

指令

编写调试代码

14,公司编程简易标准

名称标准

善于应用C语言指针

关于.h文件

关于.c文件(理念:函数数量越少越好)

程序模块的独立可移植性

15,推荐软件---Source Insight(资料过时,安装SI4x版)

 目的

安装步骤

启动配置

加载AStyle插件

常用快捷键

16,推荐软件---BCompare 

目的

安装步骤

装载配置

常用方法:

破解方法:


1,ARM简介

  •  ARM公司介绍

    • 1978年英国剑桥创办CPU公司
    • 1979年CPU公司改名为Acorn计算机公司
    • 1985年设计第一代32位6Mhz处理器,简称ARM(Acorn RISC Machine)
    • 1990年Acorn公司改名为ARM公司。苹果出150万英镑,芯片厂商VLSI出25万英镑,Acorn本身150万英镑和12名工程师入股。办公地点非常简陋,就是一个谷仓。
    • 20世纪90年代推广到世界范围,占据低功耗,低成本和嵌入式应用领域。ARM公司不生产芯片,只出售芯片技术授权。
  • IP核发展

    •  
  • ARM授权厂商(大于175个)

    •  
  • Cortex-M内核介绍

    • M3内核是Cortex系列第一内核,2005年发布
      •  
    • M4内核2010年发布
      • M4特有指令集:浮点指令,SIMD指令(单指令多数据),快速MAC指令(乘累加)
    • Cortex-M内核的优势及应用
      • 被认为是RISC(简单指令),但是有大量指令和混合指令,使其更具备CISC(复杂指令)性能。
      • 低功耗,高性能,代码密度小,快速中断响应,功能强劲的调试组件
      • 超低价:最便宜不足0.5美元(STM32F030)。
  • ARM资源获取

 2,ST意法半导体介绍

  •  7.3.1     发展史

    • 1987年由意大利的SGS微电子公司与法国Thomson半导体公司合并而成
    • 1994年成为上市公司
    • 1998年5月改名为意法半导体有限公司
    • 公司总部在瑞士日内瓦,11500研发人员,48000员工总数,销售全球
    • 世界最大的半导体公司之一,多重电子领域。
  •  7.3.2     MCU生态系统

    •  
  •  7.3.3     STM32之选型

    • 手册链接:
    • Cortex-M0(Cortex-M0+)        低功耗小尺寸
    • Cortex-M3                高性能丰富的外设
    • Cortex-M4                DSP与浮点运算
      •  
      •  
      •  
      •  
    • Cortex-M7                更高的数字信号处理性能
    • 可以在手机端安装APP        st器件查找.apk
    • 产品型号说明
      •  ​​​​​​​
    • 选型注意事项:更多关注市场主流型号,供货周期短,且性价比更高。

3,STM32之开发环境

  •  硬件开发工具:    

    • ST-LINK        ST厂家开发
    • J-LINK        Segger开发(V8(基于Atmel-ARM7开发)  V9(基于STM32开发))
    • ULINK        MDK厂家开发
  •  软件开发工具:    

    • 免费解决方案:CooCox,emIDE。。。
    • 商业解决方案:IAR EWARM,KEIL MDK。。。。
  • CMSIS

    • Cortex Microcontroller Software Interface Standard

    •  
  • 嵌入式软件

    • 底层驱动
      • 固件库
      • ST DSP库
      • ST的板级支持包(BSP)
    • 固件协议栈
      • RTOS
        • 免费的FreeRTOS
        • 商业的uCOS ,embOS
      • USB
        • 免费的ST USB
        • 商业的emUSB,uC/USB
      • TCP/IP
        • 免费的UIP,Lwip
        • 商业的embOS/IP,uC/TCPIP
      • File systems
        • 免费的FatFS
        • 商业的uC/FS,emFile
      • Graph
        • 免费的STemWin
        • 商业的TouchGFX

4,STM32资源获取

  • 官网                
    • www.st.com
  •  STM32/STM8社区    
  • STM32固件库源码下载地址
  • STM32的几个重要文档
    • 参考手册(Reference Manual)
      • 对芯片每个模块的具体描述和功能介绍,比如我们要查 USAR相关寄存器和功能的介绍就可以使用这个手册。
    • 数据手册(Data Sheet)
      • 芯片引脚定义、电气特性、机械封装、料号定义。在我们要画PCB 的时候用到这个手册的时候比较多,这个手册上面有关于这个系列芯片的引脚定义,和封装等信息。
    • 勘误手册(Errata Sheet)
      • 描述了芯片某些功能的局限性,并给出问题的时候,就需要查找一下了,看看是否给出出解决办法。这个手册也比较重要,有时候我们觉得有些地方调试老是了解决方案。
    • 闪存编程手册(Flash Programming Manual)
      • 对芯片片上闪存的操作指南、读写保护设置,选项字节信息。
    • 内核编程手册(Cortex-M Programming Manual)
      • 对内核的系统控制块寄存器的描述。这个手册有的时候也要用到,比如我们需要了解 NVIC 和SysTick 相关的寄存器,就需要使用这个手册,这个手册可以在 ARM 官方网站下载,也可以到ST 官网下载,区别就是 ARM 方法的是通用的,ST 发的是针对自己的芯片做的,有时候在参考手册上面找丌到相关寄存器的信息时,就需要这个手册。
    • 应用文档(Application Note)
      • 针对不同应用主题的描述性文档;常常有不其搭配的固件例程。应用文档的重要性不言而喻,很多时候官方对于一些用于做出了一些解决方案,都会在应用文档里面进行说明
    • 用户手册(User Manual)
      • 一般是对某个软件库的说明文档
    • Cortex-M3/M4权威指南
      • 这也是非常重要的参考资料,对于有兴趣了解 M3/M4 内核的同学,这个资料相当重要,了解了内核才能更好的利用 M3/M4。

 5,STM32之开发环境搭建

  • IDE(Integrated Development Environment)介绍与安装

    • IDE的组成
      • C compiler         C编译器     将C文件编译成obj文件
      • Assembler         汇编器        将汇编文件编译成obj文件
      • Linker                链接器        将多个obj文件连接为一个可执行文件
      • Flash Programmer               将可执行文件下载到MCU的Flash内
      • Debugger          调试器        硬件在线调试,程序执行和系统状态监测
      • Simulator           模拟器        软件模拟MCU执行程序
      • Other utilities     其他工具    如生成bin文件等
    • MDK和IAR工作流程
      •  
    • MDK的安装和注册
      • 官方下载地址:    https://www.keil.com/download/product/
      • MDK5以上的版本需要另外安装器件库。
  • JLINK安装

  • 串口打印

    • SecureCRT是最好的串口工具,但需要破解安装
    • sscom42.exe是最方便的串口工具

6,STM32之内存映射

  • CPU内部Flash        

    • 0x08000000    ~    0x080FFFFF    容量1MB
  • CPU内部SRAM1        

    • 0x20000000    ~    0x2001FFFF    容量128KB
  • CPU内部SRAM2        

    • 0x10000000    ~    0x1000FFFF    容量64KB
  •  内存映射表

 7,STM32之MDK工程配置

  •  7.8.1     Options for Target---Device
    •  
  •  7.8.2     Options for Target---Target
    •  
    • 关于微库:做了深度优化,比使用标准库所需的RAM和FLASH空间都大大减少,比如<math.h><stdlib.h><stdio.h><string.h>,但只有库无源文件。
  •  7.8.3     Options for Target---Output
  •  7.8.4     Options for Target---User
    •  
  •  7.8.5     Options for Target---C/C++
    •  
  •  7.8.6     Options for Target---Debug
    •  
  •  7.8.7     Options for Target---Utilities
    •  
  •  7.8.8     Options for Group…(Options for File…)
    •  
  •  7.8.9     Manage Project Items---Project Items
    •  
  •  7.8.10     Manage Project Items---Folders/Extensions
    •  
  •  7.8.11     Pack Installer
    •  
  •  7.8.12     Target Driver Setup

 
8,STM32之工程架构

  • 目录结构与MDK工程结构

  • 新项目步骤

    • 将当前项目设为Base-STM32F4项目,这个项目为STM32F4的基本项目,这个项目只保留了OS,RTC与USB-Debug功能,无任何其他功能。
      •  
    • 进入项目管理,点击新建项目目标,如下图
      •  
      • 比如建立了一个名字为TEST的工程
      •  
      • 因为之前已经把当前项目设为了Base-STM32F4项目,所以新建的TEST项目是完全继承与Base-STM32F4项目,所有配置与之完全相同。
    • 设置编译后生成的生产文件名称。
      •  
    • 测试基本工程软件与硬件是否能成功运行。
    • 下载Boot程序
    • 下载本工程
    • 连接USB到电脑
    • 电脑端打开串口调试助手,点击ESC,应有调试信息输出。
      •  
    • 在工程配置中给项目命名
      •  
      •     这个步骤就是相当于在编译之前宏定义一个项目名称,用来区分不同的项目,因为这个工程是一个超级工程,它支撑了所有产品代码,不同的产品硬件接口与功能是不一样的,但是我们为了今后维护的方便,所以给每个项目宏定义了一个唯一的名称标识。
      •     比如看Bsp_Tim.h文件,用以下与编译语句即可实现支持所有产品,表述了每个产品要放在定时器处理的函数,要着重关注红框的结构:
      •  
    • 开启(使能)相关驱动文件
    • 在编译器中使能文件编译
    • 参考上图,在驱动中加入自己项目的需求。
    • 用Debug来测试每个驱动文件的正确性。
    • 根据需求建立不同任务并分配优先级与堆栈。

9,STM32之Map与Htm文件

  • 什么是Map文件

    • 文件与文件之间的关联;
    • 函数与变量所在的绝对地址
    • 全部工程与每部分代码所占用的空间信息。
    • 编译通过后,鼠标在MDK的Project页面双击项目名称,就可以显示出Map文件。
  • 名词解释

    • Code             程序代码
    • Inc.data        内联数据(如文字池和短字符串)
    • RO Data       常量
    • RW Data      已初始化的变量
    • ZI Data        零初始化的变量
    • Debug         调试代码(与实际关系不大)
    • 另:
    • .text             与RO-code同义
    • .constdata   与RO-data同义
    • .bss             与ZI-data同义
    • .data           与RW-data同义
  • 目的

    • 优化缩减代码。
    • 查看函数与变量的绝对地址
    • 文件函数间的调用关系
      •  
      • 红框内语句表示main.c中的App_TaskStart函数调用了Bsp_rtc.C中的BspRtc_Init函数
  • MDK需要配置的选项

  • htm文件

    • 目的:统计函数的栈使用情况(不考虑中断嵌套)。
    • 示例贴图如下:

10,STM32的三种启动方式

  • 从Flash启动            :    正常运行时选择这种模式
  • 从系统存储器启动    :    ISP(In-System Programming 在系统可编程)下载使用
  • 从内嵌SRAM启动        :    调试用,目前很少使用

11,数据类型,变量与堆栈

  • ANSI C和ISO C历史

    • 1983年,美国国家标准协会(ANSI)组成了一个委员会来创立C语言的标准。因为这个标准是1989年发布的,所以一般简称C89标准,也有人称ANSI C。
    • 1990年,ANSI C89标准被国际标准化组织(ISO)和国际电工委员会(IEC)采纳为国际标准,名叫ISO/IEC9899:1990-Programming languages C,简称C90标准,与C89为同一标准。
    • 2000年3月,国际标准化组织(ISO)和国际电工委员会(IEC)采纳了第二个C语言标准,名叫ISO/IEC9899:1999-Programming languages C,简称C99标准。
    • 2011年12月,国际标准化组织(ISO)和国际电工委员会(IEC)采纳了第三个C语言标准,名叫ISO/IEC9899:2011-Programming languages C,简称C11标准。
  • ARM架构数据类型

  • 推荐头文件stdint.h对数据类型的定义

    • stdint.h是c99中引进的一个标准C库的头文件,目前大部分单片机C编译器均支持,IAR和MDK都支持。下面是部分内容:
      • /* exact-width signed integer types */
      • typedef signed char int8_t;
      • typedef signed short int int16_t;
      • typedef signed int int32_t;
      • typedef signed __INT64 int64_t;
      • /* exact-width unsigned integer types */
      • typedef unsigned char uint8_t;
      • typedef unsigned short int uint16_t;
      • typedef unsigned int uint32_t;
      • typedef unsigned __INT64 uint64_t;
    • 常用的定义方式如下:
      • u8 err;                不推荐
      • U8 err;                不推荐
      • INT8U err;          不推荐
      • UINT8 err;          不推荐
      • uint8 err;            不推荐
      • uint8_t err;         重点推荐,因为符合C99规范。
  •  7.12.4     局部变量与全局变量

    • 能用局部变量,绝不要定义到全局,有以下缺点:
      • 合作开发容易重名
      • 全局变量是开放给别人用的变量,增加数量会使合作者烟花缭乱
      • 会使程序结构差,形成一张蜘蛛网。
      • 占用绝对空间
      • 移植代码还要移植全局变量,将会使人头痛。
      • 如果单函数调用,但函数退出不能清0,那就用static,也好过全局。
    • 命名要符合公司命名标准。
    • 要善于使用内存申请与释放的方式。(避免用malloc 和free系统函数,而是用自己编写的申请与释放函数)。
    • 变量函数要分类,必要时用结构体分类,尤其是开放给别人用的全局变量。
  •  7.12.5     堆栈

    • 栈(stack)空间:后进先出结构,用于局部变量,函数调用时现场保护和返回地址,函数形参等。
    • 堆(heap)空间:先进先出结构,用于malloc,calloc,realloc等函数分配的变量空间。
    • 设定堆栈空间的大小:
      •  
    • 如果是无系统工程,要根据函数的局部变量与调用深度来决定栈空间大小,实际上很少人去计算,通常也是默认值即可,但是要严格控制局部变量。
    • 如果是用uCOSIII系统,因为每个任务都有独立的栈空间,所以这个设定只用于系统任务启动前,所以可以设为很小。
    • 因为我们不建议使用malloc等系统自带的内存管理函数,所以堆空间也可以设为非常小。
    • 实例:

12,STM32之存储器分配与IAP

  • 相关文件
    • Bootloader.c        Boot代码
    • Bsp_CpuFlash.c    读写芯片内部Flash的底层代码。
    • IAP.c                应用层升级代码。
  • 读写操作(代码详见Bsp_CpuFlash.c):
    • 读:指定地址任意读
    • 写:先擦后写,但是擦的最小单位就是扇区
    • 由上可知,如果要修改一个字节,流程为把整个扇区备份到另一个扇区,将备份区回写到要写入的扇区,在此过程中修改要修改的数据。然后再删除备份扇区。
    • 为什么不在内存中修改数据?因为如果没有备份扇区,将数据读到内存后,就要擦除扇区,如果此时断电,所有数据将全部丢失。
    • 怎么保证掉电丢失?上电查看备份扇区,如果有有效数据,则把数据恢复到参数扇区。
  • STM32F1与STM32F4的FLASH目前分配(Bsp_CpuFlash.h):
    • STM32F1:2KB为一个扇区,固定单位。
    • STM32F4:
      • 0x08000000~0x08003FFF    16KB    扇区0    Boot区
      • 0x08004000~0x08007FFF    16KB    扇区1    参数存储
      • 0x08008000~0x0800BFFF    16KB    扇区2    参数备份
      • 0x0800C000~0x0800FFFF    16KB    扇区3    APP区
      • 0x08010000~0x0801FFFF    64KB    扇区4    APP区
      • 0x08020000~0x0803FFFF    128KB    扇区5    APP区
      • 0x08040000~0x0805FFFF    128KB    扇区6    APP区
      • 0x08060000~0x0807FFFF    128KB    扇区7    APP区
      • 0x08080000~0x0809FFFF    128KB    扇区8    G才有此区
      • 0x080A0000~0x080BFFFF    128KB    扇区9    G才有此区
      • 0x080C0000~0x080DFFFF    128KB    扇区10    G才有此区
      • 0x080E0000~0x080FFFFF    128KB    扇区11    G才有此区
  • APP程序相对普通程序的三个修改点:
    • 主函数中断向量偏移设置(main函数):
    • 目标配置
      •  
    • Jlink目标地址配置:

13,STM32之USB-Debug调试

  • 目的

    • 每个项目的按键小灯接口不同,也不一定会有LCD,即使是串口,也很难接口统一,唯有USB从机,一般来说我们目前的项目对其无任何应用,即使有也可以通过技术手段与调试并存,而且硬件成本极低,只需要一个几毛钱的USB接头即可与PC建立通讯。所以我选择了USB从机接口作为与PC机的终端接口,将USB开发为VCP模式(USB虚拟串口),自主研发了类似于DOS界面的嵌入式软件代码,PC端只需要串口调试助手即可与设备进行数据通讯。
    •  
  • 条件

    • 板子上带有USB接口
    • PC安装厂商驱动软件STM32 USB转串口驱动 Virtual COM Port Driver(V1.3.1)
    • PC端有串口工具,如sscom42.exe
  • 指令

    • “Esc”                显示指令列表并等待指令    或    退出当前测试模式
    • “指令”+“Enter”    等待指令时,依次按两个按键,可运行相应测试项
    • 10秒无按键操作,则退出等待指令模式,需按“Esc”重新进入
  • 编写调试代码

    • 接口文件    uctsk_Debug.h
    • 功能结构体(uctsk_Debug.h---Debug_S_Menu)
    •  
    • 实例
    •  
    • 步骤
      • 在uctsk_Debug.h中加入头文件
        •  ​​​​​​​
      • 在uctsk_Debug.h中Debug_MenuTab表加入实体代码
        •  
    • 注意
      • 编写入口与回调函数 参数和返回值结构固定为下图红框函数
        •  
      • 具体函数实现参照源码实例即可,在此不再详述。

14,公司编程简易标准

  • 名称标准

    • 数据结构宏定义
      • 使用stdint.h的标准库描述通用类型,如uint8_t等,不准再使用char int等表达,因为不同的芯片及不同的开发环境int表达的长度不同.
    • 文件名称
      • 任务层应用用uctsk_Xxx来表达
      • 模块层用Module_Xxx来表达
      • 驱动层用Bsp_Xxx来表达
      • 名称不准与标准c语言库文件名相同,如time.h,stdio.h…
    • 宏定义名称
      • 全大写,格式:文件名_描述类别_描述内容,常数带括号,按需加L
      • 例如: #define UCTSK_RFMS_UART_BPS   (19200)
    • 常量名称
      • 全大写:格式:文件名_描述类别_描述内容
      • 例如: const uint8_t MAIN_STR_TEST[]="123";
    • 结构体名称
      • 格式:文件名_S_描述: MODULE_MEMORY_S_FILEINFO
    • 函数名称
      • 首字母大写,格式:文件名_含义
      • 例如: void Module_Memory_Init(void);
    • 枚举名称
      • 全大写,格式:文件名_E_描述类别
      • 例如: MODULE_MEMORY_E_SLEEPLEVEL
  • 善于应用C语言指针

    • 指针提高运行时间
    • 指针减少内存占用空间
    • 函数返回数据
      • uint8_t ReadRealTime(uint8_t *time,tm *CurrentTime_tm);
    • 结构体的强制转换
      • //编译器地址对齐问题
        • uint32_t MemberTestBuf[256/4];
      • //定义结构体指针
        • S_MEMORY_VER *p_Ver;
      • //指向缓存
        • p_Ver=(S_MEMORY_VER*) MemberTestBuf;
      • //缓存清空
        • memset((INT8U*)p_Ver,0,sizeof(S_MEMORY_VER));
      • //赋值
        • p_Ver-> Type=1;
      • //访问
        • I= p_Ver-> Type;
    • 注意:一定认真弄懂什么时候用        *    &    .    ->
  • 关于.h文件

    • 描述接口硬件宏定义
    • 描述接口数据结构
    • 描述接口变量
    • 描述接口函数
    • 在.h文件中只表述与外界相关的接口与配置宏定义,接口的函数和变量,对内使用的变量及宏在.c中表达,不要开放到.h中,详见Bsp_Led.h
  • 关于.c文件(理念:函数数量越少越好)

    • 驱动层
      • 初始化
      • 周期性处理函数(例如:用于温度非阻塞式读取)
      • 功能性处理函数(例如:用于温度阻塞式读取)
      • Debug测试函数(符合uctsk_Debug.h使用标准)
    • 模块层
      • 详见Count.c(.h)
    • 任务层:
      • 任务创建函数
      • 任务实体函数
      • 接口函数
      • Debug测试函数(符合uctsk_Debug.h使用标准)
  • 程序模块的独立可移植性

    • 终极理念: 每个.c/.h文件都可以独立移植应用(最好做到只改变.h文件即可)。详见Bsp_Led.c.h,

15,推荐软件---Source Insight(资料过时,安装SI4x版)

  •  目的

    • 相对于直接在编译器环境编程,可以大幅度提高编程效率。
    • 利用AStyle插件来自动化的格式化文件格式,使多人合作项目的相关程序文件做到格式绝对的统一.这样也有利于后期用程序对比软件的识别.
  • 安装步骤

    • 安装Si35Setup.exe,安装后,记得注册Sn.txt中三个注册码之一
  • 启动配置

    • 打开Base项目(Project---Project Name---Base),将配置文件夹中的Chnchar.em,codeReview.em,quicker.em加入到此项目中(鼠标拖动即可)
      •  ​​​​​​​
    • Options---Load Configuration---Load 载入配置文件XSL.CF3
  • 加载AStyle插件

    • SourceInsigned---Options---Custom Commands---Add,在弹出对话框中写入命令名Astyle,在Run中写入下面内容(格式化当前文件指令):
      • "C:\lb\AStyle\bin\Astyle.exe" --style=ansi -s4 -S -N -L -m0 -M40 --convert-tabs --suffix=.pre %f
    • 路径相关的内容按实际安装路径和项目路径改动,之后点击RUN。
      •  
    • SourceInsignedOptionsCustom CommandsAdd,在弹出对话框中写入命令名Astyle,在Run中写入下面内容(格式化当前文件指令):
      • "D:\lb\AStyle\bin\Astyle.exe" Z:\LocalProject /*.c Z:\LocalProject /*.h --style=ansi -s4 -S -N -L -m0 -M40 --recursive --convert-tabs --suffix=.pre %f
    • 路径相关的内容按实际安装路径和项目路径改动,之后点击RUN。
      •  
    • 定义格式化快捷键: SourceInsignedOptionsCustom CommandsKeys…
      •  
    • 点击”Assign New Key…” 之后按想设置的快捷键: 
    • 建议:     Astyle 为 Ctrl+Alt+F
    • 建议:     Astyle All为Ctrl+Alt+G
  • 常用快捷键

    • Alt+X:    上次光标定位
    • Alt+C:    下次光标定位
    • Alt+E:    进入函数实体/变量定义处
    • Alt+A:    程序那些地方调用或函数
    • Ctrl+?:    搜索
    • Shift+F8:    高亮
    • ……
    • 查看/设定所有快捷键:OptionCustom CommandsKeysList,会输出快捷键链表文件。

16,推荐软件---BCompare 

  • 目的

    • 多人合写项目程序,必定要涉及程序的整合.
    • 原来程序正常,现程序异常,潜在问题追溯。
  • 安装步骤

    • 安装BCompare-zh-3.3.5.15075,安装后,记得注册Key.txt中注册码
  • 装载配置

    • BCSettings.bcpkg
  • 常用方法:

    • 安装后,重启电脑,会在鼠标右键中”选择左侧文件夹比较”,”和XXX”比较,选择两个文件或文件夹后会软件会自动启动.
    • 软件打开后,建议先选择所有文件,然后执行一遍比较内容(Alt+W),系统会把完全一样的文件屏蔽掉.
    • 因为软件是中文的,更多的功能同事还要自己探索.
  • 破解方法:

    • 有key可以输入即可,但是有时会被远程无效,解决方法:找到“C:\Users\Administrator\AppData\Roaming\Scooter Software\Beyond Compare 3”目录,然后将这个目录下的所有文件都删除掉,重新打开“Beyond Compare”工具,然后重新输入密钥激活一下就可以重新正常使用了。
发布了28 篇原创文章 · 获赞 81 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/xslxhn/article/details/83375920