Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 16.05.2014, 17:47  
bass1981
Гражданин KAZUS.RU
 
Регистрация: 01.09.2007
Сообщений: 898
Сказал спасибо: 278
Сказали Спасибо 57 раз(а) в 54 сообщении(ях)
bass1981 на пути к лучшему
По умолчанию SPI2 на STM32f415

Доброго времени суток.
Не могу запустить SPI2 на мк STM32f415.... зависает на функции отправки. Может глаза замылились... Не могу разобраться в чем дело.
Код:
void SPI2_init(void)
  {
    
   
//	 RCC-›AHB1ENR |=RCC_AHB1ENR_GPIOAEN ;
    RCC-›APB1ENR |=RCC_APB1ENR_SPI2EN ;    
    RCC-›AHB1ENR |=RCC_AHB1ENR_GPIOBEN;    //GPIOB c
    
    GPIOB-›MODER &= ~
                   (GPIO_MODER_MODER12 |
                   GPIO_MODER_MODER13 | 
                   GPIO_MODER_MODER14 | 
                   GPIO_MODER_MODER15 
                                      );
    
   GPIOB-›MODER |= 
                   GPIO_MODER_MODER12_0 |
                   GPIO_MODER_MODER13_1 | 
                   GPIO_MODER_MODER14_1 | 
                   GPIO_MODER_MODER15_1
                                      ;
    
    
   GPIOB-›OTYPER &= ~
                    (GPIO_OTYPER_OT_12 | 
                     GPIO_OTYPER_OT_13 | 
                     GPIO_OTYPER_OT_14 |
                     GPIO_OTYPER_OT_15
                                      );
   GPIOB-›OSPEEDR &= ~
                    (GPIO_OSPEEDER_OSPEEDR12 | 
                    GPIO_OSPEEDER_OSPEEDR13 | 
                    GPIO_OSPEEDER_OSPEEDR14 | 
                    GPIO_OSPEEDER_OSPEEDR15
                                              );
                                              
   GPIOB-›OSPEEDR |= 
                    GPIO_OSPEEDER_OSPEEDR12_0 | 
                    GPIO_OSPEEDER_OSPEEDR13_0 | 
                    GPIO_OSPEEDER_OSPEEDR14_0 | 
                    GPIO_OSPEEDER_OSPEEDR15_0
                                              ;
    
    
   GPIOB-›PUPDR &= ~
                     (GPIO_PUPDR_PUPDR12 | 
                      GPIO_PUPDR_PUPDR13 |
                      GPIO_PUPDR_PUPDR14 |
                      GPIO_PUPDR_PUPDR15);
   
   //10 2
   
   GPIOB-›AFR[1] |= (5 ‹‹ 4*5) | (5 ‹‹ 4*6) | (5 ‹‹ 4*7);//включаем ольтернативную функцию 5 на порты 13 14 15.. 
     	SPI2-›CR1 |= 
						 SPI_CR1_BR_0 |     // 
						 SPI_CR1_BR_1 | 
						 SPI_CR1_BR_2 | 
						 SPI_CR1_MSTR |
						 SPI_CR1_SSI 	|				 
						 SPI_CR1_SSM 
						 ;	
	
	SPI2-›CR1 |= SPI_CR1_SPE;
	
  NVIC_SetPriority (SPI2_IRQn, 8); 
  NVIC_EnableIRQ(SPI2_IRQn);   	
}
uint8_t SPI2_send(uint8_t data)
{
   SPI1-›DR=data;
   while(!(SPI2-›SR & SPI_SR_RXNE)){}
        
   return SPI2-›DR;	
      
}
Может кто заметит ошибку.

Заранее спасибо.
Реклама:
bass1981 вне форума  
Непрочитано 16.05.2014, 18:15  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: SPI2 на STM32f415

страшно лень копать, по предположу что зависает на неопределенной функции IRQ_SPI
еще вопрос: SPI1-›DR=data; ???
imho

Последний раз редактировалось Hives; 16.05.2014 в 18:17.
Hives вне форума  
Сказали "Спасибо" Hives
bass1981 (17.05.2014)
Непрочитано 16.05.2014, 18:17  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,528
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: SPI2 на STM32f415

Сообщение от bass1981 Посмотреть сообщение
uint8_t SPI2_send(uint8_t data)
{
SPI1-›DR=data;
while(!(SPI2-›SR & SPI_SR_RXNE)){}
return SPI2-›DR;
}
_______________
realid вне форума  
Сказали "Спасибо" realid
bass1981 (16.05.2014)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Keil 5 QuickStart с STM32F415 bass1981 ARM 137 22.05.2016 19:26
Тактирование для DFU-режима STM32F415 bass1981 ARM 1 15.10.2013 07:20


Часовой пояс GMT +4, время: 08:39.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot