电子工程应用记录

文章目录

0. 一些不错的学习平台&工具

  1. 中国大学MOOC
  2. 万能的B 站
  3. STM32 MCU开发者社区
  4. CSDN 极术社区
  5. CSDN 社区
  6. STC 官网
  7. Digi-Key 得捷电子论坛
  8. 正点原子资料汇总
  9. 原子哥视频平台
  10. PCB 联盟网
  11. 凡亿PCB
  12. 在线仿真网站
  13. 单位转换在线网站
  14. 公式编辑器Mathtype 中文站
  15. 云IDE
  16. telesky
  17. 悟空云-在线CAD

1. keil MDK - 单片机开发软件


1.1 安装与配置

参考:https://blog.csdn.net/ChenGuiGan/article/details/80218875
pj software

  1. keil 官网官网下载链接下载MDK 版本 keil 并安装(需要账号登陆);

安装时的几个注意事项:

  1. 安装路径要是全英文
  2. 多个Keil 版本(如MDK、C51) 不要安装在同一个路径上
  1. 百度下载keil zhucheji(见上 pj software 链接🔗);
  2. 右击管理员身份打开安装好的 keil - File - LicenseManagement - 复制 CID 序列号;
    在这里插入图片描述
  3. 打开keil zhucheji,把复制的序列号粘贴到CID 中,Target 选 ARM,下拉选择MDK Professional,点Generate,复制生成的序列号;

若出现报错..\OBJ\RS485.axf: error: L6047U: The size of this image (33920 bytes) exceeds the maximum allowed for this version of the linker是没pj 成功,换个对应版本的pj 软件试一试;

在这里插入图片描述
5. 回到keil,把复制的序列号粘贴到LIC 区域,点Add LIC;
在这里插入图片描述
6. 芯片对应支持包的安装(芯片包):

  • 方法一:回到keil 界面,点击pack installer,直接安装对应的STM32 芯片包;
    在这里插入图片描述
  • 方法二:若上部没显示STM32 的包或连不上网络,可到官网 https://www.keil.com/dd2/ - Software Packs 下载;
    找到对应芯片包下载安装,如STM32F103ZE;
    在这里插入图片描述
    点击Download;
    在这里插入图片描述

以上建议复制下载链接到迅雷下载

双击安装,或在keil的Pack Installer中点击File - Import进行包导入;
在这里插入图片描述
安装完成后,返回keil5 MDK中的device页面查看是否安装成功;
在这里插入图片描述

这里提供STM32H7系列的 Pack包,如果网络不佳的伙伴可以借道获取:Keil STM32H7系列芯片Pack 包

1.2 新建工程

参考:使用MDK5创建Cortex-M应用指南-中文版
详见开发指南:新建基于固件库的 RVMDK 工程模板一节。

1.2.1 在keil中新建工程

在Keil中新建一个工程,选择STM32芯片
在这里插入图片描述
在这里插入图片描述

1.2.2 配置工程文件夹

当然,可以直接复制开发板附送的工程模板进行使用。
在这里插入图片描述

  • 在工程目录下面,新建 3 个文件夹 CORE, OBJ、STM32F10x_FWLib. 其中:

    • CORE 用来存放核心文件和启动文件。
    • OBJ 是用来存放编译过程文件以及 hex 文件。
    • STM32F10x_FWLib 文件夹用来存放 ST 官方提供的库函数源码文件。
    • 已有的 USER 目录除了用来放工程文件外,还用来存放主函数文件 main.c,以及其他包括 system_stm32f10x.c 等等。
  • 将官方的固件库包里的源码文件复制到工程目录文件夹下面。打开官方固件库包,定位到之前准备好的固件库包的目录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver 下面,将目录下面的 src,inc 文件夹复制到刚才建立的 STM32F10x_FWLib 文件夹下面。其中src 存放的是固件库的.c 文件,inc 存放的是对应的.h 文件。

  • 将固件库包里面相关的启动文件复制到工程目录 CORE文件夹下。打开官方固件库包,定位到目录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport 中,将文件 core_cm3.c和文件 core_cm3.h 复制到 CORE 文件夹中 。 然 后 定 位 到 目 录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 下面,将里面的startup_stm32f10x_hd.s (根据不同芯片选择)文件复制到 CORE 文件夹中。

不同容量的芯片使用不同的启动文件,比如芯片 STM32F103ZET6 是大容量芯片,所以选择启动文件startup_stm32f10x_hd.s。

  • 定位到目录:STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 下面将里面的三个文件stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,复制到我们的 USER目录之下。然后将STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template 下面的 4 个 文件main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h 复制到 USER 目录下面。

1.2.3 在Keil中配置工程文件

  • 新建Keil工程后,点击菜单栏上的品字图标(Manage Components),Project Targets 一栏,将 Target 名字修改为项目名,然后在 Groups 一栏删掉一个 Source Group1,分别建立USER,CORE,FWLIB. 点击 OK. 在这里插入图片描述
  • 往 Group 里面添加需要的文件。 选择需要添加文件的 Group,这里第一步选 择 FWLIB , 然 后 点 击 右 边 的 Add Files, 定位到刚才建立的目录STM32F10x_FWLib/src 下面,将里面所有的文件选中(Ctrl+A),然后点击 Add,然后 Close. 可以看到 Files 列表下面包含已添加的文件。

注:对于工程代码,如果只用到了其中的某个外设,可以不用添加没有用到的外设的库文件。比如只用 GPIO,可以只用添加 stm32f10x_gpio.c 而其他的可以不用添加。否则工程太大,编译起来速度慢。

  • 用同样的方法,将 Groups 定位到 CORE 和 USER 下面,添加需要的文件。这里 CORE 下面需要添加的文件为 core_cm3.c,startup_stm32f10x_hd.s,USER 目录下面需要添加的文件为 main.c,stm32f10x_it.c,system_stm32f10x.c.

  • 配置头文件文件夹路径。点击菜单栏的魔术棒(Option for target),选择c/c++选项,点击 Include Paths右边的…按钮。弹出一个添加 path 的对话框,然后我们将头文件目录添加进去。

注意,keil 只会在一级目录查找,所以如果你的目录下面还有子目录,记得 path 一定要定位到最后一级子目录。
在这里插入图片描述

1.2.4 其他配置

  • 在编译之前首先要选择编译中间文件编译后的存放目录。点击魔术棒,选择“Output”选项下面的“Select folder for objects…”,选择目录为上面新建的 OBJ 目录。
    在这里插入图片描述
  • 库函数在配置和选择外设的时候通过宏定义来选择的,所以需要配置一个全局的宏定义变量。同样点击魔术棒,定位到 c/c++界面,然后填写“STM32F10X_HD,USE_STDPERIPH_DRIVER”(视芯片而定)到 Define 输入框里。
    在这里插入图片描述

注:如果用的是中容量芯片那么 STM32F10X_HD 修改为 STM32F10X_MD,小容量修改为 STM32F10X_LD.

*(H7) 创建工程文件夹

工程文件夹内的内容可参考下图创建,其中User-bsp文件夹中是开发板各个外设的驱动,segger文件夹是硬件异常分析代码。
在这里插入图片描述

*(H7) 创建新工程

打开MDK,选择 Project ->New uVision Project-选择工程路径-填写工程名-保存
在这里插入图片描述
选择芯片
在这里插入图片描述
设置工程名和工程分组:Project-Manage-Project Items
在这里插入图片描述
创建工程分组
在这里插入图片描述

*(H7) 添加工程文件

其中最左边Project Targets为工程分组,修改其内容即可修改工程名字。

工程–>功能代码分组–>代码源文件。
在这里插入图片描述
如在各工程分组中添加以下代码文件
在这里插入图片描述
bsp.c 位于路径\User\bsp,主要用于 MPU、Cache、时钟和外设初始化。
bsp.h 位于路径\User\bsp,此文件是各种头文件的集中汇总贴,方便管理。
bsp_led.c 位于路径\User\bsp\src,用于 LED 驱动。
bsp_key.c 位于路径\User\bsp\src,用于按键驱动。
bsp_timer.c 位于路径\User\bsp\src,用于软件定时器组和微妙级单次延迟。
bsp_fmc_io.c 位于路径\User\bsp\src,用于 IO 扩展,这里 LED 要用到。
bsp_uart_fifo.c 位于路径\User\bsp\src,用于 8 串口 FIFO 驱动。
stm32h7xx_it.c 位于路径 User\bsp,用于部分系统中断服务程序。

在这里插入图片描述
startup_stm32h743xx.s 位于路径\Libraries\CMSIS\Device\ST\STM32H7xx\Source\Templates\arm,主要用于堆和栈空间设置,中断向量表也在这个文件。

在这里插入图片描述
stm32h7xx_hal_conf.h 位于路径\User\bsp,主要用于 HAL 库的配置。
其它文件路径:\Libraries\STM32H7xx_HAL_Driver\Src,用到什么外设添加什么驱动文件即可,有些外设驱动跟 DMA 也有关联,直接添加进来即可。

在这里插入图片描述
system_stm32h7xx.c 位于路径\Libraries\CMSIS\Device\ST\STM32H7xx\Source\Templates,主要用于复位 RCC 相关寄存器和中断向量表位置设置。
在这里插入图片描述
这两个文件位于路径:\User\segger\HardFaultHandlerMDK,主要用于硬件异常分析。

1.3 常用设置

1.3.1 多核并行编译

Edit --> Configuration --> Other
在这里插入图片描述

1.3.2 字体设置

安装微软雅黑混合字体,字体效果很棒,解决显示中文的BUG

Edit --> Configuration --> Editor --> 选择简体中文
在这里插入图片描述
Colors & Fonts中可选择对应的字体。
在这里插入图片描述

1.3.3 语法提示

Edit --> Configuration --> Text Completion --> 勾选 Symbols after 3 characters

注意:需要在工程(Project)中才能实现代码补全功能,要对工程先编译一遍;

在这里插入图片描述

1.3.4 护眼主题

Edit --> Configuration --> color&fonts —> 左边Windows 中选择C/C++ Editor files 一项 --> 右边Element 中选择Text --> 再右边选择background --> 将除 Matching Braces 和 Incomplete String 以外的色调设置为84 饱和度设置为91 亮度为205;
在这里插入图片描述

1.3.5 复位窗体默认布置

把所有窗体布置恢复成默认模式;
菜单栏 - Window - Reset View to Defaults;
在这里插入图片描述

1.4 Configuration选项卡简介

1.4.1 解决中文乱码

Edit - Configuration - Editor - Encoding,选择Chinese GB2312
在这里插入图片描述

1.5 驱动安装、配置、程序烧录下载与常见问题

STM32的3种烧录模式:
在这里插入图片描述

1.5.1 JLNK一般配置与常见问题

  • project --> option for target --> Debug
    • 其中图三中的程序算法选择芯片对应的算法;
    • 图二HW为J-Link版本号

图2中SW Devices需要Jlink连接单片机方可搜索得到

在这里插入图片描述

  • 配置使用Jlink 作为下载器:
    在这里插入图片描述

  • JLINK JTAG 转SWD 接口介绍:
    在这里插入图片描述

JLINK固件,JLINK驱动和JLINK硬件版本之间的关系,以及固件升级方法
JLINK 无法下载解决思路以及常见问题整理

1.5.2 JLINK 驱动安装

对于新型芯片,务必使用JLINK V9、V10;

登录SEGGER官网JLINK驱动下载页面下载最新JLINK驱动并进行安装;
在这里插入图片描述

安装完成后,插上JLINK并打开电脑的设备管理器,查看电脑端是否能识别出JLINK,若JLINK灯一直闪,表示驱动没有安装成功,若不闪表示安装成功;
在这里插入图片描述

1.5.3 CH340驱动安装(RS232转USB芯片)

CH340/CH341的USB转串口WINDOWS驱动程序的安装包,支持32/64位 Windows 10/8.1/8/7

安装成功后,插上RS232转USB线到电脑并打开电脑的设备管理器,查看电脑端是否能识别出来;
在这里插入图片描述

1.5.4 【异常】芯片被锁程序不能烧录

芯片被锁的现象是下载器/仿真器搜索不到芯片,程序不能正常烧录到MCU中:
在这里插入图片描述
解决方法:单片机上电,按住MCU的复位按钮,在Keil中点击程序下载按钮,弹出下面提示框提示说检测到被读/写保护的芯片,点No,然后松开复位按钮
在这里插入图片描述

1.5.5 【异常】开发板例程下载后程序不能烧录

在这里插入图片描述
对于一些开发板附送的例程,在烧录后会导致其他程序不能继续烧录到单片机中(异常如上图所述),这时只需重新解压例程,在 Utilities 中选择Jlink 作为烧录器,
在这里插入图片描述
选择Jlink 烧录器,点击setting 进入
在这里插入图片描述
然后会弹出以下选项,点ok
在这里插入图片描述
搜索你的单片机型号,点ok即可
在这里插入图片描述
此时单片机即可与Jlink 通信成功
在这里插入图片描述

1.5.6 使用J-Flash ARM 软件下载程序

安装JLink 驱动后, 在左下角windows 图标找到 SEGGER - J-Flash ARM 软件打开

在这里插入图片描述
电脑连接上JLink 和MCU 芯片,点击Target - Connect,连接电脑与MCU

在这里插入图片描述
点击File - Open data file,加载需要烧录的烧录文件(如 .hex 格式文件)后,会弹出一个解析烧录文件的窗口
在这里插入图片描述
点击Target - Program 将烧录软件烧录到MCU,直到弹出以下窗口表示烧录成功

在这里插入图片描述

1.5.7 .bin 文件生成

如下图,进入设置;
在这里插入图片描述
选中User 选项卡,如下图输入代码,点ok,重新编译即可生成.bin 文件

fromelf.exe --bin -o "$L@L.bin" "#L"

在这里插入图片描述

1.5.8 缺少ARM V5 编译器

编译报错:

在这里插入图片描述
解决方案:

  1. 在老版本keil5 安装目录下的ARM 文件夹下找到ARMCC 文件夹,或在下面链接下载:
    链接:https://pan.baidu.com/s/1Y_qIDR-NIFczkmIYLuDqYg?pwd=MMDD 提取码:MMDD
  2. 复制粘贴到新版本keil5 的ARM 文件夹下,并解压缩;
  3. 把这个ARMCC 的路径添加进去;
    在这里插入图片描述
    在这里插入图片描述

1.5.9 ST-LINK

ST-LINK相关文件路径:精英STM32F103开发板 V2-资料盘(A盘)\6,软件资料\1,软件\5,其他软件\5,其他软件\ST LINK驱动及教程

  1. 安装ST-LINK 驱动:64位系统安装dpinst_amd64.exe,32位系统安装dpinst_x86.exe
  2. 安装完成后,电脑连接ST-LINK 硬件,查看设备管理器中是否能正常识别ST-LINK;
    在这里插入图片描述
  3. 打开项目工程,选择ST-LINK,并进入Setting,根据实际接线,选择JTAG 或SW;
    在这里插入图片描述
    在这里插入图片描述
  4. 确保下图两个选项被选中
    在这里插入图片描述

1.6 Bootloader程序设置

  1. 配置程序的ROM起始地址和占用ROM的大小,这个地址将会在程序擦除和下载时被参考到;这个IROM1也叫做中断向量表的起始地址。如果程序在 Flash 运行,则中断向量表的默认起始地址是 0x08000000 ,此时需要将其改为程序的起始地址,如0x8005000 .
    在这里插入图片描述
    2.在代码初始化处添加程序对应的ROM起始地址,其应与步骤1中设置的程序起始地址一致: NVIC_SetVectorTable(NVIC_VectTab_FLASH,(0x08005000));

  2. 程序下载时,选择部分擦除,擦除的起始地址会参考步骤1中设置的地址;
    在这里插入图片描述

包括其他程序烧录(如脱机烧录器)在配置时也需要选择擦除扇区来更新代码,在需要填写擦除扇区的起始地址时,填入程序的起始地址,如0x8005000 .

1.7 其他异常记录与解决方案

