stm32编译出问题解决

发布者:MysticalEssence最新更新时间:2015-09-14 来源: eefocus关键字:stm32  编译  问题解决 手机看文章 扫描二维码
随时随地手机看文章
.FWlibincstm32f10x_conf.h(33): warning:  #14-D: extra text after expected end of preprocessing directive    额外的文本在在预处理命令后面出现

 #include "stm32f10x_dma.h" */   出问题的地方就是这个 “*/ 

 

 

仿照原子自己建立工程的时候出现的问题修改:

问题及修改:

1)..SYSTEMdelaydelay.c(27): error:  #20: identifier "SysTick_CLKSource_HCLK_Div8" is undefined

解决方法:在delay.c中添加“#include"misc.h"”

2)..SYSTEMsyssys.c(18): error:  #20: identifier "NVIC_PriorityGroup_2" is undefined

解决方法:在sys.c中添加“#include"misc.h"”

3). ..SYSTEMusartusart.c(75): error:  #20: identifier "GPIO_InitTypeDef" is undefined

解决方法:在usart.c中添加“#include”stm32f10x_gpio.h””

4)..SYSTEMusartusart.c(77): error:  #20: identifier "USART_InitTypeDef" is undefined

解决方法:在usart.c中添加“#include"stm32f10x_usart.h"”

5)..SYSTEMusartusart.c(80): error:  #20: identifier "NVIC_InitTypeDef" is undefined

解决方法:在usart.c中添加“#include"misc.h"”

6)..SYSTEMusartusart.c(82): warning:  #223-D: function "RCC_APB2PeriphClockCmd" declared implicitly

解决方法:在usart.c中添加“#include"stm32f10x_rcc.h"”

7)..HARDWARELEDled.c(22): error:  #20: identifier "GPIO_InitTypeDef" is undefined

解决方法:在led.c中添加“#include"stm32f10x_gpio.h"”

8)..HARDWARELEDled.c(25): error:  #20: identifier "RCC_APB2Periph_GPIOA" is undefined

解决方法:在led.c中添加“#include"stm32f10x_rcc.h"” 

 

20150318

..SysTick_LED.axf: Error: L6218E: Undefined symbol uart_init (referred from main.o).

这个错误说的是在main函数中引用了uart_init()函数,但是这个函数没有被定义。

其实这个函数是在uart.c中定义的并且在uart.h中做了声明,uart.h也被包含进了main函数了。

出问题的原因是这样的:uart.c中uart_init()函数是定义在预编译命令对

#if EN_USART1_RX

...............

#endif

中的。而#define EN_USART1_RX      所以,这对预编译命令不被编译,即uart_init()没有被定义。将

#define EN_USART1_RX     改成#define EN_USART1_RX    1就好了。

 

20150321 

编译没有错误,但是串口无法向串口中断打印信息,原因是串口输出要用到相应的GPIO,程序中忘了使能这些IO的时钟,使能一下就好了。

关键字:stm32  编译  问题解决 引用地址:stm32编译出问题解决

上一篇:头文件中定义和声明的问题
下一篇:STM32开发板- I2C--24Cxx

推荐阅读最新更新时间:2024-03-16 14:31

基于STM32的解魔方机器人设计方案
方案设计 采用舵机作为魔方的驱动电机,从舵机的驱动原理可知:舵机运行的速度和的主频没有关系,所以采用和采用更高主频的相比在控制效果上没有什么差别。过程简单,非常容易上手,而且不需要进行的移植,非常适合对魔方机器人的舵机进行控制。 2.复原时间是魔方机器人的一个非常重要,可以说是最为重要的一个参数,本文的软件设计中涉及到了大量的,如 Kocemba 复原算法和 KNN 分类算法等,而控制器主频对于算法运行时间的长短起着决定性的作用。 所以在本文的方案设计中,我们把核心算法全部交给 Allwinner A20 运行的 APP。 设计原理 1、Kociemba算法 Kociemba算法,又称为二阶段
[机器人]
STM32 学习十 Flash下载与调试
一、启动模式 三、FLASH下载与调试 选择调试模式: 1.RAM调试:0x20000000 2.FLASH调试:0x8000000 CM3的Flash烧写次数:1000次 安装Setup_JLinkARM_V408h 连接j-Link-ARM到电脑。我使用虚拟机做开发,这时候需要把USB连接到虚拟机上。 把开发板连接到jLink并上电。 下载操作: 1.新增下载模式 2.设置Options 这里注意与芯片参数要一致。 下载: 下载结束,操作成功。
[单片机]
<font color='red'>STM32</font> 学习十 Flash下载与调试
意法半导体发布远距离无线微控制器,提高智能计量、智能建筑和工业监控的连接能效
新的STM32系统芯片低功耗,支持多种无线通信协议,简化各种用途的无线系统设计 中国,2023年11月24日 - 服务多重电子应用领域、全球排名前列的半导体公司意法半导体(STMicroelectronics,简称ST;) 发布了一款新的融合无线芯片设计专长与高性能、高能效STM32系统架构的微控制器(MCU)。全新的节能功能将这款无线MCU的电池续航时间延长到15年以上。 在远距离部署的应用领域,包括能源计量、监控设备、报警系统、执行器,以及智能建筑、智能工厂和智能城市的传感器,STM32WL3无线MCU的特别有用,有助于控制功耗,并给工作划分优先级。这些高能效MCU可以改善用户体验,提供服务,减少环境足迹。通过
[嵌入式]
意法半导体发布远距离无线微控制器,提高智能计量、智能建筑和工业监控的连接能效
STM32开发 -- 看门狗详解
一、看门狗概述 1、为什么要看门狗 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞。而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog)。 2、看门狗解决的问题是什么 在启动正常运行的时候,系统不能复位。在系统跑飞(程序异常执行)的情况下,系统复位程序重新执行。 明白了,所以就要每过一段时间喂狗,如果超过该时间段还没有进行喂狗程序,将视为程序跑飞,则系统看门狗复位。 二、S
[单片机]
<font color='red'>STM32</font>开发 -- 看门狗详解
STM32的中断优先级和库函数的 开、关总中断
一,中断优先级: STM32(Cortex-M3)中的优先级概念 STM32(Cortex-M3)中有两个优先级的概念——抢占式优先级和响应优先级,有人把响应优先级称作'亚优先级'或'副优先级',每个中断源都需要被指定这两种优先级。 具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套,或者说高抢占式优先级的中断可以嵌套低抢占式优先级的中断。 当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决
[单片机]
STM32HAL库ADC实验(二)——连续采样模式打印电压值
int main(void) { /* USER CODE BEGIN 1 */ uint16_t adcData; float voltage; /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /*
[单片机]
STM32HAL库ADC实验(二)——连续采样模式打印电压值
STM32 ADC 规则多通道转换
看了这个代码之后终于明白了规则多通道转是怎么回事,以及整体如何实现了。附代码: /******************************************************************************* * Function Name : main * Description : Main program * Input : None * Output : None * Return : None *******************************************************************************/ in
[单片机]
STM32为什么需要位带操作呢?
为什么需要位带操作? 因为编程需要操作某个bit位来达到我们想要的功能,比如点灯需要操作GPIOA- ODR 的某个bit假设是第2bit,写1就可以让GPIO输出一个高电平。 GPIOA- ODR |= 1 2; 这样写其实有三个隐含的操作: //1.读取ODR寄存器的值到内存//2.改写第2bit的值//3.再把改写后的值写进ODR寄存器 这样的缺点:效率低 位带操作就是为了解决这个问题,前提是硬件支持这么做。 位操作就是可以单独的对一个比特位读和写,这个在 51 单片机中非常常见。51 单片机中通过关键字 sbit 来实现位定义,STM32没有这样的关键字,而是通过访问位带别名区来实现,例如 sbit LED P1^2LE
[单片机]
<font color='red'>STM32</font>为什么需要位带操作呢?
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved