keil 使用问题总结

在使用STM32F105RB芯片时遇到编译错误,原因是宏定义冲突,已定义为STM32F10X_CL。删除STM32F10X_HD并只保留USE_STDPERIPH_DRIVER即可修复。另外,Keil烧录失败是由于ST-Link连接问题,检查并重新连接ST-Link线缆后,烧录恢复正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 编译报错

1.1 …\USER\stm32f10x.h(428): error: #67: expected a “}”

ADC1_2_IRQn                 = 18,     /*!< ADC1 and ADC2 global Interrupt                       */
*** Using Compiler 'V5.06 update 4 (build 422)', folder: 'D:\keil_v537\install\ARM\ARMCC\Bin'
Build target 'FreeRTOS'
compiling main.c...
..\USER\stm32f10x.h(428): error:  #67: expected a "}"
    ADC1_2_IRQn                 = 18,     /*!< ADC1 and ADC2 global Interrupt                       */
..\USER\stm32f10x.h(472): warning:  #12-D: parsing restarts here after previous syntax error
  } IRQn_Type;
main.c: 1 warning, 1 error

在这里插入图片描述

1.2 找到报错行 stm32f10x.h(428)

一开始以为是代码的错误,后来才发现不是,选STM32F105RB芯片的时候,系统已经默认了define为STM32F10X_CL
在这里插入图片描述

1.3 选择芯片

在这里插入图片描述

1.4 宏定义重复了,中间用逗号 “,” 隔开的

在这里插入图片描述

1.5 修改宏定义,删除STM32F10X_HD 就可以了,这里的define只需填写 USE_STDPERIPH_DRIVER 就可以了,因为当你选择105的时候,系统已经默认了define为STM32F10X_CL,所以这里无需填写其他的。

在这里插入图片描述


========================================== 分割线 =================================================

2. Error: Flash Download failed - Target DLL has been cancelled

2.1 keil 烧录不进程序,一直烧烧不进,提示错误信息

在这里插入图片描述


================================= 分割线 =========================================
在这里插入图片描述


================================= 分割线 =========================================

在这里插入图片描述

2.2 打开keil 魔术棒,发现ST-Link 烧录器没连接上

在这里插入图片描述

2.3 由于同事老是拔我的板子,重新接线的时候接错线了,把ST-Link的线重新接一下就OK了

在这里插入图片描述
================================= 分割线 =========================================
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值