<?xml version="1.0" encoding="UTF-8"?>        <rss version="2.0"
             xmlns:atom="http://www.w3.org/2005/Atom"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
             xmlns:admin="http://webns.net/mvcb/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:content="http://purl.org/rss/1.0/modules/content/">
        <channel>
            <title>
									Трехфазный синусоидальный ШИМ с помощью STM32 - STM32				            </title>
            <link>https://microtechnics.ru/community/stm32/trehfaznyj-sinusoidalnyj-shim-s-pomoshhyu-stm32/</link>
            <description>Обсуждение вопросов, посвященных программированию микроконтроллеров, разработке электроники и не только.</description>
            <language>ru-RU</language>
            <lastBuildDate>Tue, 14 Jul 2026 15:34:19 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>НА: Трехфазный синусоидальный ШИМ с помощью STM32</title>
                        <link>https://microtechnics.ru/community/stm32/trehfaznyj-sinusoidalnyj-shim-s-pomoshhyu-stm32/#post-2573</link>
                        <pubDate>Tue, 07 Nov 2023 04:59:57 +0000</pubDate>
                        <description><![CDATA[@eduard спасибо!]]></description>
                        <content:encoded><![CDATA[@eduard спасибо!]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/stm32/">STM32</category>                        <dc:creator>Banan_net</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/stm32/trehfaznyj-sinusoidalnyj-shim-s-pomoshhyu-stm32/#post-2573</guid>
                    </item>
				                    <item>
                        <title>НА: Трехфазный синусоидальный ШИМ с помощью STM32</title>
                        <link>https://microtechnics.ru/community/stm32/trehfaznyj-sinusoidalnyj-shim-s-pomoshhyu-stm32/#post-2571</link>
                        <pubDate>Fri, 03 Nov 2023 16:00:33 +0000</pubDate>
                        <description><![CDATA[Вот пример.

  Я по нему делал. Работало.]]></description>
                        <content:encoded><![CDATA[<p>Вот пример.</p>
511
<p>  Я по нему делал. Работало.</p>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/stm32/">STM32</category>                        <dc:creator>Эдуард</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/stm32/trehfaznyj-sinusoidalnyj-shim-s-pomoshhyu-stm32/#post-2571</guid>
                    </item>
				                    <item>
                        <title>НА: Трехфазный синусоидальный ШИМ с помощью STM32</title>
                        <link>https://microtechnics.ru/community/stm32/trehfaznyj-sinusoidalnyj-shim-s-pomoshhyu-stm32/#post-2560</link>
                        <pubDate>Thu, 02 Nov 2023 10:33:42 +0000</pubDate>
                        <description><![CDATA[@aveal да, значения разные, адекватныйпопробую добавить задержку с CCR, спасибо!]]></description>
                        <content:encoded><![CDATA[@aveal да, значения разные, адекватный<br />попробую добавить задержку с CCR, спасибо!]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/stm32/">STM32</category>                        <dc:creator>Banan_net</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/stm32/trehfaznyj-sinusoidalnyj-shim-s-pomoshhyu-stm32/#post-2560</guid>
                    </item>
				                    <item>
                        <title>НА: Трехфазный синусоидальный ШИМ с помощью STM32</title>
                        <link>https://microtechnics.ru/community/stm32/trehfaznyj-sinusoidalnyj-shim-s-pomoshhyu-stm32/#post-2559</link>
                        <pubDate>Thu, 02 Nov 2023 09:40:49 +0000</pubDate>
                        <description><![CDATA[Кстати в основном цикле, там где:
TIM1-&gt;CCR1 = sine_wave;
надо какую-то задержку как минимум, потому что в CCR значение обновляется на каждом цикле, таймер не успевает новый сигнал ф...]]></description>
                        <content:encoded><![CDATA[<p>Кстати в основном цикле, там где:</p>
<pre contenteditable="false">TIM1-&gt;CCR1 = sine_wave;</pre>
<p>надо какую-то задержку как минимум, потому что в CCR значение обновляется на каждом цикле, таймер не успевает новый сигнал физически сгенерировать.</p>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/stm32/">STM32</category>                        <dc:creator>Aveal MT</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/stm32/trehfaznyj-sinusoidalnyj-shim-s-pomoshhyu-stm32/#post-2559</guid>
                    </item>
				                    <item>
                        <title>НА: Трехфазный синусоидальный ШИМ с помощью STM32</title>
                        <link>https://microtechnics.ru/community/stm32/trehfaznyj-sinusoidalnyj-shim-s-pomoshhyu-stm32/#post-2558</link>
                        <pubDate>Thu, 02 Nov 2023 09:39:05 +0000</pubDate>
                        <description><![CDATA[@banan_net а в sine_wave[] разные значения, адекватные?]]></description>
                        <content:encoded><![CDATA[@banan_net а в sine_wave[] разные значения, адекватные?]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/stm32/">STM32</category>                        <dc:creator>Aveal MT</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/stm32/trehfaznyj-sinusoidalnyj-shim-s-pomoshhyu-stm32/#post-2558</guid>
                    </item>
				                    <item>
                        <title>НА: Трехфазный синусоидальный ШИМ с помощью STM32</title>
                        <link>https://microtechnics.ru/community/stm32/trehfaznyj-sinusoidalnyj-shim-s-pomoshhyu-stm32/#post-2557</link>
                        <pubDate>Thu, 02 Nov 2023 09:26:41 +0000</pubDate>
                        <description><![CDATA[@aveal обработчик попадает, но такое ощущение, что он записывает только 1 число в массива, скважность 1 раз изменилась и все. как заставить, чтобы он постоянно считывал значения с массива не...]]></description>
                        <content:encoded><![CDATA[@aveal обработчик попадает, но такое ощущение, что он записывает только 1 число в массива, скважность 1 раз изменилась и все. как заставить, чтобы он постоянно считывал значения с массива не понимаю. :(]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/stm32/">STM32</category>                        <dc:creator>Banan_net</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/stm32/trehfaznyj-sinusoidalnyj-shim-s-pomoshhyu-stm32/#post-2557</guid>
                    </item>
				                    <item>
                        <title>НА: Трехфазный синусоидальный ШИМ с помощью STM32</title>
                        <link>https://microtechnics.ru/community/stm32/trehfaznyj-sinusoidalnyj-shim-s-pomoshhyu-stm32/#post-2556</link>
                        <pubDate>Thu, 02 Nov 2023 09:22:17 +0000</pubDate>
                        <description><![CDATA[Привет! Надо под отладчиком посмотреть поэтапно, попадает ли в обработчик нажатия PC5, затем, какие значения непосредственно в CCRx записываются и что в массиве sine_wave[] генерируется в ит...]]></description>
                        <content:encoded><![CDATA[<p>Привет! Надо под отладчиком посмотреть поэтапно, попадает ли в обработчик нажатия PC5, затем, какие значения непосредственно в CCRx записываются и что в массиве sine_wave[] генерируется в итоге, какие значения.</p>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/stm32/">STM32</category>                        <dc:creator>Aveal MT</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/stm32/trehfaznyj-sinusoidalnyj-shim-s-pomoshhyu-stm32/#post-2556</guid>
                    </item>
				                    <item>
                        <title>Трехфазный синусоидальный ШИМ с помощью STM32</title>
                        <link>https://microtechnics.ru/community/stm32/trehfaznyj-sinusoidalnyj-shim-s-pomoshhyu-stm32/#post-2555</link>
                        <pubDate>Thu, 02 Nov 2023 09:03:21 +0000</pubDate>
                        <description><![CDATA[Всем привет! Я только учусь работать с микроконтроллером и нужна помощь:) Работаю с микроконтроллером STM32G431, в программе CubeIDE. В самом коде совмещаю HAL и CMSIS. Вот мой код:При компи...]]></description>
                        <content:encoded><![CDATA[<p>Всем привет! Я только учусь работать с микроконтроллером и нужна помощь:) Работаю с микроконтроллером STM32G431, в программе CubeIDE. В самом коде совмещаю HAL и CMSIS. Вот мой код:<br />При компиляции кода ошибок никаких не возникает, при нажатии кнопки PB0 таймер запускается, проблем никаких нет. Но при нажатии кнопки PC5 происходит просто ничего:( на выходах мк нет синусоидального ШИМа. Да и частота соответственно не меняется. В чем может быть ошибка и куда мне двигаться? <br />* Сразу прошу прощение за это "извращение" <br />** Я пытался работать с DMA, но в ровным счетом ситуация такая же, на выходе всегда ШИМ с постоянной скважностью.</p>
<pre contenteditable="false">#include "main.h" 
#include "tim.h"
 #include "usart.h" 
#include "gpio.h" 
#include &lt;math.h&gt;
 #define BUFFER_SIZE 2000
 double pi = 3.14159;
 uint32_t sine_wave = {0}; 
uint32_t frequency = 50;
 bool increasing = true; 
float pwm_number; 
float pwm_coef; 
uint16_t i;
 float a; 
float q; 
float z; 
void generate_sine_wave();
 void configure_timer_pwm(); 
void configure_button_interrupts(); 
void EXTI0_IRQHandler(); 
void EXTI9_5_IRQHandler();
 extern TIM_HandleTypeDef htim1; 
void SystemClock_Config(void); 
void generate_sine_wave() 
{ 
if (frequency != 0)
 { 
// Число периодов ШИМ для частоты поля
 pwm_number = (10 * 16000) / frequency;
 // Коэффициент скалярного управления
 pwm_coef = (float)7; 
z = 630 / 2; 
a = (float)2.0 * (1.0 / pwm_number); 
q = 0; 
for (i = 0; i &lt; pwm_number; i++) 
{ 
q = z + (z * sin(pi * i * a)); 
sine_wave = q * pwm_coef;
 }
 }
 } 
void configure_timer_pwm()
 { RCC-&gt;APB2ENR |= RCC_APB2ENR_TIM1EN; 
TIM1-&gt;PSC = 0; 
TIM1-&gt;ARR = 4799; 
TIM1-&gt;CCMR1 |= TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1; // CH1 TIM1-&gt;CCMR1 |= TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2M_1; 
TIM1-&gt;CCMR2 |= TIM_CCMR2_OC3M_2 | TIM_CCMR2_OC3M_1; 
 TIM1-&gt;CCER |= TIM_CCER_CC1E | TIM_CCER_CC1NE; // CH1 инверсии 
TIM1-&gt;CCER |= TIM_CCER_CC2E | TIM_CCER_CC2NE; // CH2 инверсии 
TIM1-&gt;CCER |= TIM_CCER_CC3E | TIM_CCER_CC3NE; // CH3 инверсии 
TIM1-&gt;BDTR |= TIM_BDTR_MOE; TIM1-&gt;CR1 |= TIM_CR1_CEN;
 }
 void configure_button_interrupts()
 { RCC-&gt;APB2ENR |= RCC_APB2ENR_SYSCFGEN;
 SYSCFG-&gt;EXTICR &amp;= ~SYSCFG_EXTICR1_EXTI0_Msk; 
SYSCFG-&gt;EXTICR |= SYSCFG_EXTICR1_EXTI0_PB;
 EXTI-&gt;RTSR1 |= EXTI_RTSR1_RT0; 
EXTI-&gt;IMR1 |= EXTI_IMR1_IM0;
 NVIC_EnableIRQ(EXTI0_IRQn); 
SYSCFG-&gt;EXTICR &amp;= ~SYSCFG_EXTICR2_EXTI5_Msk; 
SYSCFG-&gt;EXTICR |= SYSCFG_EXTICR2_EXTI5_PC; 
EXTI-&gt;RTSR1 |= EXTI_RTSR1_RT5; 
EXTI-&gt;IMR1 |= EXTI_IMR1_IM5; 
NVIC_EnableIRQ(EXTI9_5_IRQn);
 } 
void EXTI0_IRQHandler()
 {
 if ((EXTI-&gt;PR1 &amp; EXTI_PR1_PIF0) != 0)
 {
 EXTI-&gt;PR1 |= EXTI_PR1_PIF0; 
if (TIM1-&gt;CR1 &amp; TIM_CR1_CEN)
 { TIM1-&gt;CR1 &amp;= ~TIM_CR1_CEN; 
} 
else 
{
 configure_timer_pwm();
 }
 }
 }
 void EXTI9_5_IRQHandler() 
{
 if ((EXTI-&gt;PR1 &amp; EXTI_PR1_PIF5) != 0)
 { 
EXTI-&gt;PR1 |= EXTI_PR1_PIF5; 
if (increasing)
 {
 frequency += 1; 
if (frequency &gt; 400) 
{ 
frequency = 400; 
increasing = false; 
}
 }
 else {
 frequency -= 1;
 if (frequency &lt; 50) { 
frequency = 50;
 increasing = true; }
 } 
generate_sine_wave();
 }
 }
 int main(void)
 { HAL_Init();
 SystemClock_Config();
 HAL_TIM_Base_Start_IT(&amp;htim1); 
MX_GPIO_Init(); 
MX_TIM1_Init(); 
MX_USART2_UART_Init(); 
HAL_TIMEx_PWMN_Start(&amp;htim1,TIM_CHANNEL_1); HAL_TIM_PWM_Start(&amp;htim1,TIM_CHANNEL_1); HAL_TIMEx_PWMN_Start(&amp;htim1,TIM_CHANNEL_2); HAL_TIM_PWM_Start(&amp;htim1,TIM_CHANNEL_2); HAL_TIMEx_PWMN_Start(&amp;htim1,TIM_CHANNEL_3); HAL_TIM_PWM_Start(&amp;htim1,TIM_CHANNEL_3); 
generate_sine_wave(); 
configure_timer_pwm(); 
configure_button_interrupts(); 
while (1)
 {
 if (i &gt;= pwm_number)
 { i = 0; } 
if (htim1.Instance == TIM1) 
{ TIM1-&gt;CCR1 = sine_wave; 
TIM1-&gt;CCR2 = sine_wave; 
TIM1-&gt;CCR3 = sine_wave; i++; } } }


</pre>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/stm32/">STM32</category>                        <dc:creator>Banan_net</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/stm32/trehfaznyj-sinusoidalnyj-shim-s-pomoshhyu-stm32/#post-2555</guid>
                    </item>
							        </channel>
        </rss>
		