<?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/stm32-dlya-nachinayushhih/</link>
            <description>Обсуждение вопросов, посвященных программированию микроконтроллеров, разработке электроники и не только.</description>
            <language>ru-RU</language>
            <lastBuildDate>Sat, 11 Jul 2026 20:23:19 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>НА: STM32 для начинающих</title>
                        <link>https://microtechnics.ru/community/stm32/stm32-dlya-nachinayushhih/paged/23/#post-4150</link>
                        <pubDate>Thu, 23 Apr 2026 08:20:26 +0000</pubDate>
                        <description><![CDATA[Нужно было кучу проверок вводить. Решил проблему.
Сделал вот так:


bool SPI4_SendByte(uint8_t data, uint32_t timeout)
{
 // 1) SPI должен быть настроен CubeIDE (режим master, 8-bit и ...]]></description>
                        <content:encoded><![CDATA[<p>Нужно было кучу проверок вводить. Решил проблему.</p>
<p>Сделал вот так:</p>
<div style="background-color: #ffffff;padding: 0px 0px 0px 2px">
<div style="color: #000000;background-color: #ffffff;font-size: 14pt;font-weight: bold">
<p style="margin: 0"><span style="color: #000000">bool </span><span style="color: #000000;font-weight: bold">SPI4_SendByte</span><span style="color: #000000">(</span><span style="color: #005032">uint8_t</span><span style="color: #000000"> data, </span><span style="color: #005032">uint32_t</span><span style="color: #000000"> timeout)</span></p>
<p style="margin: 0"><span style="color: #000000">{</span></p>
<p style="margin: 0"><span style="color: #000000"> </span><span style="color: #3f7f5f">// 1) SPI </span><span style="color: #3f7f5f;text-decoration: underline">должен</span><span style="color: #3f7f5f"> </span><span style="color: #3f7f5f;text-decoration: underline">быть</span><span style="color: #3f7f5f"> </span><span style="color: #3f7f5f;text-decoration: underline">настроен</span><span style="color: #3f7f5f"> CubeIDE (</span><span style="color: #3f7f5f;text-decoration: underline">режим</span><span style="color: #3f7f5f"> master, 8-bit и т.д.)</span></p>
<p style="margin: 0"><span style="color: #000000"> </span><span style="color: #3f7f5f">// </span><span style="color: #3f7f5f;text-decoration: underline">Включаем</span><span style="color: #3f7f5f"> SPI, </span><span style="color: #3f7f5f;text-decoration: underline">если</span><span style="color: #3f7f5f"> </span><span style="color: #3f7f5f;text-decoration: underline">еще</span><span style="color: #3f7f5f"> </span><span style="color: #3f7f5f;text-decoration: underline">не</span><span style="color: #3f7f5f"> </span><span style="color: #3f7f5f;text-decoration: underline">включен</span></p>
<p style="margin: 0"><span style="color: #000000"> </span><span style="color: #7f0055;font-weight: bold">if</span><span style="color: #000000"> ((SPI4-&gt;</span><span style="color: #0000c0">CR1</span><span style="color: #000000"> &amp; SPI_CR1_SPE) == 0U) {</span></p>
<p style="margin: 0"><span style="color: #000000"> SPI4-&gt;</span><span style="color: #0000c0">CR1</span><span style="color: #000000"> |= SPI_CR1_SPE;</span></p>
<p style="margin: 0"><span style="color: #000000"> }</span></p>
<p style="margin: 0"><span style="color: #000000"> </span><span style="color: #3f7f5f">// </span><span style="color: #3f7f5f;text-decoration: underline">Для</span><span style="color: #3f7f5f"> STM32H7 master-передача </span><span style="color: #3f7f5f;text-decoration: underline">запускается</span><span style="color: #3f7f5f"> </span><span style="color: #3f7f5f;text-decoration: underline">через</span><span style="color: #3f7f5f"> CSTART</span></p>
<p style="margin: 0"><span style="color: #000000"> </span><span style="color: #7f0055;font-weight: bold">if</span><span style="color: #000000"> ((SPI4-&gt;</span><span style="color: #0000c0">CR1</span><span style="color: #000000"> &amp; SPI_CR1_CSTART) == 0U) {</span></p>
<p style="margin: 0"><span style="color: #000000"> SPI4-&gt;</span><span style="color: #0000c0">CR1</span><span style="color: #000000"> |= SPI_CR1_CSTART;</span></p>
<p style="margin: 0"><span style="color: #000000"> }</span></p>
<p style="margin: 0"><span style="color: #000000"> </span><span style="color: #3f7f5f">// 2) </span><span style="color: #3f7f5f;text-decoration: underline">Ждем</span><span style="color: #3f7f5f">, </span><span style="color: #3f7f5f;text-decoration: underline">пока</span><span style="color: #3f7f5f"> TXDR </span><span style="color: #3f7f5f;text-decoration: underline">готов</span><span style="color: #3f7f5f"> </span><span style="color: #3f7f5f;text-decoration: underline">принять</span><span style="color: #3f7f5f"> </span><span style="color: #3f7f5f;text-decoration: underline">данные</span><span style="color: #3f7f5f"> (TXP=1)</span></p>
<p style="margin: 0"><span style="color: #000000"> </span><span style="color: #7f0055;font-weight: bold">while</span><span style="color: #000000"> ((SPI4-&gt;</span><span style="color: #0000c0">SR</span><span style="color: #000000"> &amp; SPI_SR_TXP) == 0U) {</span></p>
<p style="margin: 0"><span style="color: #000000"> </span><span style="color: #7f0055;font-weight: bold">if</span><span style="color: #000000"> (timeout-- == 0U) </span><span style="color: #7f0055;font-weight: bold">return</span><span style="color: #000000"> false;</span></p>
<p style="margin: 0"><span style="color: #000000"> }</span></p>
<p style="margin: 0"><span style="color: #000000"> </span><span style="color: #3f7f5f">// 3) </span><span style="color: #3f7f5f;text-decoration: underline">Пишем</span><span style="color: #3f7f5f"> 1 </span><span style="color: #3f7f5f;text-decoration: underline">байт</span><span style="color: #3f7f5f"> в TXDR (</span><span style="color: #3f7f5f;text-decoration: underline">именно</span><span style="color: #3f7f5f"> 8-</span><span style="color: #3f7f5f;text-decoration: underline">битная</span><span style="color: #3f7f5f"> </span><span style="color: #3f7f5f;text-decoration: underline">запись</span><span style="color: #3f7f5f">)</span></p>
<p style="margin: 0"><span style="color: #000000"> *(__IO </span><span style="color: #005032">uint8_t</span><span style="color: #000000"> *)&amp;SPI4-&gt;</span><span style="color: #0000c0">TXDR</span><span style="color: #000000"> = data;</span></p>
<p style="margin: 0"><span style="color: #000000"> </span><span style="color: #3f7f5f">// 4) </span><span style="color: #3f7f5f;text-decoration: underline">Ждем</span><span style="color: #3f7f5f"> </span><span style="color: #3f7f5f;text-decoration: underline">завершения</span><span style="color: #3f7f5f"> </span><span style="color: #3f7f5f;text-decoration: underline">передачи</span><span style="color: #3f7f5f"> </span><span style="color: #3f7f5f;text-decoration: underline">байта</span><span style="color: #3f7f5f"> (TXC=1)</span></p>
<p style="margin: 0"><span style="color: #000000"> </span><span style="color: #7f0055;font-weight: bold">while</span><span style="color: #000000"> ((SPI4-&gt;</span><span style="color: #0000c0">SR</span><span style="color: #000000"> &amp; SPI_SR_TXC) == 0U) {</span></p>
<p style="margin: 0"><span style="color: #000000"> </span><span style="color: #7f0055;font-weight: bold">if</span><span style="color: #000000"> (timeout-- == 0U) </span><span style="color: #7f0055;font-weight: bold">return</span><span style="color: #000000"> false;</span></p>
<p style="margin: 0"><span style="color: #000000"> }</span></p>
<p style="margin: 0"><span style="color: #000000"> </span><span style="color: #3f7f5f">// 5) </span><span style="color: #3f7f5f;text-decoration: underline">Если</span><span style="color: #3f7f5f"> в RXFIFO что-то </span><span style="color: #3f7f5f;text-decoration: underline">пришло</span><span style="color: #3f7f5f"> (full-duplex SPI), </span><span style="color: #3f7f5f;text-decoration: underline">читаем</span><span style="color: #3f7f5f"> и </span><span style="color: #3f7f5f;text-decoration: underline">сбрасываем</span></p>
<p style="margin: 0"><span style="color: #000000"> </span><span style="color: #7f0055;font-weight: bold">if</span><span style="color: #000000"> ((SPI4-&gt;</span><span style="color: #0000c0">SR</span><span style="color: #000000"> &amp; SPI_SR_RXP) != 0U) {</span></p>
<p style="margin: 0"><span style="color: #000000"> </span><span style="color: #7f0055;font-weight: bold">volatile</span><span style="color: #000000"> </span><span style="color: #005032">uint8_t</span><span style="color: #000000"> dummy = *(__IO </span><span style="color: #005032">uint8_t</span><span style="color: #000000"> *)&amp;SPI4-&gt;</span><span style="color: #0000c0">RXDR</span><span style="color: #000000">;</span></p>
<p style="margin: 0"><span style="color: #000000"> (</span><span style="color: #7f0055;font-weight: bold">void</span><span style="color: #000000">)dummy;</span></p>
<p style="margin: 0"><span style="color: #000000"> }</span></p>
<p style="margin: 0"><span style="color: #000000"> </span><span style="color: #7f0055;font-weight: bold">return</span><span style="color: #000000"> true;</span></p>
</div>
</div>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/stm32/">STM32</category>                        <dc:creator>AsdaL</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/stm32/stm32-dlya-nachinayushhih/paged/23/#post-4150</guid>
                    </item>
				                    <item>
                        <title>НА: STM32 для начинающих</title>
                        <link>https://microtechnics.ru/community/stm32/stm32-dlya-nachinayushhih/paged/23/#post-4149</link>
                        <pubDate>Wed, 22 Apr 2026 17:15:18 +0000</pubDate>
                        <description><![CDATA[Скинь плз весь проект на почту, если есть возможность, я завтра с ПК посмотрю.]]></description>
                        <content:encoded><![CDATA[<p>Скинь плз весь проект на почту, если есть возможность, я завтра с ПК посмотрю.</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/stm32-dlya-nachinayushhih/paged/23/#post-4149</guid>
                    </item>
				                    <item>
                        <title>НА: STM32 для начинающих</title>
                        <link>https://microtechnics.ru/community/stm32/stm32-dlya-nachinayushhih/paged/23/#post-4148</link>
                        <pubDate>Wed, 22 Apr 2026 17:07:55 +0000</pubDate>
                        <description><![CDATA[&nbsp;
Код инициализации я не писал, решил, что настройки от HAL сгодятся. Там то всё работает.
А флага SPI_SR_TXC  в743-м вообще нет. Компилятор ошибку даёт.
&nbsp;]]></description>
                        <content:encoded><![CDATA[
<p>@asdal Приветствую!</p>
<p>Нужно полный код инициализации посмотреть.</p>
<p>Либо, попробуй по-быстрому заменить проверку флага SPI_SR_EOT на SPI_SR_TXC.</p>
<p></p>
<p>&nbsp;</p>
<p>Код инициализации я не писал, решил, что настройки от HAL сгодятся. Там то всё работает.</p>
<p>А флага SPI_SR_TXC  в743-м вообще нет. Компилятор ошибку даёт.</p>
<p>&nbsp;</p>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/stm32/">STM32</category>                        <dc:creator>AsdaL</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/stm32/stm32-dlya-nachinayushhih/paged/23/#post-4148</guid>
                    </item>
				                    <item>
                        <title>НА: STM32 для начинающих</title>
                        <link>https://microtechnics.ru/community/stm32/stm32-dlya-nachinayushhih/paged/23/#post-4147</link>
                        <pubDate>Wed, 22 Apr 2026 15:49:14 +0000</pubDate>
                        <description><![CDATA[@asdal Приветствую!
Нужно полный код инициализации посмотреть.
Либо, попробуй по-быстрому заменить проверку флага SPI_SR_EOT на SPI_SR_TXC.]]></description>
                        <content:encoded><![CDATA[<p>@asdal Приветствую!</p>
<p>Нужно полный код инициализации посмотреть.</p>
<p>Либо, попробуй по-быстрому заменить проверку флага SPI_SR_EOT на SPI_SR_TXC.</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/stm32-dlya-nachinayushhih/paged/23/#post-4147</guid>
                    </item>
				                    <item>
                        <title>Работа по SPI на STM32H743</title>
                        <link>https://microtechnics.ru/community/stm32/stm32-dlya-nachinayushhih/paged/23/#post-4146</link>
                        <pubDate>Wed, 22 Apr 2026 15:39:17 +0000</pubDate>
                        <description><![CDATA[Доброго времени суток!
Контроллер STM32H743
Из-за больших накладных расходов быстродействия вынужден перейти с библиотек HAL на прямую работу с регистрами. На HAL всё работает нормально. Н...]]></description>
                        <content:encoded><![CDATA[<p>Доброго времени суток!</p>
<p>Контроллер STM32H743</p>
<p>Из-за больших накладных расходов быстродействия вынужден перейти с библиотек HAL на прямую работу с регистрами. На HAL всё работает нормально. Настройки SPI оставил от HAL.</p>
<p>Столкнулся с проблемой.</p>
<p>Код прост как мычание:</p>
<p>uint8_t Data = 0xAA;</p>
<p>SPI4-&gt;TXDR = Data; // Запись байта в регистр данных</p>
<p>while(((SPI4-&gt;SR) &amp; SPI_SR_EOT) != SPI_SR_EOT){}; // <u>Ожидание</u> <u>завершения</u> <u>передачи</u></p>
<p>&nbsp;</p>
<p>Проблема в том, что программа не выходит из цикла ожидания конца передачи. Подозреваю, что передача данных и не начиналась.</p>
<p>Возможно ещё что-то надо настроить для корректной работы SPI. Подскажите, где я ошибся?</p>
<p><strong> </strong></p>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/stm32/">STM32</category>                        <dc:creator>AsdaL</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/stm32/stm32-dlya-nachinayushhih/paged/23/#post-4146</guid>
                    </item>
				                    <item>
                        <title>Реализация TUI на UART с прерываниями</title>
                        <link>https://microtechnics.ru/community/stm32/stm32-dlya-nachinayushhih/paged/23/#post-4099</link>
                        <pubDate>Thu, 12 Feb 2026 11:01:33 +0000</pubDate>
                        <description><![CDATA[Всем привет.
Занимаюсь реализацией TUI через UART на STM32F1xx с HAL. Описание функциональности:
- Неблокирующий ввод
- Завершение ввода при нажатии Enter
- При нажатии на Backspace пред...]]></description>
                        <content:encoded><![CDATA[<p>Всем привет.</p>
<p>Занимаюсь реализацией TUI через UART на STM32F1xx с HAL. Описание функциональности:</p>
<p>- Неблокирующий ввод</p>
<p>- Завершение ввода при нажатии Enter</p>
<p>- При нажатии на Backspace предыдущий символ удаляется (при наличии)</p>
<p>- Видимые символы отображаются</p>
<p>Вывод также хочется реализовать через прерывания, если вызов функции был сделан не из обработчика другого прерывания (в таком случае реализуется блокирующий вывод).</p>
<p>При написании кода использую кольцевой буфер (ring/circular buffer) для хранения строк. Он представляет из себя отдельную библиотеку.</p>
<p>Вот код проекта:</p>
<div>
<pre contenteditable="false">static UART_HandleTypeDef *console_uart = NULL;
static char line_buffer;
static uint16_t line_len = 0;

// TX Buffer
static ring_buffer_t tx_buffer;
static volatile uint8_t tx_busy = 0;
static volatile uint8_t tx_byte;

// RX Buffer
static ring_buffer_t rx_buffer;
static volatile uint8_t rx_byte;
static volatile uint8_t rx_ready = 0;

static void console_rx_callback(UART_HandleTypeDef *);
static void console_tx_callback(UART_HandleTypeDef *);

uint8_t console_init(UART_HandleTypeDef *huart) {
    if (huart == NULL || console_uart != NULL) {
        return 1;
    }

    console_uart = huart;

    ring_buffer_init(&amp;tx_buffer);
    tx_busy = 0;    

    ring_buffer_init(&amp;rx_buffer);
    rx_ready = 0;

    HAL_UART_RegisterCallback(
        console_uart,
        HAL_UART_RX_COMPLETE_CB_ID,
        console_rx_callback
    );

    HAL_UART_RegisterCallback(
        console_uart,
        HAL_UART_TX_COMPLETE_CB_ID,
        console_tx_callback
    );

    HAL_UART_Receive_IT(console_uart, (uint8_t *) &amp;rx_byte, 1);
    return 0;
}

void console_print(const char *str) {
    HAL_UART_Transmit(console_uart, (uint8_t *) str, strlen(str), 10);
    // ring_buffer_write(&amp;tx_buffer, (uint8_t *) str, strlen(str));

    // if (tx_busy == 0) {
    //     tx_busy = 1;
    //     tx_byte = ring_buffer_pop(&amp;tx_buffer);
    //     HAL_UART_Transmit_IT(console_uart, &amp;tx_byte, 1);
    // }
}

void console_clear() {
    console_print("\033[2J\033[H");
}

// Берет на себя всю обработку символов: backspace, enter и echo
void console_poll() {
    while (ring_buffer_get_length(&amp;rx_buffer) &gt; 0 &amp;&amp; rx_ready == 0) {
        uint8_t ch = ring_buffer_pop(&amp;rx_buffer);
        if ((ch == '\b' || ch == 0x7F) &amp;&amp; line_len &gt; 0) {
            line_len--;
            console_print("\b \b");
        }
        else if (ch == '\r' || ch == '\n') {
            line_buffer = '\0';
            rx_ready = 1;
            console_print("\r\n");
            return;
        }
        else if (line_len &lt; CONSOLE_MAX_RX_DATA_LENGTH - 1) {
            line_buffer = ch;
            char echo = {ch, 0};
            console_print(echo);
        }
    }
}

uint8_t console_ready() {
    return rx_ready;
}

void console_read(char *buffer) {
    if (buffer == NULL || rx_ready == 0) {
        return;
    }
    
    strcpy(buffer, line_buffer);
    rx_ready = 0;
    line_len = 0;
    line_buffer = '\0';
}

static void console_tx_callback(UART_HandleTypeDef *console) {
    if (ring_buffer_get_length(&amp;tx_buffer) == 0) {
        tx_busy = 0;
    }
    else {
        tx_byte = ring_buffer_pop(&amp;tx_buffer);
        HAL_UART_Transmit_IT(console_uart, &amp;tx_byte, 1);
    }
}

static void console_rx_callback(UART_HandleTypeDef *console) {
    ring_buffer_push(&amp;rx_buffer, rx_byte);
    HAL_UART_Receive_IT(console_uart, &amp;rx_byte, 1);
}</pre>
<p><br />Использование в приложении примерно такое:</p>
<pre contenteditable="false">while(1) {
    console_poll();
    if (console_ready()) {
        console_read(consoleBuffer);
        // Действия с console buffer
    }
}</pre>
</div>
<p>&nbsp;</p>
<p>При подключении через утилиту screen на скорости 115200 выводит следующее (вводил просто '?'):</p>
<pre contenteditable="false">Rebooeot system
?. menu
cm&gt;&gt;
Unknoan
oy en
symenu
cm</pre>
<p>То есть вывод максимально ломаный.</p>
<p>Знающие люди, подскажите, пожалуйста, что не так с этим кодом и в чем именно проблема. Нейронки не помогают, а в DMA сейчас не планирую лезть - хочу сперва разобраться с прерываниями.</p>
<p>Благодарю за любую помощь, спасибо!</p>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/stm32/">STM32</category>                        <dc:creator>arm-programmer</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/stm32/stm32-dlya-nachinayushhih/paged/23/#post-4099</guid>
                    </item>
				                    <item>
                        <title>НА: STM32 для начинающих</title>
                        <link>https://microtechnics.ru/community/stm32/stm32-dlya-nachinayushhih/paged/23/#post-3994</link>
                        <pubDate>Mon, 10 Nov 2025 08:05:09 +0000</pubDate>
                        <description><![CDATA[Нашёл ответ на свой вопрос. I2C на плате сделан программный..]]></description>
                        <content:encoded><![CDATA[<p>Нашёл ответ на свой вопрос. I2C на плате сделан программный..  </p>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/stm32/">STM32</category>                        <dc:creator>Алекsей</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/stm32/stm32-dlya-nachinayushhih/paged/23/#post-3994</guid>
                    </item>
				                    <item>
                        <title>НА: STM32 для начинающих</title>
                        <link>https://microtechnics.ru/community/stm32/stm32-dlya-nachinayushhih/paged/22/#post-3993</link>
                        <pubDate>Mon, 10 Nov 2025 08:04:50 +0000</pubDate>
                        <description><![CDATA[Нашёл ответ на свой вопрос.
Чудес не бывает, если в документации на микроконтроллер нет таких альтернативных функций на нужных выводах, значит их там действительно нет. I2C на данной плате ...]]></description>
                        <content:encoded><![CDATA[<p>Нашёл ответ на свой вопрос.</p>
<p>Чудес не бывает, если в документации на микроконтроллер нет таких альтернативных функций на нужных выводах, значит их там действительно нет. I2C на данной плате сделан программный.. Зачем не понятно.  </p>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/stm32/">STM32</category>                        <dc:creator>Алекsей</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/stm32/stm32-dlya-nachinayushhih/paged/22/#post-3993</guid>
                    </item>
				                    <item>
                        <title>НА: STM32 для начинающих</title>
                        <link>https://microtechnics.ru/community/stm32/stm32-dlya-nachinayushhih/paged/22/#post-3992</link>
                        <pubDate>Sun, 09 Nov 2025 04:38:36 +0000</pubDate>
                        <description><![CDATA[GPIOI-&gt;AFR &amp;= ~GPIO_AFRL_AFRL7;                   // функция от 0 до 7
GPIOI-&gt;AFR |= (8 &lt;&lt; GPIO_AFRL_AFSEL7_Pos);  // порт 8
 
 GPIOI-&gt;AFR &amp;= ~GPIO_AFRL_AF...]]></description>
                        <content:encoded><![CDATA[<div><span> GPIOI-&gt;AFR &amp;= ~GPIO_AFRL_AFRL7;                   // функция от 0 до 7</span></div>
<div><span>GPIOI-&gt;AFR |= (8 &lt;&lt; GPIO_AFRL_AFSEL7_Pos);  // порт 8</span></div>
<div> </div>
<div><span> GPIOI-&gt;AFR &amp;= ~GPIO_AFRL_AFRL7;                     // функция от 0 до 7</span></div>
<div><span>GPIOI-&gt;AFR |= (11 &lt;&lt; GPIO_AFRL_AFSEL7_Pos);  // порт 11</span></div>
<div> </div>
<div>Так вернее, пока до конца не пойму, как подобрать нужные настройки..</div>
<div>(ещё есть старшый регистр)</div>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/stm32/">STM32</category>                        <dc:creator>Алекsей</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/stm32/stm32-dlya-nachinayushhih/paged/22/#post-3992</guid>
                    </item>
				                    <item>
                        <title>НА: STM32 для начинающих</title>
                        <link>https://microtechnics.ru/community/stm32/stm32-dlya-nachinayushhih/paged/22/#post-3991</link>
                        <pubDate>Sun, 09 Nov 2025 04:09:50 +0000</pubDate>
                        <description><![CDATA[Здравствуйте !
Вопрос не очень &quot;понятный&quot;. Пришла плата с контроллером и дисплеем (алиэкспресс). Демо прошивка работает и сенсорный экран тоже работает.
Вопрос по подключению драйвера сенс...]]></description>
                        <content:encoded><![CDATA[<p>Здравствуйте !</p>
<p>Вопрос не очень "понятный". Пришла плата с контроллером и дисплеем (алиэкспресс). Демо прошивка работает и сенсорный экран тоже работает.</p>
<p>Вопрос по подключению драйвера сенсорной панели GT911, по интерфейсу I2C. <br />Она подключена на выводы контроллера (stm32h7) PI11 - SCLK и PI8 - SDA. В документации на контроллер эти выводы нельзя настроить на данный I2C интерфейс. Но повторюсь, демо прошивка работает !</p>
<p>Соответственно, CubEde не даёт настроить эти выводы. </p>
<p>&nbsp;</p>
<p>Тоже ошибку выдаёт, нет такой функции - <span>GPIO_AFRL_AFRL8</span></p>
<div><span> GPIOI-&gt;AFR &amp;= ~GPIO_AFRL_AFRL8;</span></div>
<div><span>GPIOI-&gt;AFR |= (4 &lt;&lt; GPIO_AFRL_AFSEL3_Pos);</span></div>
<p>Если попробовать сделать настройки через регистры напрямую ? (правда не пойму как..) </p>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/stm32/">STM32</category>                        <dc:creator>Алекsей</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/stm32/stm32-dlya-nachinayushhih/paged/22/#post-3991</guid>
                    </item>
							        </channel>
        </rss>
		