尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

【STM32F401RCT6工程新建调试】

【STM32F401RCT6工程新建调试】 已经安装好 keil5下载了标准固件库 STM32F4xx_DSP_StdPeriph_Lib_V1.9.0硬件 STM32 的芯片版本是 STM32F401RCT6,作为初学者该如何建立第一个工程文件我们知道V1.9.0 固件库完全支持 F401标准库已经不再更新但作为初学者练手非常合适Keil5 需要提前装好STM32F4 的 Device 支持包STMicroelectronics.STM32F4xx_DFP没有这个包新建工程会找不到芯片一、前期准备Keil5MDK-ARM已安装安装芯片支持包STMicroelectronics.STM32F4xx_DFP版本随便新版就行。首先解压固件库固件库 STM32F4xx_DSP_StdPeriph_Lib_V1.9.0解压至硬盘注意路径不要中文、不要有空格。推荐路径示例D:\STM32Lib\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0在硬盘上新建工程总文件夹单独放自己的工程文件的文件夹比如叫F401_First注意不要直接在固件库文件夹里改路径实例D:\STM32_Project\F401_First该文件夹下再继续手动新建 4 个子文件夹User存放自己写的 main函数、中断等用户代码FWLib存放标准库驱动文件Output编译输出 hex、axf文件List编译清单文件二、拷贝固件库的关键文件到工程目录去解压好的文件夹D:\STM32Lib\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0里面复制文件1. FWLib 文件夹-核心库驱动文件、CMSIS 内核头文件源文件路径D:\STM32Lib\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\STM32F4xx_StdPeriph_Driver,把里面的inc、src 两个文件夹整体复制到工程的FWLib里。源文件路径D:\STM32Lib\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\CMSIS\Include把里面全部.h文件复制到FWLib\inc下。源文件路径D:\STM32Lib\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\CMSIS\ST\STM32F4xx\Include把这两个文件stm32f4xx.h、system_stm32f4xx.h文件复制到FWLib\inc下。2. User文件夹-核心启动文件、系统配置文件源文件路径D:\STM32Lib\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates将system_stm32f4xx.c 复制到User文件夹。源文件路径D:\STM32Lib\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm将startup_stm32f401xc.s 文件【是F401RC 对应的启动文件不要选错】→ 复制到User文件夹。源文件路径Project\Templates\STM32F4xx_StdPeriph_Templates将stm32f4xx_conf.h、stm32f4xx_it.h、stm32f4xx_it.c全部复制到User下在User文件夹新建main.c文件后面写点灯测试代码。3.文件结构最终预览三、Keil5 新建工程1、打开 Keil5 → Project → New μVision Project新建工程文件工程名F401_First保存工程到 D:\STM32_Project\F401_First\User选择芯片依次展开 STMicroelectronics → STM32F4 Series → STM32F401 → STM32F401RC所选 STM32F401RC你的芯片 STM32F401RCT6T 是封装、6 是温度等级内核型号就是 F401RC后面弹出Run Environment Manager运行环境→ 直接点 Cancel后续我们会手动添加文件不用自动添加。四、添加并完善工程文件在 Keil 左侧Project窗口右键点击Target 1 → Manage Project Items新建2个 Groups创建分组的名称与文件夹一致是为了方便管理工程文件2个分组的名称如下1创建User分组选中 User 组 → Add Files进入User文件夹添加以下文件main.c暂时是空的后面会补充代码system_stm32f4xx.cstartup_stm32f401xc.sstm32f4xx_it.c2创建FWLib_Src分组选中 FWLib_Src 组 → Add添加FWLib/src下所有.c文件初学者可以全部添加后期优化再删减五、配置工程参数魔术棒图标Options for Target逐项设置1.Target 选项卡勾选 Use MicroLIB ✅初学者建议勾选支持 printf避免内存相关报错其他默认2.Output 选项卡勾选 Create HEX File下载需要 hex 文件Select Folder for Objects 选择 ..\OutputSelect Folder for Listings 选择 ..\List3.C/C 选项卡Include Paths → 点击... 添加路径相对路径推荐..\User..\FWLib\incPreprocessor Symbols 预定义宏填入STM32F401xC,USE_STDPERIPH_DRIVER此处STM32F401xC告诉库当前芯片型号USE_STDPERIPH_DRIVER启用标准库驱动勾选No Auto Includes阻止 Keil DFP 包自动加载它自带的 stm32f4xx.h防止冲突4. Debug 选项卡根据你的下载器选择ST-Link / J-Link如果是 ST-Link选择ST-Link Debugger再点 Settings确认 SW 调试接口没有硬件可以先选Use Simulator软件仿真先编译跑代码逻辑5. Utilities 选项卡勾选Update Target before Debugging下载前自动编译全部设置完成点击 OK六、编写测试代码LED 点灯第一个程序打开 User 里的main.c粘贴下面代码以 PA0 接 LED 为例可改引脚#include stm32f4xx.hvoid GPIO_LED_Init(void){GPIO_InitTypeDef GPIO_InitStruct;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);GPIO_InitStruct.GPIO_Pin GPIO_Pin_5;GPIO_InitStruct.GPIO_Mode GPIO_Mode_OUT;GPIO_InitStruct.GPIO_OType GPIO_OType_PP;GPIO_InitStruct.GPIO_Speed GPIO_Speed_100MHz;GPIO_InitStruct.GPIO_PuPd GPIO_PuPd_NOPULL;GPIO_Init(GPIOA, GPIO_InitStruct);}void Delay_ms(uint32_t ms){uint32_t i,j;for(i 0; i ms; i)for(j 0; j 20000; j);}int main(void){GPIO_LED_Init();while(1){GPIO_SetBits(GPIOA, GPIO_Pin_5);Delay_ms(500);GPIO_ResetBits(GPIOA, GPIO_Pin_5);Delay_ms(500);}}如果你的 LED 引脚不是 PA0直接修改GPIO_Pin_x和GPIOx即可七、编译工程点击 Keil 的编译按钮Build看 Build Output 窗口0 Error0 Warning ✅ 成功如果报错大概率是头文件路径不对、预定义宏没写、启动文件选错八、下载调试接好 ST-Link硬件连接芯片的 SWDIO、SWCLK、GND、3.3V点击 Download 按钮程序就烧录进 F401RCT6LED 闪烁。✅ 初学者高频踩坑提醒❌ 固件库路径、工程路径不能中文、空格否则头文件找不到❌ 启动文件必须是startup_stm32f401xc.s不要选 F407、F417 的启动文件❌ 预定义宏 STM32F401xC,USE_STDPERIPH_DRIVER 漏写会大量报错❌ 没有安装 STM32F4 的 DFP 芯片包 → 找不到 F401RC 芯片❌ stm32f4xx_conf.h 没有加入工程会报驱动函数未定义
返回列表