This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP430FR4133:错误#143表达式必须具有指向对象类型的指针

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/580377/ccs-msp430fr4133-error-143-expression-must-have-pointer-to-object-type

部件号:MSP430FR4133

工具/软件:Code Composer Studio

有人能告诉我为什么在突出显示的行上出现此错误以及如何修复吗?

#include <MSP4S.h>
#include <driverlib.h>
/*
主要c
*/

#define one_second 80万

Int switchanalogMux(int I);
void switchOn(int *i);

int main (void){
WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
GPIO _setAsOutputPin (GPIO端口_P5,GPIO _PIN0 + GPIO _PIN1 + GPIO _PIN2 + GPIO _PIN3);
GPIO_setAsInputPinWithPullDownResister(GPIO_PORT_P8,GPIO_PIN2);
GPIO _setAsOutputPin (GPIO端口P1,GPIO _PIN0 + GPIO _PIN1 + GPIO _PIN3 + GPIO _PIN4 + GPIO _PIN5 + GPIO _PIN6);
GPIO _setAsOutputPin (GPIO端口P2,GPIO _PIN5 + GPIO _PIN7);
而(1){
int i;
INT A;

Int analogValue;
Int analogValues [16];
用于(i = 0;I<16;I++){
analogValue = switchAnalogMux(I);
analogValue[i]= analogValue;
}
int *maxIndex =0;
而(小于16){
用于(i =0;I<16;I++){
IF (analogValue[i]> analogValue[*maxIndex]){
maxIndex =&I;
}
}
SwitchOn(&maxIndex);
analogValue[*maxIndex]= 0;
A+=1;
}
}


返回0;
}

int switchanalogMux(int I){
Int analogValue;
如果(I&1 == 1){
GPIO _setOutputHighOnPin (GPIO_PORT_P5, GPIO _PIN0);
}
如果(I&2 = 2){
GPIO _setOutputHighOnPin (GPIO端口P5,GPIO _PIN1);
}
如果(I&4 == 4){
GPIO _setOutputHighOnPin (GPIO端口P5,GPIO _PIN2);
}
如果(I&8 == 8){
GPIO _setOutputHighOnPin (GPIO_PORT_P5, GPIO _PIN3);
}
如果(i==0){
GPIO _setOutputHighOnPin (GPIO端口_P5,GPIO _PIN0 + GPIO _PIN1 + GPIO _PIN2 + GPIO _PIN3);
}
analogValue = gPIO_getInputPinValueOnPin(GPIO_PORT_P8, gPIO_PIN2);
GPIO _setOutputLowOnPin (GPIO端口_P5,GPIO _PIN0 + GPIO _PIN1 + GPIO _PIN2 + GPIO _PIN3);
返回类比值;
}
void switchOn(int *i){
如果(*i == 0){
GPIO _setOutputHighOnPin (GPIO端口P1,GPIO _PIN0);
_DELAY周期(一秒);
GPIO _setOutputLowOnPin (GPIO端口P1,GPIO _PIN0);
}
IF (* i == 1){
GPIO _setOutputHighOnPin (GPIO端口P1,GPIO _PIN1);
_DELAY周期(一秒);
GPIO _setOutputLowOnPin (GPIO端口P1,GPIO _PIN1);
}
IF (* i == 2){
GPIO _setOutputHighOnPin (GPIO端口P1,GPIO _PIN3);
_DELAY周期(一秒);
GPIO _setOutputLowOnPin (GPIO端口P1,GPIO _PIN3);
}
IF (* i == 3){
GPIO _setOutputHighOnPin (GPIO端口P1,GPIO _PIN4);
_DELAY周期(一秒);
GPIO _setOutputLowOnPin (GPIO端口P1,GPIO _PIN4);
}
IF (* i == 4){
GPIO _setOutputHighOnPin (GPIO端口P1,GPIO _PIN5);
_DELAY周期(一秒);
GPIO _setOutputLowOnPin (GPIO端口P1,GPIO _PIN5);
}
IF (* i == 5){
GPIO _setOutputHighOnPin (GPIO端口P1,GPIO _PIN6);
_DELAY周期(一秒);
GPIO _setOutputLowOnPin (GPIO端口P1,GPIO _PIN6);
}
IF (* i == 6){
GPIO _setOutputHighOnPin (GPIO端口P2,GPIO _PIN5);
_DELAY周期(一秒);
GPIO _setOutputLowOnPin (GPIO端口P2,GPIO _PIN5);
}
IF (* i == 7){
GPIO _setOutputHighOnPin (GPIO端口P2,GPIO _PIN7);
_DELAY周期(一秒);
GPIO _setOutputLowOnPin (GPIO端口P2,GPIO _PIN7);
}
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在比较表达式的右侧,您要使用analogValues,而不是analogValue
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是正确的,但这只会将错误更改为"错误#1.0234万-D:未解析的符号仍然存在"

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    诊断程序...

    Tanzim Chowdhury 说:
    错误#1.0234万-D:仍存在未解析的符号[/QUOT]

    ...链接时发生。  这意味着代码调用不存在的函数(或不太常见的情况下,使用数据)。  最常见的原因是链接中没有所需的库。

    谢谢,此致,

    -George

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    int *maxIndex =0;
    将maxindex设置为指针,并将其设置为地址0。

    IF (analogValue[i]> analogValue[*maxIndex])
    然后读取0的地址并将其用作索引。

    记住数组索引的定义:A[i]=*(&A+I)
    您有*(analogValue +[任意最大索引点的值])
    您可以使用指针或数组算术来表达自己的想法。

    只需将maxindex设置为直线int并存储i的值

    如果真的需要指针,只需将maxindex =&analogevalues[i]并将其称为*maxindex即可