Хочу подключить дисплей с контроллером STM7735, такой:
128*160 пикселей.
Микроконтроллер: STM32F103RB.
Подключаю по даташиту:
RESET, CS - обычные порты ввода-вывода STM32. SDA и SCK, как я понял (несмотря на их названия как у I2C), подключаются к SPI. У меня SPI1, SCK - PA5, SDA - PA7.
Инициализация SPI:
static void MX_SPI1_Init(void) { /* USER CODE BEGIN SPI1_Init 0 */ /* USER CODE END SPI1_Init 0 */ /* USER CODE BEGIN SPI1_Init 1 */ /* USER CODE END SPI1_Init 1 */ /* 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_2EDGE; 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 = 10; if (HAL_SPI_Init(&hspi1) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN SPI1_Init 2 */ /* USER CODE END SPI1_Init 2 */ }
Не кидайте камнями, да, я использую STM32CUBE.
Проблему даже не знаю как сформулировать более точно - дисплей не работает... Подсветка есть. Поскольку связь по SPI однонаправленная, то сложно понять, есть ли в инициализационной последовательности проблема, либо в чем-то другом дело...
Верно ли я понимаю, что SDA/SCK это все же SPI? Может есть пример работающий, чтобы сходу залить и проверить, хотя я понимаю, что вряд ли именно под мой контроллер окажется неожиданно готовое решение)
В общем буду рад любым советам и помощи!!!
Добрый день!
Не кидайте камнями, да, я использую STM32CUBE.
У меня вообще нет религиозной ненависти к Cube и HAL ) Все зависит от задачи.
Так, давайте начнем с изменения:
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
Верно ли я понимаю, что SDA/SCK это все же SPI?
А, ну и да - дисплей по SPI работает, все верно.
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
Блин, ну как так... Я все перепроверил по 100 раз перед созданием темы, в итоге реально в этом и оказалась проблема, дисплей заработал... Aveal, спасибо...)
С работой теперь все ОК, но отрисовывает очень медленно... Можете помочь? Или создать новую тему лучше?
С работой теперь все ОК, но отрисовывает очень медленно... Можете помочь? Или создать новую тему лучше?
Рад, что заработало! Да, лучше отдельную.