Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Электроника и схемотехника > SPI на STM32F103


Автор: Bubaylo 21.01.22, 07:49
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    void SPI2_Send_byte(U16 data)
    {
        while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE)==RESET); - бесконечно тут крутится. Из-за чего это может быть?
        SPI_I2S_SendData(SPI2,data);
     
        while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE)==RESET);
        SPI_I2S_ReceiveData(SPI2);
    }


Непонятна мне природа этого бага. Это раб никак не запуститься? Или что? Где искать?=)

Автор: C300G 22.01.23, 18:18
У меня немного другой SPI-код для STM'ки был:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    void SPI_SendDataToDevice(uintSPI_t nBytesToSend, uint8_t * pDataToSend)
    {   GPIO_WRITE(nSPI_CS_PinID, GPIO_LVL_LOW);  // notSS -> 0.
        while(nBytesToSend--)
        {   // Отправляем байт:
            SPI_I2S_SendData(SPI_MODULE_NAME, *pDataToSend++);
            // Ждём, пока передатчик занят:
            while(SPI_I2S_GetFlagStatus(SPI_MODULE_NAME, SPI_I2S_FLAG_BSY ) == SET);
            // Ждём приёма байта:
            while(SPI_I2S_GetFlagStatus(SPI_MODULE_NAME, SPI_I2S_FLAG_RXNE) != SET);
            // Принимаем байт:
            SPI_I2S_ReceiveData(SPI_MODULE_NAME);
        }
        GPIO_WRITE(nSPI_CS_PinID, GPIO_LVL_HIGH); // notSS -> 1.
        return;
    }

Автор: DrUnkard 22.01.23, 20:11
Уже год прошёл! :lol:

Всё правильно заинициализировано?
Вот пример SPI master (SPL)
https://www.mcu.by/%D1%81%D1%82%D0%B0%D1%80...%D1%82%D1%8C-2/

Автор: Bubaylo 06.04.23, 07:19
Да уж=) Время летит...
Косяк был в хреновой промывке платы.
Сейчас появился новый секас, подключение ADF4350... Казалось бы, чего там сложного? По SPI засылаешь что-надо, как в инструкции, и вуаля... а вот хрен там. Молчит зараза... И непропай находили, устранили вроде...Все равно молчит... Но это уже совсем другая история...

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)