DSP的GPIO引脚用set置位高电平无法运行为什么?

芯片是tms320F28377D,CCS版本是8,当给IO口输出时,用set置高电平会导致上图红字的报错,但用data置高电平的话又没有这个问题,可用data会有延迟,导致相邻的IO口输出有一个输出错误,就不明白set字符出错在哪里?望有大神解答下,谢谢!

参考GPT和自己的思路:

根据您提供的情况分析,可能的原因是set字符的使用不正确。在TI的C2000系列中,使用set或clr字符进行IO口操作时,需要保证对应的IO口已经被定义为输出模式,并且没有被用作其他功能如PWM等。如果IO口未被正确定义或被用作其他功能,则会导致set操作失效或出现异常。您可以检查一下程序是否已经正确设置了GPIO引脚的工作模式,并且没有使用其他功能占用了这些引脚。此外,您还可以尝试使用寄存器方式进行IO口操作,可以避免set字符不稳定的问题。

参考GPT和自己的思路:

根据您提供的信息,可能是由于set命令在CCS 8版本中不被支持,所以出现了这个错误。事实上,CCS 8引入了一些新的命令,包括GPIO_setPinHigh()和GPIO_setPinLow()等,这些命令可以执行类似于set和clear的操作。因此,您可以尝试使用GPIO_setPinHigh()命令来置位高电平,看看是否仍然出现错误。

参考GPT和自己的思路:

根据你提供的情况,可能是因为使用了错误的函数或语法造成的。set函数通常是用于设置某个标志或开关状态的,而不是控制IO引脚输出高低电平的。应该使用GPIO_WritePin函数来控制引脚输出高低电平。

同时,根据你描述的情况,使用data置高电平时出现延迟,可能是因为使用了错误的IO口配置或者频率过高导致的。建议检查IO口的配置是否正确,并降低频率以获得更稳定的输出。

另外,报错信息中提到了"error: invalid operands to binary expression",这可能是因为在set函数中使用了错误的参数类型,导致无法进行二进制运算。建议仔细查看函数参数的类型以及函数使用说明。