#include "stm32f10x.h"
#include "delay.h"
#include "LED.h"
int main(void)
{
extern LED_Init();
delay_init();
while(1)
{
GPIO_SetBits(GPIOB,GPIO_Pin_5);
GPIO_SetBits(GPIOE,GPIO_Pin_5);
delay_ms(500);
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
GPIO_ResetBits(GPIOE,GPIO_Pin_5);
delay_ms(500);
}
}
今天按照视频学习第一个跑马灯库函数实验,为什么我在编译的时候总是提示main.c(8): warning: #223-D: function "LED_Init" declared implicitly呢?
而我在LED_init 前面加上extern 以后再编译警告就消失了, 可是我看视频里LED_Init()前面并没有加extern啊?
求解。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
MDK乱报,此时,可以考虑关闭MDK,重新打开试试。
若是这么做,应该这样:
#include "stm32f10x.h"
#include "delay.h"
#include "LED.h"
int main(void)
{
extern LED_Init();//声明函数
LED_Init();//调用函数
delay_init();
while(1)
{
GPIO_SetBits(GPIOB,GPIO_Pin_5);
GPIO_SetBits(GPIOE,GPIO_Pin_5);
delay_ms(500);
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
GPIO_ResetBits(GPIOE,GPIO_Pin_5);
delay_ms(500);
}
}
或者这样:
#include "stm32f10x.h"
#include "delay.h"
#include "LED.h"
extern LED_Init();//声明函数
int main(void)
{
LED_Init();//调用函数
while(1)
{
GPIO_SetBits(GPIOB,GPIO_Pin_5);
GPIO_SetBits(GPIOE,GPIO_Pin_5);
delay_ms(500);
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
GPIO_ResetBits(GPIOE,GPIO_Pin_5);
delay_ms(500);
}
}
若要像视频那样,应该这样:
在LED.h里面声明这个函数,即添加:
extern LED_Init();//声明函数
在main.c里面就可以这样了:
#include "stm32f10x.h"
#include "delay.h"
#include "LED.h"
int main(void)
{
LED_Init();
delay_init();
while(1)
{
GPIO_SetBits(GPIOB,GPIO_Pin_5);
GPIO_SetBits(GPIOE,GPIO_Pin_5);
delay_ms(500);
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
GPIO_ResetBits(GPIOE,GPIO_Pin_5);
delay_ms(500);
}
}
视频截图,
---------------------------------
这个应该就你的而论。视频的截图说明不了什么,除非你的和视频的完全一样。
---------------------------------
谢谢,视频里是小写的; 我在打的时候实际文件名是大写的,所以引用的时候也写的大写;
一周热门 更多>