Jump to content
mindroz

STM32F303DISCOVERY SPI

Recommended Posts

Здравствуйте.

Подскажите, пожалуйста, в чём ошибка. Я использую STM32f303 DISCOVERY и мне нужно передавать по SPI 16-ти битные сообщения. Я сконфигурировал SPI и хочу проверить, есть ли импульсы при отправке, проверил осциллографом на PB13, PB14, PB15, а там ничего нет. Осциллограф подключён с самого начала и по идее я должен увидить импульсы.
Вот мой код, скажите, пожалуйста, что в нём не так, почему на осциллографе ничего нет?

void SPI2_Configuration(void)
{
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
  
    GPIO_InitTypeDef GPIO_InitStructure;

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

    GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_5);        // SCK
    GPIO_PinAFConfig(GPIOB, GPIO_PinSource14, GPIO_AF_5);        // MISO
    GPIO_PinAFConfig(GPIOB, GPIO_PinSource15, GPIO_AF_5);        // MOSI
    
    SPI_InitTypeDef SPI_InitStructure;
    SPI_StructInit(&SPI_InitStructure);
   
    SPI_I2S_DeInit(SPI2);
    SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256;
    SPI_InitStructure.SPI_CPHA              = SPI_CPHA_1Edge;
    SPI_InitStructure.SPI_CPOL              = SPI_CPOL_Low;
    SPI_InitStructure.SPI_DataSize          = SPI_DataSize_16b;
    SPI_InitStructure.SPI_Direction         = SPI_Direction_2Lines_FullDuplex;
    SPI_InitStructure.SPI_FirstBit          = SPI_FirstBit_MSB;
    SPI_InitStructure.SPI_Mode              = SPI_Mode_Master;
    SPI_InitStructure.SPI_NSS               = SPI_NSS_Soft;   
    SPI_InitStructure.SPI_CRCPolynomial     = 7;
    SPI_Init(SPI2, &SPI_InitStructure);

    SPI_Cmd(SPI2, ENABLE);
}

int main(void)
{
    SPI2_Configuration();

    SPI_I2S_SendData16(SPI2, 0x8000);
    while(!SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_FLAG_RXNE));
}

 

Share this post


Link to post
Share on other sites
32 минуты назад, mindroz сказал:

Осциллограф подключён с самого начала и по идее я должен увидить импульсы.

Поставьте задержку и зациклите отправку, тогда точно будете видеть, отправляются ли данные.

Share this post


Link to post
Share on other sites
10 часов назад, Alex сказал:

Поставьте задержку и зациклите отправку, тогда точно будете видеть, отправляются ли данные.

Сделал, крутится в цикле, все равно ничего нет

Share this post


Link to post
Share on other sites

Материалы вебинара «Создание беспроводных устройств на системах-на-кристалле семейства SimpleLink компании TI»

Компания Компэл, совместно с Texas Instruments провели вебинар, где инженер по применению беспроводных технологий компании TI рассказал(дублированный перевод), как на новых беспроводных системах можно реализовать несколько полезнейших в повседневной жизни функций для ваших устройств. С развитием элементной базы TI становится возможной реализация более удобных, функциональных и безопасных систем, недоступных ранее.

Подробнее...

Попробуй некошерным кубом для начала. И возможно снизить скорость в настройках пина.

Share this post


Link to post
Share on other sites
12 часа назад, mindroz сказал:

почему на осциллографе ничего нет?

На осцилле настроен захват сигнала или пытаетесь увидеть глазами?

Share this post


Link to post
Share on other sites

ESP32-DevKitC-VB позволит быстро запустить ваше первое WiFi-приложение

Отладочная плата на основе одного из самых популярных WiFi-модулей Espressif ESP32-WROVER-B позволяет в самые короткие сроки запустить приложение с поддержкой беспроводных стандартов WiFi 802.11b/g/n и Bluetooth Classic/BLE. Ресурсов встроенного в модуль чипа ESP32-D0WD хватит для решения даже очень сложных задач.

Подробнее...

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • А разве вы иначе думали? Задача следователя - найти улики, а задача прокурора - использовать их для обвинения. И только у суда задача во всем разобраться. Поэтому "все будет использовано против вас" Надеешься индульгенцию себе нализать?  
    • не катит, только от ананасоФФ ...
    • Вот, например, - http://tel-spb.ru/lc.html. Они зависимы. Выбираете имеющийся конденсатор и для него вычисляете индуктивность. Или наоборот. А вообще, гугл в помощь -  https://www.google.com/search?q=расчет+колебательного+контура&oq=расчет+колебательного+контура
    • Собрал по вышеприведенной схеме,всё работает, для минимального тока в 10 мА нужно подобрать диод с бОльшим падением напряжения.
    • Только два одинаковых - с красной термоусадкой и без нее. Последний был в мобильном комплекте инструмента, с которым я ездил по гастролям. Он уже "одет" в термоусадку, отнесу на работу, заменю на имеющийся там. У него губки без насечек. А самого верхнего "китайца" прикупил по дешевке для переделки в измерительный пинцет, но в итоге сделал таковой из пластинок стеклотекстолита (описывал раньше), а этот, с острозаточенными губками, остался для SMD. Да и покупал я только последний. Остальные остались от прошлых хирургических времен. Не выбрасывать же!
    • @Сергей Викторович  , так надо один конденсатор на несколько пикофарад повесить, а не несколько по пикофараду   . Там может и 20 пф быть, и 30. И 300 - если совсем всё плохо. Генерацию надо на выходе микросхемы смотреть, а не на 6-й ноге.
×
×
  • Create New...