1.7.1 烧录程序时缺少MCU 的flash 算法

一般在 1.5.4 添加芯片包Device Pack 节中,下载并安装对应的芯片支持包后,在Keil MDK 中会自动加载出芯片对应的flash 文件。
如果不行,可以在网上把flash 文件放到文件目录:keil安装路径/ARM/Flash,以.flm后缀结尾的文件即为 flash 算法文件;

1.7.2 注释输入中文变问号

Edit --> Configuration --> Editor
在这里插入图片描述

1.7.3 ⚠常见编译 Warning & Error

  • warning: #69-D: integer conversion resulted in truncation:变量赋值超出了变量所定义类型的最大值;

u8定义的变量为8位无符号整型unsign char,最大值为255,负值超出255则报警告;

  • main.c(18): warning: #1-D: last line of file ends without a newline

main函数花括号最一行没加回车

  • error:#29: expected an expression

在下图地方添加 --c99 ;
在这里插入图片描述

  • warning: function declared implicitly
    函数没在对应头文件中进行声明

1.7.4 工程打开卡死

删除DebugConfig文件夹,在重新打开工程。
在这里插入图片描述

1.7.5 程序下找报错 “Flash Download failed”

在这里插入图片描述

  • 解决方法
  1. 检查J-link 接线是否接错;
  2. 检查芯片对应的启动算法文件是否正确:

在这里插入图片描述

1.7.6 error: #268:declaration may not appear after executable statement in block

将报错的变量或其他部分放在函数开头。
在这里插入图片描述
放在函数开头。
在这里插入图片描述

1.7.7 退出调试报错

若在退出调试Debug 时,遇到如下报错并卡死:
在这里插入图片描述
解决方法:

  1. 先到任务管理器结束当前卡死的keil 进程;
  2. 再次进入程序进入调试;
  3. 结束调试前,先清除所有断电,再退出调试;
    在这里插入图片描述

1.7.8 ST-LINK 闪退

参考:keil MDK 5.38版本 在Debug配置使用STlink调试时,软件闪退

  1. 在上述参考博客中下载文件STLinkUSBDriver.dll
  2. 打开keil5 的安装路径:Keil_v5\ARM\STLink,用下载的文件覆盖文件夹中的原文件;

1.7.9 ST-LINK 固件升级

  1. 若在使用ST-LINK 时,提示需要升级固件才能使用,则点击升级,点击如下图按钮;
    在这里插入图片描述
  2. 如果显示如下页面,则重新插拔ST-LINK,再次电机device connect,再点yes;
    在这里插入图片描述
  3. 等待固件升级完成;
    在这里插入图片描述

升级过程中,千万不能断开 USB 线或者电脑的网络。


TODO :

1.8 使用技巧

1.8.1 在特定格式文件内搜索全部关键字内容

选中关键字 - Ctrl+F - 见下图;
在这里插入图片描述

1.8.2 快速跳转到指定行

Ctrl + G

1.9 Option for Target选项卡简介

Project-Option for Target

1.9.1 Target

在这里插入图片描述

  1. 软件仿真时用到的晶振频率(软件仿真问题多);
  2. 选择编译器;
  3. 微库 MicroLib,这个库针对嵌入式应用,MicroLIB 做了深度优化,比使用 C 标准库所需的 RAM 和 FLASH 空间都大大减小。比如调用:<math.h>,<stdlib.h>,<stdio.h>,<string.h>;

ARM官网的MicroLib介绍
在这里插入图片描述

  1. 硬件浮点,根据芯片支持而选择;
  2. Flash的首地址,根据芯片而顶,一般首地址都是 0x0800 0000,如STM32H743XIH的FLASH大小为 0x200000,即 2MB;
  3. 默认的 RAM 空间选择 DTCM,首地址 0x2000 0000,大小 0x20000,即 128KB。地址 0x2400 0000,大小 0x80000,即 512KB 是 AXI SRAM 的空间。

1.9.2 Output

在这里插入图片描述

  1. 用于存放 MDK 编译过程中生成的 obj 临时文件路径,MDK 在创建的时候已经帮我们创建好文件夹Objects,这里无需修改,使用默认即可;
  2. Debug Information:调试信息;
  3. Create HEX File:是否生成 hex 文件;(生成的hex文件在工程的 Flash - obj文件夹中)
  4. Browse Information:是否需要 go to def 的支持,使用 HAL 库话,推荐先不要选上,因为 MDK5使用 AC5 编译 HAL 库时间比较长.

1.9.3 Listing

在这里插入图片描述

  1. 用于存放 MDK 编译过程中生成的 list 临时文件路径,MDK 在创建的时候已经帮我们创建好文件夹Listings,这里无需修改,使用默认即可;
  2. 是否生成*.lst 文件;
  3. 查看 MAP 文件的话,就全勾上;
1.9.3.1 MAP文件

如1.9.3 节所说,将生成MAP文件的配置全勾上后,点ok,然后全编译一遍,双击工程文件夹,即可查看map文件。
其中map中的一些概念如下:

  1. 段(section) :描述映像文件的代码和数据块。
  2. RO: Read-Only 的缩写,包括 RO-data(只读数据)和 RO-code(代码)。
  3. RW:Read-Write 的缩写,主要是 RW-data,RW-data 由程序初始化初始值。
  4. ZI: Zero-initialized 的缩写,主要是 ZI-data,由编译器初始化为 0。
  5. .text:与 RO-code 同义。
  6. .constdata:与 RO-data 同义。
  7. .bss: 与 ZI-data 同义。
  8. .data:与 RW-data 同义

在这里插入图片描述

下面简介map文件中的内容:

  1. Section Cross References:主要是不同文件中函数的调用关系。
    在这里插入图片描述

如:main.o(i.main) refers to main.o(i.PrintfLogo) for PrintfLogo 表示 main.c 文件中的 main函数调用了 PrintfLogo .

  1. Removing Unused input sections from the image:主要是被删除的冗余函数,也就是添加到工程里面,但是没有调用到的那部分。
    在这里插入图片描述

  2. Image Symbol Table:Image Symbol Table 主要分为两类,分别是 Local Symbols 和 Global Symbols .

    • Local Symbols:记录了用 static 声明的全局变量地址和大小,C 文件中函数的地址和用 static 声明的函数代码大小,汇编文件中的标号地址(作用域限本文件)
    • Global Symbols:Global Symbols 记录了全局变量的地址和大小,C 文件中函数的地址及其代码大小,汇编文件中的
      标号地址(作用域全工程)
  3. Memory Map of the image:映像文件可以分为加载域(Load Region)和运行域(Execution Region)。加载域就是程序在 Flash 中的实际存储,而运行域是芯片上电后的运行状态

    • 加载域(Load Region):反映了 ARM 可执行映像文件的各个段存放在存储器中的位置关系。另外映像中的入口点就是程序开始执行的位置。
    • 运行域(Execution Region):反映了 ARM 可执行映像文件各个段真正执行时在存储器中的位置关系。
  4. Image component sizes:显示组件的大小。
    在这里插入图片描述

    • Code (inc. Data) :显示代码占用了多少字节。 在此映像中,有 19442 字节的代码, 其中包括 1832
      字节的内联数据 (inc. data),例如文字池和短字符串。
    • RO Data :显示只读数据占用了多少字节(比如 const char buf[] = “123456”)。这是除 Code (inc. data) 列中包括的内联数据之外的数据。
    • RW Data :显示读写数据占用了多少字节。
    • ZI Data :显示零初始化的数据占用了多少字节。
    • Debug :显示调试数据占用了多少字节,例如,调试输入节以及符号和字符串。
    • Object Totals :显示链接到一起以生成映像的对象占用了多少字节。
    • (incl. Generated):链接器会生成的映像内容,例如,交互操作中间代码。 如果 Object Totals 行包含此类型的数据,则会显示在该行中。本例中共有 1016 字节的 RO 数据,其中 32 字节是链接器生成的 RO 数据。
    • (incl. Padding) :链接器根据需要插入填充,以强制字节对齐。

1.9.4 User

基本用不到,主要用来指定编译之前和编译之后执行的用户程序,如下图中表示在编译之后自动执行一个批处理功能用来实现 Objects 文件夹里面的 hex 文件复制到路径Project\MDK-ARM(uV5)里,方便查找。
在这里插入图片描述

1.9.4.1 生成 .bin文件

再After Build/Rebuild 处勾选一个Run选项,在后面User Command处填入fromelf.exe --bin -o "$L@L.bin" "#L"即可。生成的.bin文件与.hex文件同路径。
在这里插入图片描述

1.9.5 C/C++

在这里插入图片描述

  1. 预定义宏
    USE_HAL_DRIVER 表示使用 HAL 库。
    STM32H743xx 表示使用 H743 系列。
  2. 代码优化级别,优化等级低,方便调试,选项 One ELF Section per Function 用于删除工程中没有用到的冗余函数;

专题:如何做MDK编译器的代码最小优化和性能最佳优化

  1. 使用 C99 规范;
  2. 添加路径,把用到的头文件路径包含进来;

1.9.6 Debug

在这里插入图片描述

  1. 软件仿真;
  2. 硬件仿真,选择仿真调试器;

1.9.7 Utilities

在这里插入图片描述
主要用于编程工具选择,Update Target before Debugging 表示调试前更新芯片的程序。

1.10 仿真/调试模式

  1. 在工程设置里设置好芯片型号和晶振频率(软件仿真)。
    在这里插入图片描述

在这里插入图片描述

  1. 点击魔术棒,在Debug页面选择仿真器仿真(硬件仿真),选择并设置好对应的仿真器。设置好下面的CPU DDL等参数,以设置支持对应芯片的软/硬件仿真。
    在这里插入图片描述

  2. 代码编译通过并连接好仿真器后,点击调试按钮,程序下载并进入调试模式。
    在这里插入图片描述

1.10.1 调试界面

在这里插入图片描述
上图图标自左到右分别为:

  1. Reset:CPU复位,程序回到初始状态
  2. Run:自动运行代码,直到遇到断点后停止
  3. Stop:停止运行代码
  4. Step:单步运行代码
  5. Step Over:单行运行代码
  6. Step Out:运行完当前函数
  7. Run to cursor line:运行到光标处
  8. Show next statement:界面跳到当前运行的代码(不运行代码)

在这里插入图片描述
上图红框图标自左到右分别为:

  1. Disassembly Window:汇编窗口,查看汇编代码。
  2. Call Stack Window:堆栈局部变量窗口,通过该按钮可以显示Call Stack+Locals窗口,显示当前函数的局部变量及其值。
  3. Watch Windows:监控窗口,将特定变量添加到该窗口,对其进行全程监控。
  4. Memory Windows:内存窗口,在里面输入要查看的内存地址或对某变量右击将其添加到该窗口,然后观察这一片内存的变化情况。
  5. Serial Windows:串口串口,类似串口调试助手,用来显示从串口打印出来的内容。
  6. System Analyzer Windows:逻辑分析窗口,有多个功能(如下图),一般使用第一个Logic Analyzer。通过Setup按钮添加IO口,可以观察这些IO口的电平变化情况。

注意:有说法所,要在硬件调试中使用逻辑分析窗口,需要在仿真器设置中使能 Trace Setting (如下图) 。

在这里插入图片描述
在这里插入图片描述
7. System Viewer Windows:系统查看窗口,提供各种外设寄存器的查看窗口(通过下拉选择,如下图),选择对应外设即可调出该外设的相关寄存器表,并显示这些寄存器的值。

在这里插入图片描述

1.10.2 参数监控界面

  • 局部变量监控:该页面可查看当前运行函数的所有局部变量数值,默认以十六进制显示,右击可选择十进制显示。直接点击参数值,还可对其进行修改。
    在这里插入图片描述

  • 监控特定参数值:对某参数右击选择添加其到Watch窗口,即可对改参数进行全程监控。同样,参数值默认以十六进制显示,右击可选择十进制显示。直接点击参数值,还可对其进行修改。
    在这里插入图片描述
    在这里插入图片描述

1.10.3 调试时间监控

  1. 选择使用 仿真器 仿真,点击 Settings 进入设置界面,选择 Trace - Enable,在Core Clock中输入当前使用单片机的工作频率,然后取消勾选 Enable ,一路点击确认退出;
    在这里插入图片描述
    在这里插入图片描述

  2. 进入 debug 进入仿真,如下图,在运行延时500ms函数前时间为7.29319356秒,运行后为7.79319658秒,时间差为0.50000302秒
    在这里插入图片描述

其他方法:单片机测量代码运行时间方法-STM32

1.11 ARM开发工具指南 - help

在这里插入图片描述
在搜索选项处,搜索关于Keil的使用问题,即可得到响应解决方案。
在这里插入图片描述

2. STC-ISP - STC芯片烧录/代码编写工具


软件可在STC官方网站中下载安装。

2.1 hex文件烧录

该软件可把hex文件烧录到STC相关芯片单片机,如果只有hex文件而缺少程序或者程序配置有故障,该软件是很好的选择;

硬件连接

PC —[1]— UART 小板(不是J-Link!) —[2]— 单片机(PCB)

[1]USB线
[2]四脚:3.3V、TMS、TCK、GND
若PC报电流过载之类的警告,改用带供电的 USBHUB 转接可解决

软件配置

选择对应单片机型号、串口号,载入hex文件,确定连接好硬件,然后点击下载程序;

在这里插入图片描述

  • 找到串口号:PC – 设备管理器 – 端口(COM 和 LPT) – USB Serial Port(COMxx)
    其中 COMxx 就是串口号
  • 如果没有出现 USB Serial Port(COMxx) ,那就是串口没有连接成功
  • 若下载过程中出现更新版本之类的错误,可能是接触不良导致,可尝试重新烧录

2.2 向Keil中添加STC51芯片包(Device)

  1. 关闭Keil,打开STC-ISP软件 - 选中Keil仿真设置 - 点击图中按钮
    在这里插入图片描述
  2. 选择Keil的安装目录,点确定
    在这里插入图片描述
  3. 打开Keil,到Device页面,下拉选择STC MCU Database,可见芯片包已完成加载
    在这里插入图片描述

3. SecureCRT - 串口终端仿真软件


ecureCRT6.2.0汉化绿色版

SecureCRT是一款支持SSH和串口的终端仿真程序,启动SecureCRT软件,弹出“快速连接”窗口,协议选择Serial,其他根据需要配置,然后点击连接;
在这里插入图片描述
在这里插入图片描述

3.1 在设备管理器中更改串口号

在这里插入图片描述

4. MProg - EEPROM编程器

4.1 给FT232R芯片烧录串口号

使用串口线连接FT232R芯片,打开软件,新建一个配置文件,配置如下,然后保存配置文件(保存后才能烧录,保存的模板配置文件后缀名为.ept)),点击放大镜搜索串口设备(FT232R),点击闪电按钮烧录串口号;下次烧录同样的串口号,直接打开该模板配置文件即可;

若信息框显示:Number Of Programmed Devices =1,表示找到串口设备;

在这里插入图片描述

5. RS485(Modbus协议)调试软件


PC端须安装串口驱动CH340。
PC通过485转换器与控制单元设备连接。

如下图;

  • 读单个寄存器时,填入相应的485地址(设备地址)、寄存器地址、所读寄存器个数后,点击读取,即可在寄存器值这一栏显示该寄存器地址的值。
  • 写单个寄存器时,填入相应的485地址(设备地址)、寄存器地址、所写寄存器值后,点击发送,即可向设备发送相应指令。
    在这里插入图片描述

6. SEGGER J-Flash ARM - J-Link程序烧录工具

  1. 完成硬件连接。PC - J-Link - 单片机。
  2. 打开.hex程序文件。
    在这里插入图片描述
  3. 配置参数,Options,主要是Target Interface中J-Link连接方式和CPU中芯片内核配置。
    在这里插入图片描述
    在这里插入图片描述
  4. 连接单片机。Target - Connect.
  5. 擦除单片机与烧录程序。Target - Auto.

7. CAD

版本:AutoCAD 2007、ZWCAD 2023专业版


7.1 综合

7.1.1 图层管理

  • AutoCAD 2007:如下图,前面的小灯泡点亮表示显示该图层,反之表示隐藏该图层;
    在这里插入图片描述
  • ZWCAD 2023专业版:格式 - 图层;
    在这里插入图片描述

7.1.2 英制公制转换(单位设置)

工具 - 选项 - 用户系统配置 - 插入比例,将源内容和目标图形内容单位改为目标单位。

7.1.3 对象捕捉

快捷键F3 开启/关闭捕捉功能,右击下图图标可选择捕捉的对象;
在这里插入图片描述

7.2 打印

7.2.1 选中打印

文件 - 打印(Ctrl + P) - 选定打印机 - 打印区域选窗口,点击窗口 - 画选打印区域 - 保存或打印
在这里插入图片描述

7.3 标注(量尺寸)

菜单栏 - 标注 - 选择对应标注功能。(快捷键:DLI)
在这里插入图片描述

8. STM32芯片Hex文件烧录器(脱机)


脱机实物如下图。
在这里插入图片描述

8.1 Hex文件下载到脱机

打开软件DownLoader
在这里插入图片描述
脱机通过USB线连上电脑,软件设备处显示Downloader表示脱机与电脑连接成功,然后选择对应的STM32芯片,打开要下载到脱机的HEX文件,选择好配置参数,点击编程。

注:设置中注意选择擦除全片还是擦除扇区,前者将MCU中原有的所有程序进行擦除,后者将保留MCU中原有的bootloader程序。

在这里插入图片描述

8.2 程序下载到MCU

使用杜邦线连接到MCU下载端口(引脚顺序依次为:3.3V,SWDIO,SWCLK,GND),此时脱机上红灯和蓝灯同时闪烁,点击脱机上的下载按钮,脱机开始下载程序(常亮红灯),程序下载完成后,常亮蓝灯。
在这里插入图片描述

9. CAM350 —— Gerber 软件

9.1 Gerber导出CAD DXF格式文件

  1. 使用CAM350打开Gerber文件,Setting - Unit 设置尺寸到毫米(mm)
  2. File - Export - DXF - 选择保存路径

9.2 修改显示单位

菜单栏 - setting - Unit
在这里插入图片描述

10. PCB特征阻抗计算工具 —— Polar si9000

11. FPGA开发工具——Quartus II


11.1 USB烧录器——USB-Blaser安装

到网上下载USB Blaster drivers压缩包并解压保存,插上USB烧录器,到电脑设备管理器,在“通用串行软件控制器”中找到USB Blaster,右击选择“更新驱动程序”,选择“浏览我的计算机以查找驱动程序软件”,选择USB Blaster drivers存放的路径,安装即可。
在这里插入图片描述

12. 串口调试助手 - SSCOM

12.1 保存窗口参数到本地

在这里插入图片描述

保存路径是SSCOM 所在路径,有.txt 格式

12.2 利用SSCOM 做循环测试Loop

如下图:

  1. 在SSCOM 的"字符串"一栏内输入要发送的指令;
  2. 双击"字符串"空白处可对指令名称/注释进行修改;
  3. 输入指令发送对顺序,0表示不发送;
  4. 设置好指令发送后对延时时间;
  5. 勾选循环发送即可;
    在这里插入图片描述

13. 电子元器件规格书相关


13.1 术语详解

  1. NU:Not Use,实际应用中一般不需要,当某引脚功能需要时,根据实际情况决定其实际参数

如下图是LM5117 的广泛应用图,DEMB引脚中的R12为 NU,即不用该引脚功能时,该电阻不需要,即引脚浮空,使用时根据实际情况,使用0
Ω电阻
在这里插入图片描述

  1. left floating:浮空
  2. oscillation:振荡

13.2 规格书&Demo下载&参考

规格书:

  1. 立创商城

Demo:
2. TI参考设计库

参考:
3. 罗姆半导体 - 电源小课堂

14. 嘉立创EDA

版本:嘉立创EDA 专业版 V1.8.28.355930

使用教程官方页面:https://prodocs.lceda.cn/cn/faq/editor/index.html

14.0 综述

14.0.1 工程添加成员

  1. 在工程处右击选择成员;
    在这里插入图片描述
  2. 添加成员;
    在这里插入图片描述
  3. 编辑该成员的角色;
    在这里插入图片描述

14.1 设计

14.1.1 图纸预设

  • 设计 - 图纸预设:
    在这里插入图片描述

14.2 放置

14.2.1 敷铜

  • 放置 - 敷铜区域:选择敷铜区域,选定敷铜网络;
    在这里插入图片描述

14.2.2 挖槽

  1. PCB 便捷页面,放置 - 挖槽区域;

在如下图地方可选择连接处的线段;
在这里插入图片描述

14.3 编辑

14.3.1 吸附/捕捉

官方教程

  • 顶部菜单 - 编辑 - 吸附
  • 鼠标右键 - 吸附
  • 快捷键Alt + S

14.4 视图

14.4.1 翻转板子

官方教程
在这里插入图片描述

14.5 文件

14.5.1 导入AD 导出的封装库

  1. 以ASCII File 格式另存AD 的PCB 文件;
    在这里插入图片描述
  2. 到立创EDA 导入该文件;
    在这里插入图片描述
  3. 选择提取库文件;
    在这里插入图片描述
    以上,封装库导入完成;
  4. 在原理图中选中一个元器件,在其属性中选择封装;
    在这里插入图片描述
  5. 如下图,绑定封装;
    在这里插入图片描述

14.5.2 导入CAD

目前立创EDA 只支持导入.dxf 格式,.dwg 格式需要经过CAD 转换一下;
在这里插入图片描述

  1. PCB 编辑页面,文件 - 导入 - dxf,导入dxf 文档;
  2. 选择要导入的层和导入到PCB 的哪一层;
    在这里插入图片描述
  3. 最后检查一下导入图档与CAD 的尺寸是否匹配;

15. 汇总常用的各种硬件接口/端口及各个引脚代表的含义

链接

16. 芯片丝印反查

文章参考
芯查查官网

17. 正点原子手持数字示波器DS100

产品官网页面

18. Gitcode

18.1 新建一个代码项目并上传代码

  1. 点击新建项目:
    在这里插入图片描述
  2. 按需填写项目信息和选择项目是否公开;
  3. 新建文件;
    在这里插入图片描述
  4. 点击上传文件,上传代码文件;

在这里插入图片描述

19. 虚拟机 - VMware

安装虚拟机参考:https://blog.csdn.net/weixin_44480178/article/details/127548351…

19.1 下载与安装

  1. 下载vmware:https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html

PJ:https://www.itmemo.cn/html/1204.html#:~:text=v…F

  1. 安装;
    在这里插入图片描述

19.2 安装ubuntu

  1. 到ubuntu 官网下载镜像文件

也可以到阿里巴巴开源镜像站下载:https://developer.aliyun.com/mirror/

  1. 创建一个新的虚拟机,选择典型安装;
    在这里插入图片描述
  2. 选稍后安装操作系统;
    在这里插入图片描述
  3. 如下图;
    在这里插入图片描述
  4. 如下图,推荐创建到C 盘;
    在这里插入图片描述
  5. 按需分配资源,推荐选择“将虚拟磁盘拆分成多个文件”;
    在这里插入图片描述
  6. 创建完成后,点"CD/DVD",加载镜像,然后启动该镜像,在ubuntu 安装过程中按默认安装即可;
    在这里插入图片描述
    在这里插入图片描述

19.3 把VMware 虚拟机从一台电脑复制到另一台电脑

参考:https://blog.csdn.net/zsxy2019/article/details/120859129

19.4 建立主机与虚拟机之间的共享文件夹

  1. 打开虚拟机系统,安装VMware tool;
  2. 虚拟机 - 设置 - 选项 - 共享文件夹 - 启用共享文件夹 - 添加共享文件夹在主机的路径(共享文件夹的名字最好是不含中文);
    在这里插入图片描述
  3. 在虚拟机中挂在共享文件夹…
  4. 打开终端,获取管理员权限sudo su,跳转到共享文件夹路径cd /mnt/hgfs/共享文件夹名,查看共享文件夹内容ls -a

由上面步骤知,共享文件夹在Linux 系统中的路径为/mnt/hgfs/共享文件夹名,其具体可视化文件夹在如下位置可以找到:
在这里插入图片描述
拖动共享文件夹到侧边栏的New bookmarks,即可快捷访问共享文件夹;

在这里插入图片描述
在这里插入图片描述

19.5 给虚拟机扩展磁盘空间

在虚拟机关机情况下,点击:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

19.6 linux 系统连接主机无线接收器(wifi)

  1. 配置网络适配器,使用桥接模式;
    在这里插入图片描述
    在这里插入图片描述
  2. 连接无线网络接收器;
    在这里插入图片描述
  3. 使用wifi;
    在这里插入图片描述

20. 树莓派安装Ubuntu 系统

  1. 硬件准备:
    1. 树莓派(内存最好是4G 以上)
    2. type-c 插头的电源(5V3A以上)
    3. SD卡(16G以上)
    4. micro-HDMI 转HDMI 线
    5. 支持HDMI 输入的显示器;

  1. 下载Ubuntu 树梅派桌面系统镜像:
    清华源:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cdimage/ubuntu/releases/22.04.1/release/
    官方地址:https://cn.ubuntu.com/download/raspberry-pi

在这里插入图片描述

  1. 下载树莓派镜像工具(Raspberry Pi Imager):
    下载地址:https://www.raspberrypi.com/software/,如果是Windows 系统就下载Windows 系统的app,是Linux 的就下载对应app,然后安装;

  2. 打开Raspberry Pi Imager,选择存储卡(SD 卡通过读卡器连接电脑),然后按下图擦除SD 卡;
    在这里插入图片描述
    在这里插入图片描述

  3. 选择已经下载好的镜像系统:
    在这里插入图片描述

  4. 点击设置进入开启SSH服务、配置用户名密码等

  5. 点击开始烧录

21. 百度网盘闲置带宽优化下载速率

以下设置可优化下载速率,代价是开放你家的闲置宽带给baiDu 使用;
在这里插入图片描述

22. FT 串口软件 - FTDI - FT_Prog

支持FT232 芯片串口配置

22.1 烧录串口名

  1. 串口线接入电脑,按F5 扫描出FT232芯片;
  2. 如下图,取消勾选Auto Generate Serial,填入要烧录的串口名;
    在这里插入图片描述
  3. 点击烧录;
    在这里插入图片描述
    在这里插入图片描述

*. 参考&收藏

信号完整性
8位MCU项目例程
TI在线培训网站
电子和电器工程工具
在线仿真网站


TI (德州仪器)官网
罗姆半导体官网
微雪电子官网(电子模块)


标准-流程-模板

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Truffle7电子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值