stm32常见错误与工程模板

发布者:Tapir最新更新时间:2024-10-16 来源: cnblogs关键字:stm32  常见错误  工程模板 手机看文章 扫描二维码
随时随地手机看文章

1.新建工程的时候编译出现如下错误(MDK4.12  使用v3.4的库)

..CMSISstm32f10x.h(80): error:  #35: #error directive: 'Please select first the target STM32F10x device used in your application (in stm32f10x.h file)'

解决方法:双击错误进入出错的地方,在stm32f10x.h处

  1. #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)

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

  3. #endif

这时需要设置预处理编译符号:由于自己使用的是红牛开发板,所用芯片为STM32F103ZET6,故添加STM32F10X_HD符号,如下图:

设置完成之后重新编译出现新的问题:

..StdPeriph_Libsrcmisc.c(98): warning:  #223-D: function 'assert_param' declared implicitly

......

......

.ObjProLed.axf: Error: L6218E: Undefined symbol assert_param (referred from misc.o).

需要添加一个新的预处理符号:USE_STDPERIPH_DRIVER,与之前的STM32F10X_HD符号用一个空格隔开。

附上一个自己新作的模板:

固件库:v3.4

软件版本:RealView MDK 4.12


关键字:stm32  常见错误  工程模板 引用地址:stm32常见错误与工程模板

上一篇:STM32型号参考
下一篇:STM32启动流程

推荐阅读最新更新时间:2024-11-07 11:02

stm32 IO重映射
图片内容来自《电子系统设计与实战 stm32+FPGA控制版》 下面调用GPIO_PinRemapConfig(GPIO_Remap_SPI1,ENABLE);直接就把SPI1的所有IO换成了映射IO。
[单片机]
<font color='red'>stm32</font> IO重映射
STM32时钟小结
众所周知STM32有5个时钟源HSI、HSE、LSI、LSE、PLL,其实他只有四个,因为从上图中可以看到PLL都是由HSI或HSE提供的。 其中,高速时钟(HSE和HSI)提供给芯片主体的主时钟.低速时钟(LSE和LSI)只是提供给芯片中的RTC(实时时钟)及独立看门狗使用,图中可以看出高速时钟也可以提供给RTC。内部时钟是在芯片内部RC振荡器产生的,起振较快,所以时钟在芯片刚上电的时候,默认使用内部高速时钟。而外部时钟信号是由外部的晶振输入的,在精度和稳定性上都有很大优势,所以上电之后我们再通过软件配置,转而采用外部时钟信号. 高速外部时钟(HSE):以外部晶振作时钟源,晶振频率可取范围为4~16MHz,我们一般采
[单片机]
<font color='red'>STM32</font>时钟小结
STM32的BOOT0和BOOT1设置
BOOT0和BOOT1 设置 STM32三种启动模式对应的存储介质均是芯片内置的,它们是: 1. 用户闪存=芯片内置的Flash。 2. SRAM=芯片内置的RAM区,就是内存啦。 3. 系统存储器=芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROROMM区。 在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,见下: BOOT1=xBOOT0=0从用户闪存启动,这是正常的工作模式。 BOOT1=0BOOT0=1从系统存储器
[单片机]
STM32入门学习之USART中断(STM32F030F4P6基于CooCox IDE)
#include stm32f0xx.h #include stm32_lib/inc/stm32f0xx_rcc.h #include stm32_lib/inc/stm32f0xx_gpio.h #include stm32_lib/inc/stm32f0xx_usart.h #include stm32_lib/inc/stm32f0xx_misc.h #include delay.h int main(void) { //1、使能时钟 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2
[单片机]
STM32:STM32学习记录4:串口
配置流程: 1:系统时钟初始化,包括系统时钟和要开放的IO口和串口的时钟配置,要打开串口的时钟!!! RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE);。 2:IO口初始化,包括引脚,速率,输入输出模式等。 3:配置USART的波特率,数据位等。 4:串口的初始化包括两部分。一部分是串口使用的IO口初始化调用GPIO_Init(),另一部分是串口功能的初始化调用USART_Init(),同样注意结构体数据类型的定义。 注意: 1:USART的IO口也需要配置 配置流程如下: //USART1 IO初始化
[单片机]
关于STM32的IAP与APP互相跳转
之前做了一个不带系统的IAP与APP互相跳转,在网上找了资料后,很顺畅就完成了,后来在IAR集成开发环境下,IAP无系统,APP用UCOS系统做互相跳转出现了很多问题。现将IAP学习过程和实际遇到问题总结一下。 首先说一下什么是IAP。IAP(In Application Programming)即在应用编程,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。通常实现IAP功能时,即用户程序运行中作自身的更新操作,需要在设计固件程序时编写两个项目代码,第一个项目程序不执行正常的功能操作,而只是通过某种通信方式(如USB、USA
[单片机]
关于<font color='red'>STM32</font>的IAP与APP互相跳转
007_STM32程序移植之_多通道ADC转换
1. 测试环境:STM32C8T6 2. 测试:使用DMA进行多通道ADC转换 3. 描述:用 ADC 连续采集 12 路模拟信号,并由 DMA 传输到内存。ADC 配置为扫描 并且连续转换模式,ADC 的时钟配置为 12MHZ。在每次转换结束后,由 DMA 循环将转换的数据传输到内存中。ADC 可以连续采集 N 次求平均值。最后 通过串口传输出最后转换的结果。 4. 测试引脚:
[单片机]
007_STM32程序移植之_多通道ADC转换
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved