首页 » 排名链接 » STM32 学习1 Keil及Vscode协同开发环境搭建(协同搭建开发环境学习)

STM32 学习1 Keil及Vscode协同开发环境搭建(协同搭建开发环境学习)

雨夜梧桐 2024-10-24 05:22:58 0

扫一扫用手机浏览

文章目录 [+]

ARM11以后,命名改为Cortext系列。

2.Cortex架构:Cortex-A:高性能应用处理器,如Symbian、Linux、WinCE、WindowsMobile。
Cortex-R:专门针对实时、深度嵌入式解决方案,如高档轿车、军事国防应用。
Cortex-M:专注于低成本嵌入式微控制器,相对低端。
Cortex-M0:针对FPGACortex-M1:替代低成本MCUCortex-M3:占领高性能MCU市场Cortex-M4:主要针对数字信号处理3.Cortex-M3:高性能:哈佛结构+分支预算高集成度:高代码密度:Thumb2指令集内嵌NVIC中断低成本。

Cortex-M3的产品:

STM32系列:意法半导体Stellatirs系列:LPC1000系列:AT91SAM3系列:Atmel4.STM32:STM32F103增加型系列:32位STM32F101基本型系列:32位

STM32 学习1 Keil及Vscode协同开发环境搭建(协同搭建开发环境学习) 排名链接
(图片来自网络侵删)
5.STM32命名:

6.本文芯片:

本系列使用开发板是 普中 STM32-F1 , 芯片是STM32 F103ZET6。

7.STM32程序开发的模式

STM32有三种开发模式:

基于寄存器开发基于ST公司的库函数开发基于嵌入式操作系统开发二、keil 开发环境搭建1.安装Keil uVision5(MDK500)

打开安装包,按提示操作:

安装完成,等待下载芯片信息:

2.创建Project

选择菜单Project-New Project,输入study1

下面的选项钩选:CMSIS-CORE和 Device-Startup

点OK。

设置 Listings和 Output目录:

3.新增study1.c

int main(){ ;}

点编译按钮:

4.问题处理1. 缺少环境变量

.\output\study.axf: Error: L6411E: No compatible library exists with a definition of startup symbol __main.

处理方式:

建立环境变量:ARMCC5LIB 指向: C:\Keil\ARM\ARMCC\lib

2. 找不到SystemInit

在使用MDK编译工程时出现了如下错误,test.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f10x_hd.o).`定义一个空函数: SystemInit

void SystemInit(){}

3. 找不到 core_cm3.h

找到本机的 Arm/Packs/ARM/CMSIS/版本号/CMSIS/Include,手工加入到C++的Include Paths里。

三、仿真器安装

仿真器是免驱的,但我在虚拟机中插上需要重启虚拟机才行。

插上后在设置界面的Debug 可以找到仿真器。

四、建立 STM32 工程模板1. STM32 的固件库

STM32的固件库中包含标准外设驱动、实例等,ST公司在2007年10月发布了V1.0版本。

下载地址:

https://www.st.com/zh/embedded-software/stsw-stm32054.html

这里下载固件库3.6版,文件夹命名一般这样的:STM32F10x_StdPeriph_Lib_V3.6.0

库文件目录结构如下:

_htmresc:ST公司的图标之类,不用管Libraries:驱动库的源代码与启动文件CMSIS:Cortex-M3内核自带的外设驱动代码和启动代码CM3 核心文件夹CoreSupport,即Cortex-M3内核自带外设的驱动程序core_cm3.ccore_cm3.hDeviceSupportSTSTM32F10xstartup:不同开发环境的启动代码文件夹arm:对应keil开发环境,均为汇编文件,内部多个文件分别对应不同的Flash容量startup_stm32f10...sgcc_ride7iarTrueSTUDIORelease_Notes.htmlstm32f10x.hsystem_stm32f10x.csystem_stm32f10x.hDocumentation 一些文档CMSIS debug support.htmlCMSIS_changes.htmLicense.docSTM32F10x_StdPeriph_Driver:芯片制造商在Cortex-M3内核上外加的外设驱动inc:include文件stm32f10x_adc.h 不同外设的头文件……src:源代码 ,上inc对应Release_Notes.htmlProjects:驱动实例和工程模板STM32F10x_StdPeriph_Template工程模板main.cstm32f10x_conf.hstm32f10x_it.cstm32f10x_it.hUtilities:ST开发板相关例程Release_Notes.htmlstm32f10x_stdperiphlib_um.chm 帮助系统2. 拷贝文件

典型的工程模板包含以下文件和文件夹:

Libraries:固件库里的同名文件夹,放外设驱动及启动代码。
Output:编译输出文件夹Project:用户开发的程序源代码,一般包含下面内容:工程文件main.c:本文件及下面3个文件可以从工程模板拷贝过来stm32f10x_conf.h:外设头文件配置文件stm32f10x_it.c:中断函数源文件(涉及中断时使用)stm32f10x_it.h:中断函数头文件readme.txt

这里实现一个简单的模板框架,使用如下几个文件:

放置文件夹结构:

3. 改分组文件夹

如下图操作:

4. Keil 环境必要的配置

配置要点:

Target页面下的外部时钟,这里设置为8.0MHz

Output页面下,钩选Create HEX FileC/C++页面下,设置Include Paths

Debug选择自己使用的仿真器

设置如下:

5. 源程序示例

/ 普中科技-------------------------------------------------------------------------------- 实 验 名 : 使用寄存器点亮一个LED 实验说明 : 操作寄存器控制D1指示灯闪烁 连接方式 : 注 意 : / #include "stm32f10x.h" typedef unsigned int u32; //类型重定义 unsigned int -- u32 void SystemInit(){} / 函 数 名 : delay 函数功能 : 延时函数,通过while循环占用CPU,达到延时功能 输 入 : i 输 出 : 无/void delay(u32 i){while(i--);} / 函 数 名 : main 函数功能 : 主函数 输 入 : 无 输 出 : 无/int main(){RCC_APB2ENR |= 1<<4;GPIOC_CRL &= ~( 0x0F<< (40));GPIOC_CRL |= (3<<40);GPIOC_BSRR=(1<<(16+0));while(1){GPIOC_BSRR=(1<<(16+0));delay(0xFFFFF);GPIOC_BSRR=(1<<(0));delay(0xFFFFF);}}

6. 仿真

7. 查看 GPIOA 寄存器值

设置断点,运行到断点后可以在:Peripherals-System Viewer-GPIO 选择GPIOA查看值:

五、配置 vscode 开发环境

安装vscode过程忽略。

1. 安装扩展c/c++ 扩展C/C++ Extension PackKeil Assistant

2. 设置 Keil Assistant

3. 下载 mingw

MinGW - Minimalist GNU for Windows download | SourceForge.net

点击下载,安装软件包,等待下载完成。

点击Continue.

4. 配置mingw

钩选:

点击: Installation->Apply change

点击 Apply->安装。

5. 配置环境变量

把 MinGW\bin 加到系统变量的Path里。

6. Vscode打开和编译 keil 项目

使用open proejct 打开keil的工程,在左侧找到 KEIL UVISION PROJECT。

鼠标移到 Target 1上,会出现编译、下载图标。

如果提示安装 .Net framework,按提示安装。

目前这个环境只能使用vscode实现开发、编译、下载,并不能进行单步调试。
后续章节再补充此操作。

标签:

相关文章