C51单片机,这段代码哪里错了,显示error C193: 'parameter': bad operand type?

#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit Buzzer = P2^5; uint Music[] = { 784, 784, 1047, 784, 523, 523, 784, 784, 1047, 784, 523, 523, 494, 494, 784, 784, 1047, 1047, 784, 1047, 784, 523, 523, 784, 1047, 784, 523, 523, 494, 494, 784, 784, 1047, 1047, 784, 1047, 784, 523, 523, 784, 1047, 784, 523, 523, 494, 494, 784, 784, 1047, 1047, 784, 1047, 784, 523, 523, 784, 1047, 784, 523, 523, 494, 494, 0};uint Beat[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2};void Delay_ms(uint t){ uint i, j; for (i = t; i > 0; i--) for (j = 110; j > 0; j--);}void PlayTone(uint freq, uint time){ uint i; for (i = 0; i < time; i++) { Buzzer = 1; Delay_ms(_nop_()); Buzzer = 0; Delay_ms(1000 / freq / 2 - 1); }}void main(){ uint i = 0; while (Music[i] != 0) { PlayTone(Music[i], Beat[i]); Delay_ms(100); i++; }}

第1个回答  2023-03-22
提示已经非常清楚明白了。
Delay_ms()函数的参数是一个uint型,你把_nop_()函数的返回值传递给它,然而_nop_()函数是没有返回值的……
行号,第48行,你自己好好看。
第2个回答  2023-05-22

    延迟函数错误:Delay_ms(_nop_())是不正确的,_nop_()函数不应该用于延迟。