14.08.2011, 13:12
|
|
Частый гость
Регистрация: 05.03.2011
Сообщений: 36
Сказал спасибо: 7
Сказали Спасибо 19 раз(а) в 19 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Кто пишет с библиотеками ,скажите плиз, как понять тот факт что если при частоте SYSCLK 72 МГц на ADC1 c помощью функции RCC_ADCCLKConfig() можно задавать прескалер, но если убрать эту функцию ничего не меняется т.е шарашет 72 МГц O_o на ADC1 хотя разрешено 14 max?
|
|
|
|
14.08.2011, 13:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.02.2008
Сообщений: 1,808
Сказал спасибо: 124
Сказали Спасибо 604 раз(а) в 421 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
SYSTICK может тактироваться от HCLK/8 или HCLK.
|
|
|
Сказали "Спасибо" andries5
|
|
|
14.08.2011, 13:44
|
|
Прописка
Регистрация: 10.08.2010
Сообщений: 113
Сказал спасибо: 30
Сказали Спасибо 43 раз(а) в 26 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Начинаю изучать STM32. Использую плату Discovery и IAR.
Хочу генерировать частоту на выходе PB7 (альтернативная функция TIM17_CH1N).
Написал следующий код:
Код:
|
// настраиваю порт
RCC-›APB2ENR|= RCC_APB2ENR_IOPBEN;
GPIOB-›CRL |= GPIO_CRL_MODE7_1; // PB7 - выход
GPIOB-›CRL &=~GPIO_CRL_CNF7;
GPIOB-›CRL |=GPIO_CRL_CNF7_1; // PB7 - альтернативная функция выхода
// настраиваю таймер 17
RCC-›APB2ENR |= RCC_APB2ENR_TIM17EN;
TIM17-›PSC = 2048 - 1; // устанавливаю делитель
TIM17-›ARR = 1024; // устанавливаю до скольки будет считать
// устанавливаю режим работы
// ШИМ, режим 1, обычный (пока значение в CCR1‹CNT, на выходе 1, иначе 0)
TIM17-›CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1
// заношу значение в регистр сравнения
TIM17-›CCR1 = 255;
// разрешаю работу выхода TIM17_CH1N
TIM17-›CCER |= TIM_CCER_CC1NE;
// включаю счетчик с перезагрузкой по достижение значения в ARR
TIM17-›CR1 |= TIM_CR1_CEN | TIM_CR1_ARPE; |
В результате на выходе PB7 ничего не получаю.
Используя STM Studio вижу что таймер работает, в регистре CNT изменяются данные и он перезагружается при достижении 1024.
Подскажите где ошибка?
|
|
|
|
14.08.2011, 16:13
|
|
Частый гость
Регистрация: 05.03.2011
Сообщений: 36
Сказал спасибо: 7
Сказали Спасибо 19 раз(а) в 19 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
avs2009 А SYSCLK какая?
|
|
|
|
14.08.2011, 16:27
|
|
Прописка
Регистрация: 10.08.2010
Сообщений: 113
Сказал спасибо: 30
Сказали Спасибо 43 раз(а) в 26 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Цитата:
|
avs2009 А SYSCLK какая?
|
24 МГц
в system_stm32f10x.c установил:
#define SYSCLK_FREQ_24MHz 24000000
|
|
|
|
14.08.2011, 17:55
|
|
Частый гость
Регистрация: 05.03.2011
Сообщений: 36
Сказал спасибо: 7
Сказали Спасибо 19 раз(а) в 19 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
[B]avs2009[/B попробуй через пример PWM_Output т.е. с библиотеками он работает
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
uint16_t CCR1_Val = 333;
uint16_t CCR2_Val = 249;
uint16_t CCR3_Val = 166;
uint16_t CCR4_Val = 83;
uint16_t PrescalerValue = 0;
void RCC_Configuration(void);
void GPIO_Configuration(void);
int main(void)
{
/* System Clocks Configuration */
RCC_Configuration();
/* GPIO Configuration */
GPIO_Configuration();
-----------------------------------------------------------------------
TIM3 Configuration: generate 4 PWM signals with 4 different duty cycles:
The TIM3CLK frequency is set to SystemCoreClock (Hz), to get TIM3 counter
clock at 24 MHz the Prescaler is computed as following:
- Prescaler = (TIM3CLK / TIM3 counter clock) - 1
SystemCoreClock is set to 72 MHz for Low-density, Medium-density, High-density
and Connectivity line devices and to 24 MHz for Low-Density Value line and
Medium-Density Value line devices
The TIM3 is running at 36 KHz: TIM3 Frequency = TIM3 counter clock/(ARR + 1)
= 24 MHz / 666 = 36 KHz
TIM3 Channel1 duty cycle = (TIM3_CCR1/ TIM3_ARR)* 100 = 50%
TIM3 Channel2 duty cycle = (TIM3_CCR2/ TIM3_ARR)* 100 = 37.5%
TIM3 Channel3 duty cycle = (TIM3_CCR3/ TIM3_ARR)* 100 = 25%
TIM3 Channel4 duty cycle = (TIM3_CCR4/ TIM3_ARR)* 100 = 12.5%
----------------------------------------------------------------------- */
/* Compute the prescaler value */
PrescalerValue = (uint16_t) (SystemCoreClock / 24000000) - 1;
/* Time base configuration */
TIM_TimeBaseStructure.TIM_Period = 665;
TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
/* PWM1 Mode configuration: Channel1 */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = CCR1_Val;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC1Init(TIM3, &TIM_OCInitStructure);
TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);
/* PWM1 Mode configuration: Channel2 */
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = CCR2_Val;
TIM_OC2Init(TIM3, &TIM_OCInitStructure);
TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);
/* PWM1 Mode configuration: Channel3 */
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = CCR3_Val;
TIM_OC3Init(TIM3, &TIM_OCInitStructure);
TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable);
/* PWM1 Mode configuration: Channel4 */
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = CCR4_Val;
TIM_OC4Init(TIM3, &TIM_OCInitStructure);
TIM_OC4PreloadConfig(TIM3, TIM_OCPreload_Enable);
TIM_ARRPreloadConfig(TIM3, ENABLE);
/* TIM3 enable counter */
TIM_Cmd(TIM3, ENABLE);
while (1)
{}
}
/**
* @brief Configures the different system clocks.
* @param None
* @retval None
*/
void RCC_Configuration(void)
{
/* TIM3 clock enable */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
/* GPIOA and GPIOB clock enable */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE);
}
/**
* @brief Configure the TIM3 Ouput Channels.
* @param None
* @retval None
*/
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
#ifdef STM32F10X_CL
/*GPIOB Configuration: TIM3 channel1, 2, 3 and 4 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE);
#else
/* GPIOA Configuration:TIM3 Channel1, 2, 3 and 4 as alternate function push-pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
GPIO_Init(GPIOB, &GPIO_InitStructure);
#endif
}
|
|
|
|
14.08.2011, 23:24
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Скажите, где STM32 купить с доставкой в ближнее зарубежье? У нас цены от 4 евро начинаются. Жена добро не дала на разбазаривание семейного бюджета ))
|
|
|
|
15.08.2011, 00:14
|
|
Частый гость
Регистрация: 22.09.2005
Адрес: Россия Ставрополь
Сообщений: 36
Сказал спасибо: 11
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Попробуйте в Элитане купить, постоянно там затариваюсь.
|
|
|
|
15.08.2011, 00:55
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Keldish
|
Попробуйте в Элитане купить, постоянно там затариваюсь.
|
50р выходит камушек. Я за 23 видел.
|
|
|
|
15.08.2011, 11:34
|
|
Гражданин KAZUS.RU
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Easyrider83
|
50р выходит камушек. Я за 23 видел.
|
Это где они по 23 обитают? Наверное крупный опт?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:10.
|
|