Форум http://eugenemcu.ru/forum/ Форум Tue, 10 Jan 2012 03:12:46 GMT uCoz 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 /> Подскажите, пожалуйста, как лучше реализовать формирование такого сигнала. STM32 igorgis http://eugenemcu.ru/forum/10-26-1 STM32VL 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 /> с лампочками набаловался... но дело дошло до того что хочется поиграться с остальными его возможностями, но в основном это с потоками ввода вывода. языком Си вроде как владею нормально, посоветуйте с чего мне начать? STM32 Lemah http://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 />&nbsp;&nbsp;&nbsp;TIM_OCInitTypeDef TIM_OCInitStruct; <br />&nbsp;&nbsp;&nbsp;NVIC_InitTypeDef NVIC_InitStructure; <br />&nbsp;&nbsp;&nbsp;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 | RCC_APB1Periph_TIM3, ENABLE&#41;;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;TIM_TimeBaseInitStruct.TIM_Prescaler=3664; // <br />&nbsp;&nbsp;&nbsp;TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up; //&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;TIM_TimeBaseInitStruct.TIM_Period=0xFFFF; <br />&nbsp;&nbsp;&nbsp;TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1; // <br />&nbsp;&nbsp;&nbsp;TIM_TimeBaseInit(TIM3, &TIM_TimeBaseInitStruct&#41;;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;TIM_OCInitStruct.TIM_OCMode=TIM_OCMode_Timing; <br />&nbsp;&nbsp;&nbsp;TIM_OCInitStruct.TIM_OutputState=TIM_OutputState_Enable;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;TIM_OCInitStruct.TIM_OutputNState = TIM_OutputNState_Disable; <br />&nbsp;&nbsp;&nbsp;TIM_OCInitStruct.TIM_Pulse=0x00FF; //&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;TIM_OCInitStruct.TIM_OCPolarity=TIM_OCPolarity_Low;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;TIM_OCInitStruct.TIM_OCIdleState = TIM_OCIdleState_Reset; <br />&nbsp;&nbsp;&nbsp;TIM_OCInitStruct.TIM_OCNIdleState = TIM_OCNIdleState_Reset;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;TIM_OC1Init(TIM3, &TIM_OCInitStruct&#41;; <br />&nbsp;&nbsp;&nbsp;TIM_UpdateDisableConfig(TIM3,ENABLE&#41;; <br />&nbsp;&nbsp;&nbsp;TIM_Cmd(TIM3,ENABLE&#41;;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;TIM_ITConfig(TIM3, TIM_IT_Update | TIM_IT_CC1,ENABLE&#41;; // <br />&nbsp;&nbsp;&nbsp;&nbsp;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0&#41;; //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NVIC_Init(&NVIC_InitStructure&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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&#41; <br /> { <br /> if(TIM_GetITStatus(TIM3,TIM_IT_CC1&#41;!=RESET&#41; <br />&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;TIM_ClearITPendingBit(TIM3, TIM_IT_CC1&#41;;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;/*какой то код*/ <br />&nbsp;&nbsp;&nbsp;} <br /> if(TIM_GetITStatus(TIM3,TIM_IT_Update&#41;!=RESET&#41; <br />&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;TIM_ClearITPendingBit(TIM3, TIM_IT_Update&#41;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;/*какой то код*/ <br />&nbsp;&nbsp;&nbsp;} <br /> TIM3->SR=0; <br /><br /> <!--/uzc--></div></div><!--/uzcode--> STM32 ELEKTROS http://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(); ничего не делала STM32 ELEKTROS http://eugenemcu.ru/forum/10-23-1 STM32 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"> STM32 LeftRadio http://eugenemcu.ru/forum/10-18-1