Фрикер Клуб

Фрикер Клуб (https://phreakerclub.com/forum/index.php)
-   Микроконтроллеры (https://phreakerclub.com/forum/forumdisplay.php?f=3)
-   -   STM32F103C8T6 Тактирование и таймеры (https://phreakerclub.com/forum/showthread.php?t=1911)

Бурый 18.08.2015 23:26

STM32F103C8T6 Тактирование и таймеры
 
Вложений: 1
Пипол кто работал с данным ARM (Cortex M3), нужен совет. У меня плата с кварцем на 8MHz.

При настройки и инициализации базового таймера TIM2 возникла проблемы с его работой. Снял с ноги что дергает данный таймер временную характеристику, получается совсем то что хотелось бы. Настроил тактирование на внешний кварц HSE. Необходимо чтобы один тик таймера был 1мкс, а сейчас 14.6250мкс.

Скидываю проект (пишу в CoIDE 1.7.7) и картинку с анализатора (то что подсветчено и есть время одного тика).

Код:

#include "stm32f10x_rcc.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_tim.h"
#include "stm32f10x_conf.h"

void InitTMI(void)
{
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
        TIM2->CR1=(1<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(0<<1);
        TIM2->ARR=5+1;
        TIM2->PSC=7+1;
        TIM2->CR1|=(1<<0);
}

int main(void)
{
        RCC->CR=RCC_HSE_ON;
        while (!(RCC->CR & RCC_CR_HSERDY)) {}; // Ожидание готовности HSE.
        RCC->CFGR &=~RCC_CFGR_SW; // Очистить биты SW0, SW1.
        RCC->CFGR |= RCC_CFGR_SW_HSE; // Выбрать HSE для тактирования SW0=1.


        GPIO_InitTypeDef gpioA;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
        gpioA.GPIO_Mode=GPIO_Mode_Out_PP;
        gpioA.GPIO_Speed=GPIO_Speed_2MHz;
        gpioA.GPIO_Pin=GPIO_Pin_1;
        GPIO_Init(GPIOA,&gpioA);
        InitTMI();

    while(1)
    {
            if(TIM2->CNT==1){GPIO_ResetBits(GPIOA,GPIO_Pin_1);}
            if(TIM2->CNT==2){GPIO_SetBits(GPIOA,GPIO_Pin_1);}
    }
}


leech001 09.01.2020 10:37

Re: STM32F103C8T6 Тактирование и таймеры
 
Хорошая статья про таймеры https://istarik.ru/blog/stm32/118.html

EPA 09.01.2020 17:12

Re: STM32F103C8T6 Тактирование и таймеры
 
Чтоб по быстрому и безболезненно "вкурить" в аппаратные настройки stm32 попробуй среду STM32CubeMX, потом уже перенесёшь в свою среду разработку одним щелчком мышки. .

Бурый 10.01.2020 08:44

Re: STM32F103C8T6 Тактирование и таймеры
 
EPA, дорогой друг, пост этот 2015г.)))) с того времени все изменилось - разобрался! А вы leech001 некропостер!

leech001 10.01.2020 14:53

Re: STM32F103C8T6 Тактирование и таймеры
 
Цитата:

Сообщение от Бурый (Сообщение 58886)
EPA, дорогой друг, пост этот 2015г.)))) с того времени все изменилось - разобрался! А вы leech001 некропостер!

Ну извините, смотрю вопрос открытый висит решил немного помочь. И сразу стал "некропостером":D

EPA 10.01.2020 18:47

Re: STM32F103C8T6 Тактирование и таймеры
 
Цитата:

Сообщение от Бурый (Сообщение 58886)
EPA, дорогой друг, пост этот 2015г.)))) с того времени все изменилось - разобрался! А вы leech001 некропостер!

А этот вопрос всяко-разно актуальный. Хотя на дату внимание не обратил.

Добавлено через 6 минут
Цитата:

Сообщение от leech001 (Сообщение 58890)
Ну извините, смотрю вопрос открытый висит решил немного помочь. И сразу стал "некропостером":D

Брат, усё пучком. Правильно, что дал ссылку, хотя ИМХО детская статья. Ну это моё субъективное мнение, ибо STM ну никак не для новичков. А бывалым надо посерьёзней статейку.


Текущее время: 12:35. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot
(C) www.phreakerclub.com