Перейти к содержанию
    

CubeIDE 1.8

Вот спрошу, но прошу не посылать. STM32F030R8, впрочем это роли не играет.

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

Итак, система выдала код, как пример, относится к любому другому железу внутри мк:

static void MX_SPI1_Init(void)
{
   /* SPI1 parameter configuration*/
  hspi1.Instance = SPI1;
  hspi1.Init.Mode = SPI_MODE_MASTER;
  hspi1.Init.Direction = SPI_DIRECTION_2LINES;
  hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
  hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
  hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
  hspi1.Init.NSS = SPI_NSS_SOFT;
  hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4;
  hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
  hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
  hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
  hspi1.Init.CRCPolynomial = 7;
  hspi1.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
  hspi1.Init.NSSPMode = SPI_NSS_PULSE_DISABLE;
  if (HAL_SPI_Init(&hspi1) != HAL_OK)
  {
    Error_Handler();
  }
}

К примеру, возьмём строчку: hspi1.Init.NSSPMode = SPI_NSS_PULSE_DISABLE;

По смыслу это: SPI1->CR2 бит 3 (NSSP). По записи: SPI_NSS_PULSE_DISABLE я нашел в системе к какому биту относится. Но вот, что запись: hspi1.Init.NSSPMode относится к SPI1->CR2 я не нашел. 

Можно ли найти к какому регистру относится: hspi1.Init.NSSPMode ? И где искать? И как искать? Пункт меню - Open Declaration - в данном случае не помогает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это инициализация структуры хендла, а собственно инициализацию смотрите в 

HAL_SPI_Init()

%

тот неловкий момент, когда даже не знаешь, что такое CubeIDE 1.8 ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...типа надоело мне вручную всё делать, а тут быстро, но непонятно.
Почему-то припомнился ныне неживой юморист Арлазоров \пришепётывая\: "Мужик, тебе как пошчитать: быстро или точно?"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20 часов назад, Vlad_G сказал:

И где искать? И как искать

В референс-мануале RM0360, в главе SPI

2023-12-02112524.thumb.jpg.93b857987ccaa988676cd635f61cb98d.jpg

А так же следует почитать мануал на HAL, он есть на сайте st.com. И так же можно посмотреть исходные тексты самого HAL, там как раз четко будет написано, что как и куда.

Неоднократно уже подмечено - кто использует Cube HAL, тот никогда не читает мануалов вообще. Это, кагбе, модус вивенди, диагносс...

Изменено пользователем EdgeAligned

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 02.12.2023 в 08:28, EdgeAligned сказал:

В референс-мануале RM0360, в главе SPI

Вы невнимательно прочитали мой пост. Ну да ладно, бывает.

В 01.12.2023 в 12:06, MrYuran сказал:

собственно инициализацию смотрите в HAL_SPI

Это чума какая-то... Накопал: Instance->CR2, Instancе - базовый адрес SPI. Получается, что халовское Instance->CR2 соответствует сээмсисному SPI1->CR2.

Проблема решилась и без HAL. SPI при моей инициализации "вылетал-зависал" вскорости после запуска, а инициализация автоконфигуратором работала нормально. Битики, которые на первый взгляд кажутся таксебешными, играют роль. Работает уже три с половиной часа, погоняю до пятницы, если не глюкнет, значит - ОК.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...