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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Альтернативная функция выхода TIM1 STM32F303
domowoj
сообщение Dec 5 2014, 18:40
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Здравствуйте форумчане.

Не могу понять, почему не получается подключить выход
TIM1_CH1N на PA11, причем на выход PA7 тот же канал таймера работает.
Что-то делаю не так...?
Кусок кода инициализации:
Код
    RCC->AHBENR |= RCC_AHBENR_GPIOAEN;    
    RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN;
    RCC->APB2ENR |= RCC_APB2ENR_TIM1EN;

        GPIOA->MODER |= GPIO_MODER_MODER11_1;    //PA11 - output AF
        GPIOA->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR11;    //PA11 - 40MHz
        //GPIOA->AFR[0] |= 0x060000000;                //PA7 - AF6 (TIM1_CH1N)    
        GPIOA->AFR[1] |= 0x06000;                //PA11 - AF6 (TIM1_CH1N)




Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
1113
сообщение Dec 5 2014, 19:04
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 24-02-06
Из: Москва
Пользователь №: 14 658



а что за корпус?
Go to the top of the page
 
+Quote Post
domowoj
сообщение Dec 5 2014, 20:00
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



STM32F303VCT6
100 ног.


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Dec 5 2014, 20:14
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(domowoj @ Dec 5 2014, 20:40) *
Здравствуйте форумчане.

Не могу понять, почему не получается подключить выход
TIM1_CH1N на PA11, причем на выход PA7 тот же канал таймера работает.
Что-то делаю не так...?
Кусок кода инициализации:
Код
    RCC->AHBENR |= RCC_AHBENR_GPIOAEN;    
    RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN;
    RCC->APB2ENR |= RCC_APB2ENR_TIM1EN;

        GPIOA->MODER |= GPIO_MODER_MODER11_1;    //PA11 - output AF
        GPIOA->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR11;    //PA11 - 40MHz
        //GPIOA->AFR[0] |= 0x060000000;                //PA7 - AF6 (TIM1_CH1N)    
        GPIOA->AFR[1] |= 0x06000;                //PA11 - AF6 (TIM1_CH1N)

А почему в первом случае 0x060000000, а во втором 0x06000?
Go to the top of the page
 
+Quote Post
1113
сообщение Dec 5 2014, 20:20
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 24-02-06
Из: Москва
Пользователь №: 14 658



AFR[1]
вот это верно?
Go to the top of the page
 
+Quote Post
domowoj
сообщение Dec 5 2014, 20:34
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Цитата(KnightIgor @ Dec 6 2014, 02:14) *
А почему в первом случае 0x060000000, а во втором 0x06000?
К разным выводам подключаю CH1N.
Цитата
AFR[1]
вот это верно?
наверно


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
adnega
сообщение Dec 5 2014, 21:01
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Опять эти опасные "|="...
А если просто через "=" попробовать?
Go to the top of the page
 
+Quote Post
domowoj
сообщение Dec 5 2014, 21:08
Сообщение #8


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Цитата(adnega @ Dec 6 2014, 03:01) *
Опять эти опасные "|="...
А если просто через "=" попробовать?
Пробовал, не помогло.


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
adnega
сообщение Dec 5 2014, 21:34
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



А в чем заключается невозможность подключения?
Отсутствие ШИМ на выходе? Постоянный уровень? ШИМ от других таймеров на PA11 выводится? USB не включали? GPIO на данной ноге работает?
Go to the top of the page
 
+Quote Post
Tanya
сообщение Dec 6 2014, 06:45
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(domowoj @ Dec 6 2014, 00:08) *
Пробовал, не помогло.

Попросить CUBE все сделать не пробовали?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 6 2014, 07:38
Сообщение #11


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



А может просто снаружи замыкание мешает пошевелить ногой?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
domowoj
сообщение Dec 6 2014, 08:11
Сообщение #12


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



