al_sv 0 7 октября, 2022 Опубликовано 7 октября, 2022 · Жалоба Пытаюсь запустить обмен по SPI1 (если считать от 0, как в документации на MCU) с Flash (25-й). Вот мой код: Сначала настройка GPIO: #define FLASH_SCK_Pin GPIO_PIN_3 #define FLASH_SCK_GPIO_Port GPIOD #define FLASH_CS_Pin GPIO_PIN_4 #define FLASH_CS_GPIO_Port GPIOD #define FLASH_MISO_Pin GPIO_PIN_14 #define FLASH_MISO_GPIO_Port GPIOB #define FLASH_MOSI_Pin GPIO_PIN_15 #define FLASH_MOSI_GPIO_Port GPIOB #define FLASH_MOSI_MISO_GPIO_Port GPIOB GPIO_InitPara GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = FLASH_MISO_Pin |FLASH_MOSI_Pin; GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ; GPIO_InitStructure.GPIO_Mode = GPIO_MODE_AF_PP; GPIO_Init(FLASH_MOSI_MISO_GPIO_Port, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = FLASH_SCK_Pin; GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ; GPIO_InitStructure.GPIO_Mode = GPIO_MODE_AF_PP; GPIO_Init(FLASH_SCK_GPIO_Port, &GPIO_InitStructure); uint32_t alt_func_spi2_sck = 0x00000001<<23; //SPI2_SCK remapped to PD3 GPIO_PinRemapConfig2(PCFR5, alt_func_spi2_sck, ENABLE); //!!!! GPIO_InitStructure.GPIO_Pin = FLASH_CS_Pin; GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ; GPIO_InitStructure.GPIO_Mode = GPIO_MODE_OUT_PP; GPIO_Init(FLASH_CS_GPIO_Port, &GPIO_InitStructure); SPI_FLASH_CS_HIGH(); затем настройка SPI: SPI_InitPara SPI_InitStructure; SPI_InitStructure.SPI_TransType = SPI_TRANSTYPE_FULLDUPLEX; SPI_InitStructure.SPI_Mode = SPI_MODE_MASTER; SPI_InitStructure.SPI_FrameFormat = SPI_FRAMEFORMAT_8BIT; SPI_InitStructure.SPI_SCKPL = SPI_SCKPL_LOW; SPI_InitStructure.SPI_SCKPH = SPI_SCKPH_1EDGE; SPI_InitStructure.SPI_SWNSSEN = SPI_SWNSS_SOFT; SPI_InitStructure.SPI_PSC = SPI_PSC_32; SPI_InitStructure.SPI_FirstBit = SPI_FIRSTBIT_MSB; SPI_InitStructure.SPI_CRCPOL = 7; QSPI_IO34DRV(SPI2,DISABLE); SPI_Init(SPI2, &SPI_InitStructure); SPI_Enable(SPI2, ENABLE); (здесь SPI2 - потому что нумерация SPI в примерах GD ведется с 1) При просмотре SFR в дебаггере вижу, что функции SPI_Init и SPI_Enable не приводят к установке нужных битов в регистрах МК. В том числе бита SPIEN. В чем проблема, никто не сталкивался? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
0men 2 10 октября, 2022 Опубликовано 10 октября, 2022 · Жалоба клоки порта и спи включены? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sverchok 1 10 октября, 2022 Опубликовано 10 октября, 2022 (изменено) · Жалоба Тактирование сделано как в этом посте? Изменено 10 октября, 2022 пользователем Sverchok Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 5 11 октября, 2022 Опубликовано 11 октября, 2022 · Жалоба У вас использован remap портов для него надо еще AFIO тактировать. Но на SPIEN это бы не повлияло. Я думаю вы тут напутали с нумерацией SPI. Приведите ее в порядок. В какой IDE дебажите и какой проц там выбран не STM32 ли? По какому адресу смотрите SPIEN в отладке? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться