реклама на сайте
подробности

 
 
> Как заставить SPI работать (stm32f4Discovery), Использую стандартную библиотеку: stmperiph
BlackOps
сообщение Jun 8 2012, 04:13
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 618
Регистрация: 7-06-08
Из: USSR
Пользователь №: 38 121



конфигурирую пины PB13 - SPI2_SCK, PB15 - SPI2_MOSI: в режиме SPI только посылаю.

вот код:
CODE
int main(void)
{
/*!< At this stage the microcontroller clock setting is already configured,
this is done through SystemInit() function which is called from startup
file (startup_stm32f4xx.s) before to branch to application main.
To reconfigure the default setting of SystemInit() function, refer to
system_stm32f4xx.c file
*/
uint8_t d0 = 0xd9; // 11011001, test data0




// declare SPI init data structure
SPI_InitTypeDef spi2;

// declare GPIO init data structure
GPIO_InitTypeDef gpiob;

// enable SPI2 clock
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);

// enable SPI2 pins
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);

// connecting Alternate Functions to GPIOB pins
GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_SPI2);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource15, GPIO_AF_SPI2);


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

// initializing the SPI2
SPI_I2S_DeInit(SPI2);
spi2.SPI_Direction = SPI_Direction_1Line_Tx;
spi2.SPI_DataSize = SPI_DataSize_8b;
spi2.SPI_CPOL = SPI_CPOL_High;
spi2.SPI_CPHA = SPI_CPHA_1Edge;
spi2.SPI_FirstBit = SPI_FirstBit_LSB;
spi2.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8;
spi2.SPI_Mode = SPI_Mode_Master;

SPI_Init(SPI2, &spi2);


// enable the SPI2
SPI_Cmd(SPI2, ENABLE);

// sending the data
while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET);
SPI_I2S_SendData(SPI2, (uint8_t)d0);



while (1)
{}
}



проблема такая, когда проверяю ножку пина PB15, то вижу клок в 5.25МГц, что вобщемто и должно быть т.к. я прескалер поставил _8.
Но на ножке PB15, с момента запуска платы никаких данных не постыпает.
SPIМне кажется сам модуль SPI вроде как сконфигурирован, но какая то проблема с посыланием данных, я сам взял это с какого то примера. Сам код отвечающий за посылку данных выделен.
// sending the data
while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET);
SPI_I2S_SendData(SPI2, (uint8_t)d0);



я просто жду пока Тх буффер будет свободен, и заливаю туда байт.

Но в чем же причина, почему я не вижу активности на пине MOSI? (PB15)

Сообщение отредактировал IgorKossak - Jun 8 2012, 06:37
Причина редактирования: [codebox] для длинного кода!!!


--------------------
Нажми на кнопку - получишь результат, и твоя мечта осуществится
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- BlackOps   Как заставить SPI работать (stm32f4Discovery)   Jun 8 2012, 04:13
- - adnega   Может битик SYSCFGEN в RCC_APB2ENR взвести?   Jun 8 2012, 04:30
- - AHTOXA   Цитата(BlackOps @ Jun 8 2012, 10:13) Но в...   Jun 8 2012, 05:14
|- - adnega   Цитата(AHTOXA @ Jun 8 2012, 09:14) Вы заб...   Jun 8 2012, 05:20
|- - BlackOps   Цитата(AHTOXA @ Jun 8 2012, 10:14) Вы заб...   Jun 8 2012, 05:26
|- - AHTOXA   Пардон, я не разглядел, что речь идёт о F4. Там эт...   Jun 8 2012, 05:38
- - BlackOps   ну тогда в чем же еще может там быть проблема? я с...   Jun 8 2012, 05:44
|- - AHTOXA   Да вроде нормально всё. Попробуйте задать spi2.SPI...   Jun 8 2012, 06:06
- - BlackOps   попробовал. не помогло. мало того да и пин PB13 да...   Jun 8 2012, 06:08
- - BlackOps   что еще может быть? может данные как то по другому...   Jun 8 2012, 07:33
|- - AHTOXA   Данные вы отправляете правильно. Попробуйте ещё по...   Jun 8 2012, 07:40
- - Gunner   QUOTE (BlackOps @ Jun 8 2012, 07:13) конф...   Jun 8 2012, 08:41
- - BlackOps   т.е. сконфигурировать NSS и подать на него Vdd?   Jun 8 2012, 09:05
|- - Gunner   QUOTE (BlackOps @ Jun 8 2012, 12:05) т.е....   Jun 8 2012, 09:23
- - BlackOps   сделал. не сработало. вот что получаю: пин MOSI п...   Jun 8 2012, 09:36
- - adnega   У меня работает в режиме Мастер при такой конфигур...   Jun 8 2012, 09:43
- - BlackOps   ну хоть дернулся пин PB15! какой то сдвиг, где...   Jun 8 2012, 09:51
- - BlackOps   Вобщем получилось наконец-то завести SPI2. Кстати...   Jun 11 2012, 00:29


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 03:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01321 секунд с 7
ELECTRONIX ©2004-2016