当我尝试在Atollic TrueSTUDIO for STM32 9.3.0中格式化C代码时遇到问题。当宏是函数的参数时,自动换行不起作用。这是一个错误,或者我在Formatter中找不到正确的设置。
#define GPIO_PIN_7 ((uint16_t)0x0080U)
GPIO_InitAsOutput(&LED_D, GPIOC,
GPIO_PIN_7,
GPIO_OutputType_PushPull, GPIO_Pull_None,
GPIO_Speed_Low);
在上面的代码中,GPIO_PIN_7是这里的问题。换行宽度为80。当我按“ CTRL + SHIFT + F”时,应该看起来像这样:
PIO_InitAsOutput(&LED_D, GPIOC, GPIO_PIN_7,
GPIO_OutputType_PushPull, GPIO_Pull_None,
GPIO_Speed_Low);
但是,它不会更改格式。
另一个奇怪的是,如果我将GPIO_PIN_7替换为((uint16_t)0x0080U),它正在工作并且代码如下:
PIO_InitAsOutput(&LED_D, GPIOC, ((uint16_t)0x0080U),
GPIO_OutputType_PushPull, GPIO_Pull_None,
GPIO_Speed_Low);
我该怎么做才能纠正这种行为?
答案 0 :(得分:1)
您刚刚遇到了Eclipse错误459301。在此问题修复之前,如果可以将Eclipse 2019-03与CDT 9.7一起使用,则只能使用格式标签。
//@formatter:off
PIO_InitAsOutput(&LED_D, GPIOC, GPIO_PIN_7, GPIO_OutputType_PushPull,
GPIO_Pull_None, GPIO_Speed_Low);
//@formatter:on