Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Микроконтроллеры других производителей

Микроконтроллеры других производителей Все, что касается микроконтроллеров и НЕ подошло в раздел Microchip.

 
 
Опции темы Опции просмотра
Prev Предыдущее сообщение   Следующее сообщение Next
Старый 28.04.2011, 17:23   #1
123kill12
Junior Member
 
Регистрация: 07.04.2011
Возраст: 29
Сообщений: 12
Вес репутации: 100/26
123kill12 will become famous soon enough123kill12 will become famous soon enough
По умолчанию STM32F103 SPI1. осцильником не видно нечего.

использую простой код.
Код:
void SPI_init(void)
{
  // Òàêòèðîâàíèå àëüòåðíàòèâíûõ ôóíêöèé GPIO.
  RCC->APB2ENR  |= RCC_APB2ENR_AFIOEN; 
  //âêëþ÷åíèå òàêòèðîâàíèÿ SPI1
  RCC->APB2ENR  |= RCC_APB2ENR_SPI1EN;
  
  //íàñòðîéêà âûâîäîâ 
  //NSS -PA4  -out
  GPIOB->CRL |=GPIO_CRL_MODE4;//áûò ÿâëÿåòñÿ âûõîäíûì ñ ÷àñòîòîé ïåðåêëþ÷åíèÿ 50 MHz
  GPIOB->CRL &=~GPIO_CRL_CNF4;
  GPIOB->CRL |=GPIO_CRL_CNF4_1;
  //CLK -PA5  -out
  GPIOB->CRL |=GPIO_CRL_MODE5;//áûò ÿâëÿåòñÿ âûõîäíûì ñ ÷àñòîòîé ïåðåêëþ÷åíèÿ 50 MHz
  GPIOB->CRL &=~GPIO_CRL_CNF5;
  GPIOB->CRL |=GPIO_CRL_CNF5_1;
  //MISO -PA6 -in
  GPIOB->CRL &=~GPIO_CRL_MODE6;
  GPIOB->CRL &=~GPIO_CRL_CNF6;
  GPIOB->CRL |=GPIO_CRL_CNF6_1;
  //MOSI -PA7 -out
  GPIOB->CRL |=GPIO_CRL_MODE7;//áûò ÿâëÿåòñÿ âûõîäíûì ñ ÷àñòîòîé ïåðåêëþ÷åíèÿ 50 MHz
  GPIOB->CRL &=~GPIO_CRL_CNF7;
  GPIOB->CRL |=GPIO_CRL_CNF7_1;
  
  //íàñòðàèâàåì àëüòåíðíàòèâíûå ôóíêöèè ââîäîâ
  AFIO->MAPR &=~AFIO_MAPR_SPI1_REMAP;
  
  //buard detect
  SPI1->CR1&=~SPI_CR1_BR_0;
  SPI1->CR1&=~SPI_CR1_BR_1;
  SPI1->CR1&=~SPI_CR1_BR_2;
  //CHOL=1
  SPI1->CR1|=SPI_CR1_CPOL;
  //CPHA=1  
  SPI1->CR1|=SPI_CR1_CPHA;
  //DFF
  SPI1->CR1&=~SPI_CR1_DFF;
  //íàïðàâëåíèå ñäâèãà
  SPI1->CR1&=~SPI_CR1_LSBFIRST;
  //óïðàâëåíèå íîãîé NSS
  SPI1->CR1&=~SPI_CR1_SSM;
  SPI1->CR2|=SPI_CR2_SSOE;
  //âèä óñòðîéñòâà ìàñòåð
  SPI1->CR1|=SPI_CR1_MSTR;
  
  //ðàçðåøàåì ïðåðûâàíèÿ ïî ïðèåìó è ïåðåäà÷è
  //SPI1->CR2|=SPI_CR2_TXEIE;
  //SPI1->CR2|=SPI_CR2_RXNEIE;
  
  //NVIC->ISER[1] |= ena_SPI1; // Ðàçðåøèòü ïðåðûâàíèå SPI1_IRQn â NVIC.   
  //çàïóñê SPI
  SPI1->CR1|=SPI_CR1_SPE;
}
Код:
void main(void)
{  
   //èíèöèëèçàöèÿ ÷àñòîòû ðàáîòû 
   SystemInit();
   RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
   RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;
   RCC->APB2ENR |= RCC_APB2ENR_IOPCEN;
 
   SPI_init();
   SPI1->DR=0x45;
   while(1)
   {
	 tmp=SPI1->SR;
	 if((tmp&0x80) == SPI_SR_BSY)
	 {
		tmp=SPI1->SR;
	 }
	 else
	 {
		//++++++++++
		tmp=SPI1->DR;
		tmp=SPI1->SR;
		//++++++++++
		SPI1->DR=0x45;
		tmp=SPI1->SR;
	 }
   }
статусный регистр меняется правильно. когда я передаю. в нем стоит 0х80. мониторю флаг BSY. если его нет то считываю статусный регистр. где уже 0x03. вижу что новые данные пришли. хотя я нечего и не принимаю. он так работает. если из регистра выталкивается то что то в него заталкивается. (странно то что при приеме получаю FE). снова смотрю статус там уже 0х02. записываю новые данные и в статусном снова 0х80.

но осцильником хочу посмотреть частоту и нечего(((( смотрел и другие пины. там тоже пусто.
123kill12 вне форума   Ответить с цитированием
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что за зверь - Скатерограмма Edua Общетехнические вопросы 17 01.03.2013 23:33
Алгоритм Герцеля. Mario Продукция MICROCHIP 45 08.12.2009 15:53
Нужна ли МК ОС? syv Инструментарий 179 22.01.2009 10:59
Макимальная частота прерываний от TMR0 ANH Продукция MICROCHIP 114 05.04.2008 00:50
Нужна прошивка на PIC16F877 для бегущей строки!!! VanoMC Продукция MICROCHIP 12 13.04.2007 11:06


Часовой пояс GMT +3, время: 16:03.


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