关于stm32 的问题 其实就是程序的问题

#include"stm32f10x.h"ErrorStatusHSEStartUpStatus;voidDelay(vu8nCount);voidTURN_ON_LED... #include "stm32f10x.h"
ErrorStatus HSEStartUpStatus;
void Delay(vu8 nCount);
void TURN_ON_LED(u8 LED_NUM);
int main()
{
...

...

...
TURN_ON_LED(u8 LED_NUM);
Delay(0xFFFFF);
}

void Delay(vu32 nCount)
{
for(;nCount!=0;nCount--);
}

void TURN_ON_LED(u8 LED_NUM){
switch (LED_NUM){
case 0:
GPIO_ResetBits(GPIOA,GPIO_Pin_3);
GPIO_ResetBits(GPIOB,GPIO_Pin_2);
break;
case 1:
GPIO_ResetBits(GPIOB,GPIO_Pin_2);
GPIO_ResetBits(GPIOA,GPIO_Pin_2);
break;
case 2:
GPIO_ResetBits(GPIOA,GPIO_Pin_2);
GPIO_ResetBits(GPIOA,GPIO_Pin_3);
break;

default:
GPIO_ResetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_3);
GPIO_ResetBits(GPIOB,GPIO_Pin_2);
}
}

这段程序编译后有错误
..\main.(56): error: #159: declaration is incompatible with previous "Delay" (declared at line 51)

但是换成下边的就没错误了 为什么?
#include "stm32f10x.h"
ErrorStatus HSEStartUpStatus;
//void Delay(vu8 nCount);
void Delay(vu32 nCount)
{
for(;nCount!=0;nCount--);
}
void TURN_ON_LED(u8 LED_NUM);
int main()
{
...

...

...
TURN_ON_LED(u8 LED_NUM);
Delay(0xFFFFF);
}

void TURN_ON_LED(u8 LED_NUM){
switch (LED_NUM){
case 0:
GPIO_ResetBits(GPIOA,GPIO_Pin_3);
GPIO_ResetBits(GPIOB,GPIO_Pin_2);
break;
case 1:
GPIO_ResetBits(GPIOB,GPIO_Pin_2);
GPIO_ResetBits(GPIOA,GPIO_Pin_2);
break;
case 2:
GPIO_ResetBits(GPIOA,GPIO_Pin_2);
GPIO_ResetBits(GPIOA,GPIO_Pin_3);
break;

default:
GPIO_ResetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_3);
GPIO_ResetBits(GPIOB,GPIO_Pin_2);
}
}
展开
 我来答
百度网友cc57fb5
推荐于2018-02-28 · 超过19用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:40.7万
展开全部
就是说,你的函数声明写在了调用之后。这句话是说,你在51行调用了该函数,但是函数的定义却在159行。程序误把你的函数定义当做函数调用了,而把函数调用当做了函数声明。
解决方案:
1、在调用函数之前先声明;
2、将函数定义在调用之前。
初中本科毕业生
2012-09-17
知道答主
回答量:16
采纳率:0%
帮助的人:7.3万
展开全部
//void Delay(vu8 nCount);是把它注释了就好了嘛?
Delay(0xFFFFF);这个Delayfffff的nCount大于8位了

你注释之后 把void Delay(vu32 nCount)放在了main之前nCount就是32位的了,可以是FFFFFFFF一下的值,如果想main之前之声明,就把void Delay(vu8 nCount);换成void Delay(vu32 nCount);试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旷飞白002
2012-09-18 · TA获得超过613个赞
知道小有建树答主
回答量:370
采纳率:0%
帮助的人:250万
展开全部
..\main.(56): error: #159: declaration is incompatible with previous "Delay" (declared at line 51)

159行的声明和51行的声明一致。
函数的声明需要一致,参数的类型,返回值的类型,参数的个数都要一样。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dqluyanshu
2012-09-19 · TA获得超过541个赞
知道小有建树答主
回答量:496
采纳率:100%
帮助的人:331万
展开全部
你调用Delay函数时传递的参数是20位的(0xFFFFF)
你函数声明是八位的,当然会报错了
这么简单一错误,你都看不出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式