参考:https://blog.csdn.net/ChenGuiGan/article/details/80218875
pj software
安装时的几个注意事项:
- 安装路径要是全英文
- 多个Keil 版本(如MDK、C51) 不要安装在同一个路径上
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中点击File - Import进行包导入;
安装完成后,返回keil5 MDK中的device页面查看是否安装成功;
这里提供STM32H7系列的 Pack包,如果网络不佳的伙伴可以借道获取:Keil STM32H7系列芯片Pack 包
参考:使用MDK5创建Cortex-M应用指南-中文版
详见开发指南:新建基于固件库的 RVMDK 工程模板
一节。
在工程目录下面,新建 3 个文件夹 CORE, OBJ、STM32F10x_FWLib. 其中:
将官方的固件库包里的源码文件复制到工程目录文件夹下面。打开官方固件库包,定位到之前准备好的固件库包的目录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。
注:对于工程代码,如果只用到了其中的某个外设,可以不用添加没有用到的外设的库文件。比如只用 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 的对话框,然后我们将头文件目录添加进去。
注:如果用的是中容量芯片那么 STM32F10X_HD 修改为 STM32F10X_MD,小容量修改为 STM32F10X_LD.
工程文件夹内的内容可参考下图创建,其中User-bsp文件夹中是开发板各个外设的驱动,segger文件夹是硬件异常分析代码。
打开MDK,选择 Project ->New uVision Project-选择工程路径-填写工程名-保存。
选择芯片
设置工程名和工程分组:Project-Manage-Project Items
创建工程分组
其中最左边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,主要用于硬件异常分析。
Edit --> Configuration --> Other
安装微软雅黑混合字体,字体效果很棒,解决显示中文的BUG
Edit --> Configuration --> Editor --> 选择简体中文
在Colors & Fonts中可选择对应的字体。
Edit --> Configuration --> Text Completion --> 勾选 Symbols after 3 characters
注意:需要在工程(Project)中才能实现代码补全功能,要对工程先编译一遍;
Edit --> Configuration --> color&fonts —> 左边Windows 中选择C/C++ Editor files 一项 --> 右边Element 中选择Text --> 再右边选择background --> 将除 Matching Braces 和 Incomplete String 以外的色调设置为84 饱和度设置为91 亮度为205;
Edit - Configuration - Editor - Encoding,选择Chinese GB2312
图2中
SW Devices
需要Jlink连接单片机方可搜索得到
JLINK固件,JLINK驱动和JLINK硬件版本之间的关系,以及固件升级方法
JLINK 无法下载解决思路以及常见问题整理
对于新型芯片,务必使用JLINK V9、V10;
登录SEGGER官网JLINK驱动下载页面下载最新JLINK驱动并进行安装;
安装完成后,插上JLINK并打开电脑的设备管理器,查看电脑端是否能识别出JLINK,若JLINK灯一直闪,表示驱动没有安装成功,若不闪表示安装成功;
CH340/CH341的USB转串口WINDOWS驱动程序的安装包,支持32/64位 Windows 10/8.1/8/7
安装成功后,插上RS232转USB线到电脑并打开电脑的设备管理器,查看电脑端是否能识别出来;
芯片被锁的现象是下载器/仿真器搜索不到芯片,程序不能正常烧录到MCU中:
解决方法:单片机上电,按住MCU的复位按钮,在Keil中点击程序下载按钮,弹出下面提示框提示说检测到被读/写保护的芯片,点No,然后松开复位按钮
对于一些开发板附送的例程,在烧录后会导致其他程序不能继续烧录到单片机中(异常如上图所述),这时只需重新解压例程,在 Utilities 中选择Jlink 作为烧录器,
选择Jlink 烧录器,点击setting 进入
然后会弹出以下选项,点ok
搜索你的单片机型号,点ok即可
此时单片机即可与Jlink 通信成功
安装JLink 驱动后, 在左下角windows 图标找到 SEGGER - J-Flash ARM 软件打开
电脑连接上JLink 和MCU 芯片,点击Target - Connect,连接电脑与MCU
点击File - Open data file,加载需要烧录的烧录文件(如 .hex 格式文件)后,会弹出一个解析烧录文件的窗口
点击Target - Program 将烧录软件烧录到MCU,直到弹出以下窗口表示烧录成功
.bin
文件生成如下图,进入设置;
选中User
选项卡,如下图输入代码,点ok,重新编译即可生成.bin
文件
fromelf.exe --bin -o "$L@L.bin" "#L"
配置程序的ROM起始地址和占用ROM的大小,这个地址将会在程序擦除和下载时被参考到;这个IROM1也叫做中断向量表的起始地址。如果程序在 Flash 运行,则中断向量表的默认起始地址是 0x08000000
,此时需要将其改为程序的起始地址,如0x8005000
.
2.在代码初始化处添加程序对应的ROM起始地址,其应与步骤1中设置的程序起始地址一致: NVIC_SetVectorTable(NVIC_VectTab_FLASH,(0x08005000));
包括其他程序烧录(如脱机烧录器)在配置时也需要选择擦除扇区来更新代码,在需要填写擦除扇区的起始地址时,填入程序的起始地址,如0x8005000 .
一般在 1.5.4 添加芯片包Device Pack 节中,下载并安装对应的芯片支持包后,在Keil MDK 中会自动加载出芯片对应的flash 文件。
如果不行,可以在网上把flash 文件放到文件目录:keil安装路径/ARM/Flash
,以.flm
后缀结尾的文件即为 flash 算法文件;
Edit --> Configuration --> Editor
如
u8
定义的变量为8位无符号整型unsign char
,最大值为255,负值超出255则报警告;
main函数花括号最一行没加回车
若在退出调试Debug 时,遇到如下报错并卡死:
解决方法:
TODO :
- 为什么KEIL编译按钮是灰色的
- 如何在keil官网下载想要的固件pack
Project-Option for Target
如1.9.3 节所说,将生成MAP文件的配置全勾上后,点ok,然后全编译一遍,双击工程文件夹,即可查看map文件。
其中map中的一些概念如下:
下面简介map文件中的内容:
如:
main.o(i.main) refers to main.o(i.PrintfLogo) for PrintfLogo
表示 main.c 文件中的 main函数调用了 PrintfLogo .
Removing Unused input sections from the image:主要是被删除的冗余函数,也就是添加到工程里面,但是没有调用到的那部分。
Image Symbol Table:Image Symbol Table 主要分为两类,分别是 Local Symbols 和 Global Symbols .
Memory Map of the image:映像文件可以分为加载域(Load Region)和运行域(Execution Region)。加载域就是程序在 Flash 中的实际存储,而运行域是芯片上电后的运行状态
Image component sizes:显示组件的大小。
基本用不到,主要用来指定编译之前和编译之后执行的用户程序,如下图中表示在编译之后自动执行一个批处理功能用来实现 Objects 文件夹里面的 hex 文件复制到路径Project\MDK-ARM(uV5)里,方便查找。
.bin
文件再After Build/Rebuild 处勾选一个Run选项,在后面User Command处填入fromelf.exe --bin -o "[email protected]" "#L"
即可。生成的.bin
文件与.hex
文件同路径。
专题:如何做MDK编译器的代码最小优化和性能最佳优化
主要用于编程工具选择,Update Target before Debugging 表示调试前更新芯片的程序。
上图图标自左到右分别为:
注意:有说法所,要在硬件调试中使用逻辑分析窗口,需要在仿真器设置中使能 Trace Setting (如下图) 。
7. System Viewer Windows:系统查看窗口,提供各种外设寄存器的查看窗口(通过下拉选择,如下图),选择对应外设即可调出该外设的相关寄存器表,并显示这些寄存器的值。
局部变量监控:该页面可查看当前运行函数的所有局部变量数值,默认以十六进制显示,右击可选择十进制显示。直接点击参数值,还可对其进行修改。
监控特定参数值:对某参数右击选择添加其到Watch窗口,即可对改参数进行全程监控。同样,参数值默认以十六进制显示,右击可选择十进制显示。直接点击参数值,还可对其进行修改。
选择使用 仿真器 仿真,点击 Settings 进入设置界面,选择 Trace - Enable,在Core Clock中输入当前使用单片机的工作频率,然后取消勾选 Enable ,一路点击确认退出;
进入 debug 进入仿真,如下图,在运行延时500ms函数前时间为7.29319356秒,运行后为7.79319658秒,时间差为0.50000302秒
其他方法:单片机测量代码运行时间方法-STM32
在搜索选项处,搜索关于Keil的使用问题,即可得到响应解决方案。
软件可在STC官方网站中下载安装。
该软件可把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)
,那就是串口没有连接成功- 若下载过程中出现更新版本之类的错误,可能是接触不良导致,可尝试重新烧录
ecureCRT6.2.0汉化绿色版
SecureCRT是一款支持SSH和串口的终端仿真程序,启动SecureCRT软件,弹出“快速连接”窗口,协议选择Serial,其他根据需要配置,然后点击连接;
使用串口线连接FT232R芯片,打开软件,新建一个配置文件,配置如下,然后保存配置文件(保存后才能烧录,保存的模板配置文件后缀名为.ept
)),点击放大镜搜索串口设备(FT232R),点击闪电按钮烧录串口号;下次烧录同样的串口号,直接打开该模板配置文件即可;
若信息框显示:Number Of Programmed Devices =1,表示找到串口设备;
PC端须安装串口驱动CH340。
PC通过485转换器与控制单元设备连接。
如下图;
.hex
程序文件。版本:AutoCAD 2007、ZWCAD 2023专业版
工具 - 选项 - 用户系统配置 - 插入比例,将源内容和目标图形内容单位改为目标单位。
快捷键F3
开启/关闭捕捉功能,右击下图图标可选择捕捉的对象;
文件 - 打印(Ctrl + P) - 选定打印机 - 打印区域选窗口,点击窗口 - 画选打印区域 - 保存或打印
打开软件DownLoader
脱机通过USB线连上电脑,软件设备处显示Downloader表示脱机与电脑连接成功,然后选择对应的STM32芯片,打开要下载到脱机的HEX文件,选择好配置参数,点击编程。
注:设置中注意选择
擦除全片
还是擦除扇区
,前者将MCU中原有的所有程序进行擦除,后者将保留MCU中原有的bootloader程序。
使用杜邦线连接到MCU下载端口(引脚顺序依次为:3.3V,SWDIO,SWCLK,GND),此时脱机上红灯和蓝灯同时闪烁,点击脱机上的下载按钮,脱机开始下载程序(常亮红灯),程序下载完成后,常亮蓝灯。
到网上下载USB Blaster drivers
压缩包并解压保存,插上USB烧录器,到电脑设备管理器,在“通用串行软件控制器”中找到USB Blaster,右击选择“更新驱动程序”,选择“浏览我的计算机以查找驱动程序软件”,选择USB Blaster drivers
存放的路径,安装即可。
保存路径是SSCOM 所在路径,有.txt
格式
如下图:
如下图是LM5117 的广泛应用图,DEMB引脚中的R12为 NU,即不用该引脚功能时,该电阻不需要,即引脚浮空,使用时根据实际情况,使用0
Ω电阻
规格书:
Demo:
2. TI参考设计库
参考:
3. 罗姆半导体 - 电源小课堂
版本:嘉立创EDA 专业版 V1.8.28.355930
使用教程官方页面:https://prodocs.lceda.cn/cn/faq/editor/index.html
官方教程
链接
文章参考
芯查查官网
产品官网页面
安装虚拟机参考:https://blog.csdn.net/weixin_44480178/article/details/127548351…
PJ:https://www.itmemo.cn/html/1204.html#:~:text=v…F
也可以到阿里巴巴开源镜像站下载:https://developer.aliyun.com/mirror/
参考:https://blog.csdn.net/zsxy2019/article/details/120859129
sudo su
,跳转到共享文件夹路径cd /mnt/hgfs/共享文件夹名
,查看共享文件夹内容ls -a
;由上面步骤知,共享文件夹在Linux 系统中的路径为/mnt/hgfs/共享文件夹名
,其具体可视化文件夹在如下位置可以找到:
拖动共享文件夹到侧边栏的New bookmarks,即可快捷访问共享文件夹;
下载树莓派镜像工具(Raspberry Pi Imager):
下载地址:https://www.raspberrypi.com/software/,如果是Windows 系统就下载Windows 系统的app,是Linux 的就下载对应app,然后安装;
点击设置进入开启SSH服务、配置用户名密码等
点击开始烧录
信号完整性
8位MCU项目例程
TI在线培训网站
电子和电器工程工具
在线仿真网站
TI (德州仪器)官网
罗姆半导体官网