Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32 и TIM3
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Jenya7
Этот код прекрасно работает на STM32F103RB (64 PIN).
CODE
void Tim3Init(void) //ir signal capture
{
//PA6 -TIM3_CH1,PB0-TIM3_CH3,PB1-TIM3_CH4

NVIC_SetPriority(TIM3_IRQn, 1);
NVIC_EnableIRQ(TIM3_IRQn);

RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;
//INPUT TI1
//Active input selection. "01" in CC1S -> tie TIM3_CCR1 to input TI1
TIM3->CCMR1 |= TIM_CCMR1_CC1S_0;
//filter - 4 ticks. IC1F = 0010.
TIM3->CCMR1 |= TIM_CCMR1_IC1F_1;
//falling edge triggers capture
TIM3->CCER |= TIM_CCER_CC1P;
//input signal prescaler off
TIM3->CCMR1 &= ~TIM_CCMR1_IC1PSC;
//Enable capture from the counter into the capture register
TIM3->CCER |= TIM_CCER_CC1E;
//capture/compare chan 1 interrupt enable
TIM3->DIER |= TIM_DIER_CC1IE;

TIM3->PSC = 72 - 1; //1us
TIM3->ARR = 0xFFFE; //reload

TIM3->CR1 |= TIM_CR1_CEN;
}


На 100 пиновом камне STM32F103VB этот код не работает, хотя та же нога посажена на PA6 – TIM3 CH1.
Пишу на IAR. В чем может быть проблема?
AHTOXA
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_AFIOEN; не забыли?
Jenya7
Цитата(AHTOXA @ Jun 23 2014, 11:59) *
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_AFIOEN; не забыли?


Не забыл. У меня для этого есть функция.

Код
void PeriphClockInit(void)
{
  RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;   //GPIO portA clocking
  RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;   //GPIO portB clocking
  RCC->APB2ENR |= RCC_APB2ENR_IOPCEN;   //GPIO portC clocking
  RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;   //GPIO alternate functions clocking
}
ViKo
Посмотрите спецификацию (datasheet), таблицу определения ножек, примечание 8. Может, оно?
Jenya7
Цитата(ViKo @ Jun 23 2014, 13:48) *
Посмотрите спецификацию (datasheet), таблицу определения ножек, примечание 8. Может, оно?


честно говоря там не совсем понятно:
Код
PA6 - SPI1_MISO(9)/ADC12_IN6/TIM3_CH1(9)
(9) This alternate function can be remapped by software to some other port pins (if available on the used package). For more
details, refer to the Alternate function I/O and debug configuration section in the STM32F10xxx reference manual, available
from the STMicroelectronics website: www.st.com.


по дефолту, как я понимаю выбирается опция TIM3_CH1, так как я никакой ремапинг не делаю на STM32F103RB. в любом случае я пробовал играться битами ремапинга для TIM3 на STM32F103VB - ничего не получилось. может другие алтернативные функции (SPI1_MISO(9)/ADC12_IN6) на этом пине мешают?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.