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

2025-03-01 02:48:59
推荐回答(4个)
回答1:

就是说,你的函数声明写在了调用之后。这句话是说,你在51行调用了该函数,但是函数的定义却在159行。程序误把你的函数定义当做函数调用了,而把函数调用当做了函数声明。
解决方案:
1、在调用函数之前先声明;
2、将函数定义在调用之前。

回答2:

//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);试试。

回答3:

..\main.(56): error: #159: declaration is incompatible with previous "Delay" (declared at line 51)

159行的声明和51行的声明一致。
函数的声明需要一致,参数的类型,返回值的类型,参数的个数都要一样。

回答4:

你调用Delay函数时传递的参数是20位的(0xFFFFF)
你函数声明是八位的,当然会报错了
这么简单一错误,你都看不出来