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.

[参考译文] 编译器/MSP430G2553:1934-D 与""""("

Guru**** 2587365 points
Other Parts Discussed in Thread: CC1101

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/589921/compiler-msp430g2553-1934-d-concatenation-with

器件型号:MSP430G2553
主题中讨论的其他器件:CC1101

工具/软件:TI C/C++编译器

大家好、我正在使用下载的 SPI 代码在 SPI 总线上读取和写入数据。 在编译代码时、我会收到以下警告。

感谢您在以下方面的任何帮助:

警告:

说明资源路径位置类型
在宏"MCU_IO_CLR_PREP "中#1934-D 与";"连接不会创建有效的令牌 CC110x.c /

代码中的区域:

define st (x)(定义 st (x)) 在(__LINE_=-1)

#define HAL_SPI_BEGIN 时执行{ x } St (HAL_SPI_CS_ASSERT;while (HAL_SPI_SOMI_VAL);)

static uint8_t halSpiStrobe (uint8_t cmd)
{
uint8_t rc;

HAL_SPI_BEGIN;
HAL_SPI_TXBUF_SET (cmd);
HAL_SPI_WAIT_RXFIN; //等待 TX (也是 RX)完成
RC = HAL_SPI_RXBUF;
HAL_SPI_END;
return (RC);
} 

同样、还有一个警告:

在宏"mcu_io_get_prep"中#1934-D 与")"串联不会创建有效的令牌 CC110x.c

#define MCU_IO_GET_PREP (端口、引脚) (P#port#IN & bit#pin##)

#define MCU_IO_Get (端口、引脚) MCU_IO_GET_PREP (端口、引脚)

#define HAL_SPI_SOMI_VAL MCU_IO_Get (HAL_SPI_SOMI_PORT、HAL_SPI_SOMI_PIN)

void CC110xResetChip (void)
{

//切换芯片选择信号
HAL_SPI_CS_DEASSERT;
DelayForUS (20);
SAL_SPI_ASSPI_ASERT;HAL_AS_AS_SDT_ASIT_ASIFERT;


DelayForUS (60);

//发送 SRES 命令
HAL_SPI_CS_ASSERT;

while (HAL_SPI_SOMI_VAL);
HAL_SPI_TXBUF_SET (CC1100_CMD_SRES);
HAL_SPI_WAIT_RXFIN;
//while (UCB0STAT 和 UCBUSY);
DelayForUS (5);
//等待芯片完成内部复位
、同时(HAL_SPI_SOMI_VAL);
HAL_SPI_CS_DEASBERT;
} 

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

    您从哪个代码示例中获取? SWRA493的 LaunchPad_TRx_DEMO 没有给我提供任何类似的错误。 您也未提供 MCU_IO_CLR_PREP、P#port##IN 或 bit##PIN##的定义。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ryan、您需要整理 C 语言-真的很模糊 C 语言

    这些宏是一些*丑*代码。

    在宏中、P##port###使用预处理器##连接运算符创建用于创建 PIN 定义的源。
    #define MCU_IO_GET_PREP (端口、引脚) (P#PORT#IN 和位#PIN##)

    将像这样展开:
    MCU_IO_GET_PREP (5、5)--> (P5IN 和 BIT5)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Suresh Kavula">类似地,另一条警告:

    在宏"MCU_IO_GET_PREP "中#1934-D 与")"串联不会创建有效的令牌 CC110x.c MCU_IO_GET_PREP 宏在末尾具有伪##运算符:

    #define MCU_IO_GET_PREP (端口、引脚) (P#PORT#IN 和位#PIN##) 

    使用以下内容替换宏可删除警告:

    #define MCU_IO_GET_PREP (端口、引脚) (P#PORT#IN 和位#Pin) 

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

    您能否建议以下警告所需的更改:
    在宏"MCU_IO_CLR_PREP "中#1934-D 与";"连接不会创建有效的令牌 CC110x.c /


    以下是宏:

    define st (x)(定义 st (x)) 执行{ x },同时(__LINE__==1)

    #define MCU_IO_PERIOD_PREP (端口、引脚) st (P#port##SEL |=位#PIN##;)
    #define MCU_IO_INPUT_PREP (端口、引脚) ST (P#port##SEL 和=~位##PIN##;\
    P#port##DIR &=~位##PIN##;)
    #define MCU_IO_OUTPUT 准备(端口、引脚、val) st (P#port#SEL 和=~位#pin##;\
    如果(val)\
    {P#port##out |=位#pin##;}\
    否则\
    {P#port##OUT &=~位##PIN##;}\
    P#port##DIR |=位#pin##;)
    #define MCU_IO_SET_PREP (端口、引脚) St (P#port##out |=位#pin##;)
    #define MCU_IO_CLR_PREP (端口、引脚) St (P#port##out &=~位##pin##;)
    #define MCU_IO_GET_PREP (端口、引脚) (P#PORT#IN 和位#Pin)

    谢谢、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可能需要从宏中删除##;。 您可能需要在源代码中提供;,具体取决于语法。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [quote user="Suresh Kavula">您是否可以建议以下警告所需的更改分号作为令牌的一部分有效、因此要删除该警告、请删除分号之前的##个运算符。

    但是、st 宏看起来是错误的。 测试(__LINE__=-1)的 DO while 循环的原因是什么? 假设_line__扩展到当前源文件行号?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我同意、我当然希望这不是 TI 示例代码。 他说他下载了它、但我们不知道从哪里下载。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    为 CC1101低功耗射频接收器/发送器下载此代码、以便通过 SPI 与 MSP430处理器进行通信。
    请记住、来自哪个网站。 在您提出所有建议后、不再看到警告。 谢谢。