关于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);
}
} 展开
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);
}
} 展开
4个回答
展开全部
//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);试试。
Delay(0xFFFFF);这个Delayfffff的nCount大于8位了
你注释之后 把void Delay(vu32 nCount)放在了main之前nCount就是32位的了,可以是FFFFFFFF一下的值,如果想main之前之声明,就把void Delay(vu8 nCount);换成void Delay(vu32 nCount);试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
..\main.(56): error: #159: declaration is incompatible with previous "Delay" (declared at line 51)
159行的声明和51行的声明一致。
函数的声明需要一致,参数的类型,返回值的类型,参数的个数都要一样。
159行的声明和51行的声明一致。
函数的声明需要一致,参数的类型,返回值的类型,参数的个数都要一样。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你调用Delay函数时传递的参数是20位的(0xFFFFF)
你函数声明是八位的,当然会报错了
这么简单一错误,你都看不出来
你函数声明是八位的,当然会报错了
这么简单一错误,你都看不出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询