[STM32 学习] Keil工程配置及问题解决 - DAP仿真器


前言

今天是开始STM32的再学习的第一篇记录 主要侧重的点在: (1)BSP 片上的,片外的 (2)FreeRTOS (3)数字信号处理


1. 使用软硬件平台说明

(1) 硬件平台 MCU: STM32F103C8T6 仿真器:CMSIS-DAP (2) 软件平台 Keil uVision5 Source Insight

2. Keil工程配置

选择Options for Target ** ,即下图所示“魔术棒”。 这里我将我的配置逐一贴出:

1.1 Device

Device选择自己的芯片型号,这里我使用STM32F103C8。如果该部分没有的小伙伴需要安装相应的DFP(获取方式ST官网)。

1.2 Target

注意勾选Use MicroLIB 这样以后可以使用printf函数。

1.3 Output

勾选Create HEX File 以生成Hex文件。 同时勾选Browse Information 可以加快编译速度,但是会使得函数和宏的定位无效。不过后期使用Source Insight修改代码,问题不大。

1.4 C/C++

全局的宏定义,这里我是用的是ST的标准库,所以加入如下的宏。一个是使用外设,这个应该都一样。一个是根据使用的芯片情况选择特定的宏,因为STM32F103C8T6是中密度型的产品,所以使用 STM32F10X_MD 。当然你可以在芯片的手册里查看自己用的属于什么类。在stm32f10x.h中可以找到相应的宏名。

图中标记的字符串如下:

USE_STDPERIPH_DRIVER,STM32F10X_MD


-c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections --asm --interleave --asm_dir ".\Flash\List\" -I ../../Libraries/CMSIS/Device/ST/STM32F10x/Include -I

1.5 Debug

选择使用仿真器,选择CMSIS-DAP 点击旁边的settings进一步设置 这里使用SWD模式,在SW Device窗口可以看到我的MCU已经被识别。 点击Flash Download选择Flash的文件,这里遵循的原则还是MCU的密度属性。 ok,工程大体上设置完毕了。


2. 更换启动文件

这一点要注意,工程中的启动文件要相适合,这里我使用startup_stm32f10x_md.s


3. 下载代码以及遇到的问题

按照刚才的配置下载代码,出现报错

Error :FlashDowneload faild - “Cortex-M3”

在查找过后发现因为使用的是DAP,所以需要注意一个配置: 原因可以在keil的手册里找到 执行软件复位。 重置Cortex-M内核和片上外设


总结

主要是解决了以前没遇到的复位问题。

经验分享 程序员 微信小程序 职场和发展