реклама на сайте
подробности

 
 
> Помогите разобраться с индуистким кодом STM32CubeMX, Пришло время осваивать STM32
www...
сообщение Mar 25 2016, 05:03
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 26-10-14
Из: Екатеринбург
Пользователь №: 83 345



Как то я затянул с освоением ARMов, все AVR да С51. Но работодатели нынче все требуют опыт STM32, так что хочу быть в тренде.
Раздобыл оценочную плату на STM32F207, слил STM32CubeMX+ Keil.

Первое впечатление - ООО! все очень круто, так же просто и удобно как в CodevisionAVR, в STM32CubeMX расставляем галочки на периферии, задем тактирование и получаем кейловский проект со всеми инициализациями.
Но как только я попытался помигать диодом радость сменилась болью, не понятно как пользоваться этим кодом который сгенерил STM32CubeMX.

Есть ли документация на функции которые он генерит (ну на подобии как это сделано в CooCox)? или тупо рыться по исходникам, которые он сгенерил и читать из них?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 7)
uriy
сообщение Mar 25 2016, 05:34
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Есть документы Description of STM32F1xx HAL drivers - STMicroelectronics и Description of STM32F4xx HAL drivers -
STMicroelectronics, а для F2 похоже нет.
Можно же вовсе не использовать cube. Меня останавливает то что там отвратно сделан прием по UART. Я пользуюсь SPL
Go to the top of the page
 
+Quote Post
www...
сообщение Mar 25 2016, 07:13
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 26-10-14
Из: Екатеринбург
Пользователь №: 83 345



Цитата(uriy @ Mar 25 2016, 10:34) *
Есть документы Description of STM32F1xx HAL drivers - STMicroelectronics и Description of STM32F4xx HAL drivers -
STMicroelectronics, а для F2 похоже нет.
Можно же вовсе не использовать cube. Меня останавливает то что там отвратно сделан прием по UART. Я пользуюсь SPL

О СПАСИБО. Думаю различий там нет.
А вообще после кода типа PORTB.0=1 для AVR, код HAL_GPIO_WritePin (GPIOB, GPIO_PIN_1, GPIO_GPIO_BIT_SET) вызывает мягко говоря культурный шок
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 25 2016, 08:08
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(www... @ Mar 25 2016, 13:13) *
А вообще после кода типа PORTB.0=1 для AVR, код HAL_GPIO_WritePin (GPIOB, GPIO_PIN_1, GPIO_GPIO_BIT_SET) вызывает мягко говоря культурный шок

Никто не мешает Вам написать свои макросы как Вам удобнее.
Go to the top of the page
 
+Quote Post
mcheb
сообщение Mar 25 2016, 08:28
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 30-05-06
Пользователь №: 17 602



Цитата(www... @ Mar 25 2016, 11:13) *
О СПАСИБО. Думаю различий там нет.
А вообще после кода типа PORTB.0=1 для AVR, код HAL_GPIO_WritePin (GPIOB, GPIO_PIN_1, GPIO_GPIO_BIT_SET) вызывает мягко говоря культурный шок


Пишите так
Код
#define GPIOB               ((GPIO_TypeDef *) GPIOB_BASE)
#define GPIOC               ((GPIO_TypeDef *) GPIOC_BASE)

#define GreenOn     sbit(GPIOC->ODR,9)
#define GreenOff    cbit(GPIOC->ODR,9)
#define GreenFlp    fbit(GPIOC->ODR,9)
#define BlueOn      sbit(GPIOC->ODR,8)


void InitLED(void) {
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
    //    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_8;
    //    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    //    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    //    GPIO_Init( GPIOC , &GPIO_InitStructure);
    GPIOC->CRH &= 0xFFFFFF00;
    GPIOC->CRH |= (0 << 2) | (GPIO_Speed_2MHz);
    GPIOC->CRH |= ((0 << 2) | (GPIO_Speed_2MHz)) << 4;
    GreenOn;
    BlueOff;
}
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Mar 25 2016, 11:35
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Пишите на с++, stm32tpl - образец компактности и лаконичности!

Код
typedef Pin<'C', 9> GreenLed;
GreenLed::Mode (OUTPUT);
GreenLed::On();


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
www...
сообщение Mar 25 2016, 13:52
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 26-10-14
Из: Екатеринбург
Пользователь №: 83 345



Цитата(jcxz @ Mar 25 2016, 13:08) *
Никто не мешает Вам написать свои макросы как Вам удобнее.

Ну вот и я о том же, что от стандартного ANSI C остаются рожки да ножки, и получается индуисткий код из макросов который кроме автора никто не поймет - исходники то парой нужно сопровождать, причем так складывается что люди меняются. Уж лучше пусть будет хал(он же кал) - они хотя бы как выяснилось документированы. Ну только без холивара...

Еще вопрос. Есть среды разработки с генератором начального кода под арм32, пусть не стм, где бы обошлось без индуисткого кода? Хотя и стм32 с его кубом можно переварить.....
Go to the top of the page
 
+Quote Post
AleksBak
сообщение Mar 25 2016, 14:28
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 132
Регистрация: 6-02-16
Из: г. Баку
Пользователь №: 90 364



Цитата(esaulenka @ Mar 25 2016, 15:35) *
Пишите на с++, stm32tpl - образец компактности и лаконичности!

Код
typedef Pin<'C', 9> GreenLed;
GreenLed::Mode (OUTPUT);
GreenLed::On();

Вот это да? И это? Да уж.. О сколько нам открытий чудных... tort.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 14:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01415 секунд с 7
ELECTRONIX ©2004-2016