Jump to content

    

CubeMX и User code

Друзья, в генерируемых кубом проектах есть строки типа

/* USER CODE BEGIN 4 */

/* USER CODE END 4 */

для того, чтобы туда можно было вставить свой код и куб при изменении настроек и повторной генерации проекта не трогал то, что внутри них.

Однако в функции static void MX_GPIO_Init(void)
нет директив для user_code

Если я вставляю свои и даже пытаюсь соблюсти синтаксис и пишу /* USER CODE BEGIN GPIO_Init 2 */ - то куб при повторной генерации кода безжалостно эти строки удаляет.

МОжно ли как-то обойти это?

Share this post


Link to post
Share on other sites
17 minutes ago, -=Женек=- said:

МОжно ли как-то обойти это?

Не надо лазить внутрь кубовских функций, а сделайте свои, разместив их вызов в разрешенном кубом месте (сам удивляюсь, что пишу про это :fool:).

Но самое надежное и простое - удалить нафик этот куб, пока еще есть возможность это сделать :dirol:

Share this post


Link to post
Share on other sites
1 minute ago, Forger said:

Если серьезно, то не надо лазить внутрь кубовских функций, а сделайте свои, разместив их вызов в разрешенном кубом мест

Так я изначально так и сделал. Просто хочется более изящно. В других функциях я прямо внутри добавил, что хотел, а тут....

Share this post


Link to post
Share on other sites
1 minute ago, -=Женек=- said:

Просто хочется более изящно.

Изврат - использовать куб. Изящно - НЕ использовать куб.

"использовать изящно куб" - это абсурд ))

Share this post


Link to post
Share on other sites
2 часа назад, Forger сказал:

Но самое надежное и простое - удалить нафик этот куб, пока еще есть возможность это сделать :dirol:

Пока куб не пророс в мозг.  :wacko:  :biggrin:

Share this post


Link to post
Share on other sites
20 minutes ago, jcxz said:

Пока куб не пророс в мозг.  :wacko:  :biggrin:

Когда прорастет, "пациент" полностью утрачивает возможность писать посты на форумах.... Если конечно в ST не предусмотрят эту возможность прямо в кубе :laugh1:

Share this post


Link to post
Share on other sites
3 hours ago, -=Женек=- said:

Друзья, в генерируемых кубом проектах есть строки типа


/* USER CODE BEGIN 4 */

/* USER CODE END 4 */

для того, чтобы туда можно было вставить свой код и куб при изменении настроек и повторной генерации проекта не трогал то, что внутри них.

Нельзя задавать такие вопросы в пятницу :biggrin:

Share this post


Link to post
Share on other sites

к сожалению, куб не так гибок и ваш финт думаю не возможен

Share this post


Link to post
Share on other sites

у меня в main есть места, где я правлю настройки GPIO после Куба в зависимости от необходимости смены конфигурации. Есть у меня такие выводы, что меняют своее назначение.

Share this post


Link to post
Share on other sites
2 hours ago, serglg said:

 правлю настройки GPIO после Куба

Тогда зачем вообще нужен этот куб?

 

Share this post


Link to post
Share on other sites
14 hours ago, -=Женек=- said:

МОжно ли как-то обойти это?

Нельзя. Авторы Куба не позволяют модифицировать эту функцию. Они считают, что нечего программисту лезть внутрь. Она самодостаточная и законченная. И правильно делают.

 

2 hours ago, serglg said:

Есть у меня такие выводы, что меняют своее назначение.

Так делайте это Кубом. Также, как вы это делали при начальных настройках выводов портов.

Или делайте это своим кодом, но не внутри кубовских функций.

Зачем лезть в них? Вы же сами сказали - в main(). Так и пишите там, а не внутри MX_GPIO_Init().

Share this post


Link to post
Share on other sites
10 hours ago, Darth Vader said:

 

Или делайте это своим кодом, но не внутри кубовских функций.

Зачем лезть в них? Вы же сами сказали - в main(). Так и пишите там, а не внутри MX_GPIO_Init().

Ну я так и сказал. Не лезу и не делаю внутри MX_GPIO_Init(). 

Share this post


Link to post
Share on other sites
11 hours ago, Forger said:

Тогда зачем вообще нужен этот куб?

 

Вы не поверите. :-)

Мне просто лень создавать проект для Кейла. Тем более, что всё равно 256К флэша лежат без дела. :-)

И от Куба у меня только "рыба", где я всё ставлю по своему.

Ну и ряд HAL-ских функций, которые проверены, жить мне не мешают, не требуют большой производительности. Типа - работа с ЕЕПРОМ по I2C, UART и проч.

Или к примеру мне нужна температура МК в процессе жизни. Чего я там буду сочинять? Задам в Кубе темп. сенсор к АЦП и возьму его через DMA (в цикличном режима).

Но там, где дело серьезное, я могу вставить и работу с регистрами BSRR и BRR.

 

Edited by serglg

Share this post


Link to post
Share on other sites
8 minutes ago, serglg said:

Мне просто лень создавать проект для Кейла. 

А пытаться обмануть куб и потом мудохаться с последствиями не лень?

 

Share this post


Link to post
Share on other sites
53 minutes ago, serglg said:

Ну я так и сказал. Не лезу и не делаю внутри MX_GPIO_Init(). 

А это как понимать:

On 8/2/2019 at 7:33 PM, -=Женек=- said:

Однако в функции static void MX_GPIO_Init(void)
 нет директив для user_code

Если я вставляю свои и даже пытаюсь соблюсти синтаксис и пишу

Что значит "вставлять свои"? Что свои? Куда вставлять?

Уж не в MX_GPIO_Init() ли? Иначе, как всё это понимать?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now