Никогда такого не было и вот опять(с). Чтот я в тупике, подскажите
плиз как решить проблему Портирую полностью рабочий проект с STM32 на GD32. Суть в следующем
все пины описаны через битовые поля
typedef struct
{
uint8_t pin:7;
uint8_t pin_mode:7;
uint8_t def_lvl:1;
uint8_t dev_out_system:1;
}gpio_set_t;
далее
#define DEVICE_OUT (gpio_set_t){PINA_0, GPIO_Mode_Out_PP, DEF_LOW_LVL, NO_DEV_OUT}
все это помещено в массив
const gpio_set_t pin_arr[] =
{
DEVICE_OUT,
*****,
*****,
*****,
};
Вот тут начинается самое интересное, на stm все собиралось и работало без проблем, тут выдает "error: #119: cast to type "gpio_set_t" is not allowed".
Убрал приведение из define все собралось без ошибок, идем дальше. Есть функции управления пинами типа
void set_pin_active(gpio_set_t pin_set); и void set_pin_inactive(gpio_set_t pin_set);
вызываем
set_pin_active(DEVICE_OUT );
получаем "error: #29: expected an expression"
Что за нах ???
если писать так , то
set_pin_active((gpio_set_t)DEVICE_OUT );
получаем error: #119: cast to type "gpio_set_t" is not allowed