Форум
http://eugenemcu.ru/forum/
ФорумTue, 10 Jan 2012 03:12:46 GMTuCoz Web-ServiceФормирование сигналов с изменяемой длительностью импульсов
http://eugenemcu.ru/forum/10-26-1
Tue, 10 Jan 2012 03:12:46 GMTФорум: <a href="http://eugenemcu.ru/forum/10">STM32</a><br />Автор темы: igorgis<br />Автор последнего сообщения: EugenyAM<br />Количество ответов: 1Для управления устройством необходимо формировать signal1.gif. Картинка в аттаче. <br /> Частота модуляции около 100кГц. 0 или 1 определяется длительностью импульса. <br /> К сожалению, я не имею большого опыта работы с STM32. <br /> Подскажите, пожалуйста, как лучше реализовать формирование такого сигнала.STM32igorgishttp://eugenemcu.ru/forum/10-26-1STM32VL Discovery (STM32F100xB)
http://eugenemcu.ru/forum/10-20-1
Wed, 19 Oct 2011 10:45:53 GMTФорум: <a href="http://eugenemcu.ru/forum/10">STM32</a><br />Описание темы: Начинающий<br />Автор темы: Lemah<br />Автор последнего сообщения: eugenemcu<br />Количество ответов: 3Здравствуйте, я начинающий в области программирования микроконтроллеров, приобрел недавно по указанию преподавателя в институте (STM32VLD) <br /> с лампочками набаловался... но дело дошло до того что хочется поиграться с остальными его возможностями, но в основном это с потоками ввода вывода. языком Си вроде как владею нормально, посоветуйте с чего мне начать?STM32Lemahhttp://eugenemcu.ru/forum/10-20-1Прерывания таймера
http://eugenemcu.ru/forum/10-22-1
Fri, 15 Jul 2011 02:15:45 GMTФорум: <a href="http://eugenemcu.ru/forum/10">STM32</a><br />Описание темы: Не работает по переполнению<br />Автор темы: ELEKTROS<br />Автор последнего сообщения: eugenemcu<br />Количество ответов: 1Добрый день. Проблема следующая: прерывания работают но не все, в частности использую TIM1, TIM2, TIM3, прерывания от TIM1 c фиксированной частотой по переполнению, TIM2 - захват 1 и переполнение, TIM3 - сравнение 1 и переполнение. не работают переполнения во всех. Весь код не вставляется поэтому только по TIM3. Вот так настраиваю: <br /> <!--uzcode--><div class="bbCodeBlock"><div class="bbCodeName" style="padding-left:5px;font-weight:bold;font-size:7pt">Code</div><div class="codeMessage" style="border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight<5?this.style.height:scrollHeight>200?'200px':''+(this.scrollHeight+5)+'px');"><!--uzc--> <br /> TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; <br /> TIM_OCInitTypeDef TIM_OCInitStruct; <br /> NVIC_InitTypeDef NVIC_InitStructure; <br /> RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 | RCC_APB1Periph_TIM3, ENABLE); <br /> TIM_TimeBaseInitStruct.TIM_Prescaler=3664; // <br /> TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up; // <br /> TIM_TimeBaseInitStruct.TIM_Period=0xFFFF; <br /> TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1; // <br /> TIM_TimeBaseInit(TIM3, &TIM_TimeBaseInitStruct); <br /> TIM_OCInitStruct.TIM_OCMode=TIM_OCMode_Timing; <br /> TIM_OCInitStruct.TIM_OutputState=TIM_OutputState_Enable; <br /> TIM_OCInitStruct.TIM_OutputNState = TIM_OutputNState_Disable; <br /> TIM_OCInitStruct.TIM_Pulse=0x00FF; // <br /> TIM_OCInitStruct.TIM_OCPolarity=TIM_OCPolarity_Low; <br /> TIM_OCInitStruct.TIM_OCIdleState = TIM_OCIdleState_Reset; <br /> TIM_OCInitStruct.TIM_OCNIdleState = TIM_OCNIdleState_Reset; <br /> TIM_OC1Init(TIM3, &TIM_OCInitStruct); <br /> TIM_UpdateDisableConfig(TIM3,ENABLE); <br /> TIM_Cmd(TIM3,ENABLE); <br /> TIM_ITConfig(TIM3, TIM_IT_Update | TIM_IT_CC1,ENABLE); // <br /> NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); // <br /> NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; <br /> NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00; <br /> NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00; <br /> NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; <br /> NVIC_Init(&NVIC_InitStructure); <br /> <!--/uzc--></div></div><!--/uzcode--> <br /><br /> Вот так обработчик прерываний по TIM3: <br /> <!--uzcode--><div class="bbCodeBlock"><div class="bbCodeName" style="padding-left:5px;font-weight:bold;font-size:7pt">Code</div><div class="codeMessage" style="border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight<5?this.style.height:scrollHeight>200?'200px':''+(this.scrollHeight+5)+'px');"><!--uzc--> <br /> void TIM3_IRQHandler(void) <br /> { <br /> if(TIM_GetITStatus(TIM3,TIM_IT_CC1)!=RESET) <br /> { <br /> TIM_ClearITPendingBit(TIM3, TIM_IT_CC1); <br /> /*какой то код*/ <br /> } <br /> if(TIM_GetITStatus(TIM3,TIM_IT_Update)!=RESET) <br /> { <br /> TIM_ClearITPendingBit(TIM3, TIM_IT_Update); <br /> /*какой то код*/ <br /> } <br /> TIM3->SR=0; <br /><br /> <!--/uzc--></div></div><!--/uzcode-->STM32ELEKTROShttp://eugenemcu.ru/forum/10-22-1Тактирование HSI
http://eugenemcu.ru/forum/10-23-1
Fri, 15 Jul 2011 02:13:12 GMTФорум: <a href="http://eugenemcu.ru/forum/10">STM32</a><br />Описание темы: HSI<br />Автор темы: ELEKTROS<br />Автор последнего сообщения: eugenemcu<br />Количество ответов: 1Добрый день подскажите как затактированить STM32f100x от HSI чтобы ядро тактировалось на 24 МГц. Использую IAR и его библиотекb, как понимаю нужно поправить функцию SystemInit() или достаточно закоментировать всё? вот здесь: <br /> #if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) <br /> /* #define SYSCLK_FREQ_HSE HSE_Value */ <br /> /* #define SYSCLK_FREQ_24MHz 24000000 */ <br /> #else <br /> /* #define SYSCLK_FREQ_HSE HSE_Value */ <br /> /* #define SYSCLK_FREQ_24MHz 24000000 */ <br /> /* #define SYSCLK_FREQ_36MHz 36000000 */ <br /> /* #define SYSCLK_FREQ_48MHz 48000000 */ <br /> /* #define SYSCLK_FREQ_56MHz 56000000 */ <br /> #define SYSCLK_FREQ_72MHz 72000000 <br /> #endif<p><b>Добавлено</b> (30.06.2011, 14:59)<br />---------------------------------------------<br />О чудо, в SystemInit() вставил вконец: <br /> RCC_HSEConfig(RCC_HSE_OFF); <br /> RCC_HSICmd(ENABLE); <br /><br /> RCC_HCLKConfig(RCC_SYSCLK_Div1); <br /> RCC_PCLK1Config(RCC_HCLK_Div1); <br /> RCC_PCLK2Config(RCC_HCLK_Div1); <br /> RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_6); <br /> RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); <br /> <br /> RCC_PLLCmd(ENABLE); <br /> закоментировал /* #define SYSCLK_FREQ_24MHz 24000000 */ для того чтобы функция SetSysClock(); ничего не делалаSTM32ELEKTROShttp://eugenemcu.ru/forum/10-23-1STM32 PWM
http://eugenemcu.ru/forum/10-18-1
Tue, 05 Apr 2011 11:52:40 GMTФорум: <a href="http://eugenemcu.ru/forum/10">STM32</a><br />Автор темы: LeftRadio<br />Автор последнего сообщения: eugenemcu<br />Количество ответов: 1Здравствуйте, нигде не могу найти примеры использования ШИМ на STM32VLDISCOVERY(STM32F100RB), подскажите где про это можно почитать кроме даташита :)? Еще замечательней было бы увидеть главу по использованию ШИМ и вообще разных режимов таймеров вот в этом разделе - http://eugenemcu.ru/publ/13 <img src="http://s25.ucoz.net/sm/23/biggrin.gif" border="0" align="absmiddle" alt="biggrin"> <img src="http://s25.ucoz.net/sm/23/biggrin.gif" border="0" align="absmiddle" alt="biggrin"> <img src="http://s25.ucoz.net/sm/23/biggrin.gif" border="0" align="absmiddle" alt="biggrin">STM32LeftRadiohttp://eugenemcu.ru/forum/10-18-1