С CUBE до конца еще разбираться надо,
но за наводку спасибо.
Хотя, по моему , я что-то делаю не так,
потому что другие счетчики(TIM2,3,4) не хотят подключаться
к портам с номером выше 7,
т.е. когда применяю конструкцию: "GPIOх->AFR[0] |=" - все работает,

если: "GPIOх->AFR[1] |=" - не работает.

Вот кусок скриншота из отладчика

Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
1113
сообщение Dec 6 2014, 08:29
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 24-02-06
Из: Москва
Пользователь №: 14 658



и что не работает? код ведь одинаковый
Цитата(domowoj @ Dec 6 2014, 11:11) *
С CUBE до конца еще разбираться надо
могу сгенерить самый простой проект с этим выводом. какая у вас среда?
Go to the top of the page
 
+Quote Post
domowoj
сообщение Dec 6 2014, 08:45
Сообщение #14


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Цитата(1113 @ Dec 6 2014, 14:29) *
и что не работает? код ведь одинаковыймогу сгенерить самый простой проект с этим выводом. какая у вас среда?

MDK 4.74
отладочная плата STM32F3DISCOVERY,
мне нужно подключить канал CH1N TIM1
к выходу PA11.

Попробую сейчас просто подрыгать ножкой.


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
1113
сообщение Dec 6 2014, 08:47
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 24-02-06
Из: Москва
Пользователь №: 14 658



почту ещё свою дайте

на этой плате на PA11 - USB
Go to the top of the page
 
+Quote Post
domowoj
сообщение Dec 6 2014, 09:03
Сообщение #16


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Цитата(1113 @ Dec 6 2014, 14:47) *
на этой плате на PA11 - USB

Может поэтому и не работает?


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
1113
сообщение Dec 6 2014, 09:09
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 24-02-06
Из: Москва
Пользователь №: 14 658



Цитата(domowoj @ Dec 6 2014, 12:03) *
Может поэтому и не работает?
просто через резистор 22 Ом подключено к разъёму USB. если не подключать USB - влиять не должно. дайте почту...


вот, всё стандартно:
Код
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
{

  GPIO_InitTypeDef GPIO_InitStruct;
  if(htim_base->Instance==TIM1)
  {
  /* USER CODE BEGIN TIM1_MspInit 0 */

  /* USER CODE END TIM1_MspInit 0 */
    /* Peripheral clock enable */
    __TIM1_CLK_ENABLE();
  
    /**TIM1 GPIO Configuration    
    PA11     ------> TIM1_CH1N
    */
    GPIO_InitStruct.Pin = GPIO_PIN_11;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
    GPIO_InitStruct.Alternate = GPIO_AF6_TIM1;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

  /* USER CODE BEGIN TIM1_MspInit 1 */

  /* USER CODE END TIM1_MspInit 1 */
  }

}
Go to the top of the page
 
+Quote Post
domowoj
сообщение Dec 6 2014, 13:23
Сообщение #18


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Спасибо.
У меня то же самое почти.
Вот начало этой строки не совсем понятно.
Код
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
1113
сообщение Dec 6 2014, 13:27
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 24-02-06
Из: Москва
Пользователь №: 14 658



и что не понятно? заполняется структура и передаётся в функцию HAL_GPIO_Init. при этом указывается что заполнять надо порт GPIOA.
изучите эту процедуру и поймёте что вы настраиваете не так.

проект заработал? есть генерация, или у вас pin`ы пробило?
Go to the top of the page
 
+Quote Post
domowoj
сообщение Dec 6 2014, 16:54
Сообщение #20


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Ларчик просто открывался!
На плате вывод процессора PA11 на внешний разъем-гребёнку
идет через перемычку SB22 которая не установлена.
Как говорится - учите матчасть!


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
scifi
сообщение Dec 6 2014, 21:29
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Семён Семёныч!
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 23:56
Рейтинг@Mail.ru


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