stm32新手入门遇到的问题

1,在使用FW3.5搭建工程时,由于stm32f10x.h头文件里面包含了LD、MD及HD全系列的芯片,所以,在实际使用过程中,需要首先配置你当前使用的是那一类存储量的芯片。

#35:#error directive:“please...”

问题出在stm32f10x.h的第95行:

#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL)

 #error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"

#endif

 

这个错误,其实在stm32f10x.h第75行有提示:

 

在target option里面的C++选项下的define里面加入USE_STDPERIPH_DRIVER, STM32F10X_HD_VL即可

2.keil编译时报错:error: L6002U: Could not open file .\***\core_cm3.o

网上找图( 我自己也遇到过)

我之前也遇到过这个问题,原因可能是之前我安装过keil4,卸载后有残留的文件在c盘,后面运行keil5的stm32历程时,编译就出现冲突了。我是重装系统,解决的,用的win10系统。
网上找到了比较科学的解释和解决方法: 正如各位大师所分析的那样是库版本引起的冲突,MDK4.7的库已经升级到CMSIS2.X版本以上了,这次的MDK5.X版已经使用的是CMSIS3.X以上,并且最重要的就是很多元件包没有需要自己根据需要安装,我在安装完ST的元件后,手贱又安装了ARM.CMSIS.3.20.3.pack,这个文件会安装到windows的目录中去,于是版本造成的冲突在卸载MDK5.0后,再安装此前的版本却因ARM.CMSIS.3.20.3并没卸载和删除而始终出错.解决办法就是将windows目录中的这个文件找到卸载并完全删除,然后再安装MDK新版,工程用CMSIS2.1版(我现在用的是官网下载的3.02版).安装后按照几位师傅指导重新加载工程,编译通过,下载后程序跑起来了!

 

 

这个是网友的解决办法

如果你是跟着秉火的板子学的他会让你新建个group命名为CMSIS里面存放CORE_M3的文件,最简单的就是直接把这两个从工程中删去然后重新编译就解决了

3.

在建立main函数后,初步编译使出现的另外两个问题:

lphaff.axf:Error:L6218E:Undefined symbol RCC_APB2PeriphResetCmd (referred from stm32f10x_gpio.o).

lphaff.axf:Error:L6218E:Undefined symbol main (referred from rtentry2.o).

原因:

 

如上图1所示,在该程序中实际上使用了stm32f10x_RCC.c里面的函数RCC_APB2PeriphResetCmd函数,却没有在工程里面添加这个源文件。

单片机握手失败的问题:

有些朋友碰到下载的时候提示握手失败,如何解决呢?
解决方法: 请把下载的波特率调成高低都为 4800
如果再不行再调成功 2400:
这样这个问题就解决了。
总结:windows 系统版本不一(有的家庭版、有的旗舰版、有 的正版、有的盗版、有的简化了、
有的不稳定)。出现在问 题各种问题,归纳一下把波特率调低能 100%解决问题

4..\User\core_cm3.h(1569): error: #20: identifier "IRQn_Type" is undefined

出错是因为你当前运行的文件调用到了core_cm3.h,而core_cm3.h文件中包含了有IRQn_Type类型名,但是此类型名是在“stm32f10x.h”中定义的,所以你需要在当前文件包含#include "core_cm3.h"之前先包含#include "stm32f10x.h”

5.关于解决keil编程调试过程中的警告warning: #1295-D: Deprecated declaration KEY_Init - give arg types

..\Inc\led.h(6): warning:  #1295-D: Deprecated declaration KEY_Init - give arg types      以KEY_Init()举例;这个函数在声明时未在小括号中加入  void   空白名,只要加上一个void,即KEY_Init(void)就可以消除此警告。   

6.Keil编译出现的错误:Error: L6218E: Undefined symbol app_uart_put (referred from main.o).

一般几种情况:

  1. c中未定义
  2. h中未引用
  3. 未包含含有该类型的.h文件
  4. 在keil中未添加.c或.h文件到工程

 

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
对于STM32新手入门,以下是一些建议和资源: 1. 首先,了解STM32的基本概念和特点。STM32是一款32位的单片机,具有超低的价格、丰富的型号和外设、优异的实时性和极低的开发成本等优势。它有多个系列和型号,包括主流MCU、高性能MCU和低功耗MCU等\[1\]\[2\]。 2. 学习STM32的开发环境和工具。ST提供了一套完整的开发工具链,包括STM32CubeIDE集成开发环境、STM32CubeMX配置工具和STM32Cube软件包等。这些工具可以帮助你进行代码开发、外设配置和项目管理\[3\]。 3. 学习STM32的编程语言和库。STM32可以使用多种编程语言进行开发,包括C语言和汇编语言。此外,ST还提供了一套简单易用的库开发方式,如STM32Cube HAL库和标准外设库。这些库可以帮助你快速开发应用程序并与外设进行交互\[1\]\[2\]。 4. 学习STM32的硬件设计和电路连接。了解STM32的引脚功能和外设接口,学习如何设计合适的电路连接和外设驱动电路。ST提供了丰富的参考设计和应用笔记,可以帮助你进行硬件设计和电路连接\[1\]\[2\]。 5. 参考官方文档和教程。ST提供了详细的官方文档和教程,包括参考手册、应用笔记、技术文档和视频教程等。这些资源可以帮助你深入了解STM32的各个方面,并提供实际的应用示例和开发指导\[1\]\[2\]\[3\]。 总之,对于STM32新手入门,建议先了解其基本概念和特点,学习开发环境和工具,掌握编程语言和库,学习硬件设计和电路连接,并参考官方文档和教程进行学习和实践。希望这些建议对你有所帮助! #### 引用[.reference_title] - *1* *2* *3* [STM32新手入门教程](https://blog.csdn.net/xiaoshihd/article/details/110039281)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vuko-wxh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值