![]() |
![]() |
#1 |
Резидент клуба
Регистрация: 05.01.2014
Сообщений: 508
|
![]()
Пипол кто работал с данным 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);} } } |
![]() |
![]() |
![]() |
#2 |
Гость клуба
Регистрация: 13.08.2017
Сообщений: 8
|
![]()
Хорошая статья про таймеры https://istarik.ru/blog/stm32/118.html
|
![]() |
![]() |
![]() |
#3 |
Супер Модератор
Регистрация: 01.11.2016
Сообщений: 1,324
|
![]()
Чтоб по быстрому и безболезненно "вкурить" в аппаратные настройки stm32 попробуй среду STM32CubeMX, потом уже перенесёшь в свою среду разработку одним щелчком мышки. .
|
![]() |
![]() |
![]() |
#4 |
Резидент клуба
Регистрация: 05.01.2014
Сообщений: 508
|
![]()
EPA, дорогой друг, пост этот 2015г.)))) с того времени все изменилось - разобрался! А вы leech001 некропостер!
__________________
Планировалось сделать "устройство"...и снова получились часы. Бой курантов тревожит двор) |
![]() |
![]() |
![]() |
#5 | |||||||||||||||||||||||
Гость клуба
Регистрация: 13.08.2017
Сообщений: 8
|
![]()
Ну извините, смотрю вопрос открытый висит решил немного помочь. И сразу стал "некропостером" ![]() |
|||||||||||||||||||||||
![]() |
![]() |
![]() |
#6 | ||||||||||||||||||||||||||||||||||||||||||||||
Супер Модератор
Регистрация: 01.11.2016
Сообщений: 1,324
|
![]()
А этот вопрос всяко-разно актуальный. Хотя на дату внимание не обратил. Добавлено через 6 минут
Брат, усё пучком. Правильно, что дал ссылку, хотя ИМХО детская статья. Ну это моё субъективное мнение, ибо STM ну никак не для новичков. А бывалым надо посерьёзней статейку. |
||||||||||||||||||||||||||||||||||||||||||||||
![]() |
![]() |