TIM4_BASE → CCR1 = channel_3;
Почему базовый оператор → не указатель???
Arduino 1.8.19
Ядро STM32 последнее: 2.8.0
Третий день (с перерывами). Удалил все папки (arduino15 в APPData), переустановил - без результата
Ядро от 2.0.0 до 2.8.0 менял без результата
Где еще покопать?
А почему ты решил, что это должно быть указателем?
Простите, Вы читать не умеете? Там не “оператор”, а “операнд”. Или Вы не понимаете разницы? Там написано, что базовый операнд операции → не является указателем, хотя должен.
А почему? Да, кто ж знает, наверное, потому что Вы так написали.
В любом учебнике по языку С++.
Это если хотите знать и понимать. Если же хотите просто как-то исправить до следующего раза, то хотя бы опубликуйте свой код, чтобы кто-нибудь мог подсказать Вам что и как исправить.
код нормально можете показать?
Прошу пардону, конечно операнд, описка
Когда в Кейле пишешь такую строчку, компилятор понимает, что в регистр CCR1 таймера TIM4 нужно записать значение после знака равества channel_3.
Здесь что не так?
if (!disable_throttle) {
TIM4_BASE -> CCR1 = channel_3
TIM4_BASE->CCR2 = channel_3;
TIM4_BASE->CCR3 = channel_3;
TIM4_BASE->CCR4 = channel_3;
}
Так понятнее?
Что значит “компилятор понимает”?
мне - нет. но я туповат с рождения.
Извиняйте за беспокойство
Видимо нужно пару уроков разницы доступа через «.» и «->» накорябать в вики. Но я не писатель))
Задал этот вопрос на англоязычном фокуме.
Вместо
TIM4_BASE->CCR2
нужно
TIM4->CCR2
Ответили быстро и по существу.
Видно на их форуме не водятся любители поиспражнятся над ТС за нубский вопрос.
а это единственная ошибка в коде?
Судя по синтаксису, вы взяли код от аддона Кларка и пытаетесь его компилить в аддоне СТМ. Ошибок должно быть больше.
Видимо, когда Вы задавали вопрос, Вы уже учли моё замечание
потому что по Вашему первому сообщению Вам не смогли бы помочь даже на марсианско-язычном форуме.
А вообще, если там Вам помогают, не понимаю, что Вы ещё делаете здесь.
А дай-ка ссылку на англоязычный форум.