<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://cw.fel.cvut.cz/b201/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://cw.fel.cvut.cz/b201/feed.php">
        <title>CourseWare Wiki courses:a8m37mam:tutorials</title>
        <description></description>
        <link>https://cw.fel.cvut.cz/b201/</link>
        <image rdf:resource="https://cw.fel.cvut.cz/b201/lib/tpl/bulma-cw/images/favicon.ico" />
       <dc:date>2026-04-22T19:37:00+0200</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/01?rev=1604510528&amp;do=diff"/>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/02?rev=1604776553&amp;do=diff"/>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/03?rev=1604777411&amp;do=diff"/>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/04?rev=1605382470&amp;do=diff"/>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/05?rev=1607072073&amp;do=diff"/>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/06?rev=1605680780&amp;do=diff"/>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/start?rev=1604353326&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://cw.fel.cvut.cz/b201/lib/tpl/bulma-cw/images/favicon.ico">
        <title>CourseWare Wiki</title>
        <link>https://cw.fel.cvut.cz/b201/</link>
        <url>https://cw.fel.cvut.cz/b201/lib/tpl/bulma-cw/images/favicon.ico</url>
    </image>
    <item rdf:about="https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/01?rev=1604510528&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-04T18:22:08+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:a8m37mam:tutorials:01</title>
        <link>https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/01?rev=1604510528&amp;do=diff</link>
        <description>1. Úvod

Cíle cvičení

Co je třeba si připravit
STM32CubeIDE
Vytvoření projektu





RCC - Reset and Clock Control

Nastavení periferií v STM32F4 je rozděleno do skupin podle sběrnic, ke kterým jsou periferie připojeny:
AHB1 – USB OTG, Ethernet MAC, DMA2, DMA1, CRC module, GPIOx
AHB2 – USB OTG, Random generátor, Hash module, Cryptographic module, Camera interface
AHB3 – Flexible static memory controller
APB1 – DAC, Power interface, CAN2, CAN1, I2C2, I2C1, UART 2-5, SPI2, SPI3, Watchdog, TIM 2-7 …</description>
    </item>
    <item rdf:about="https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/02?rev=1604776553&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-07T20:15:53+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:a8m37mam:tutorials:02</title>
        <link>https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/02?rev=1604776553&amp;do=diff</link>
        <description>2. GPIO

Cíle cvičení

Co je třeba si připravit

Registry GPIO

Procesory řady STM32F4 obsahují hned několik 16b vstupně výstupních bran, např. procesor STM32F401 jich má osm, označených A-H. Vlastnosti GPIO bran lze nastavovat pomocí několika 32 bitových registrů.</description>
    </item>
    <item rdf:about="https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/03?rev=1604777411&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-07T20:30:11+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:a8m37mam:tutorials:03</title>
        <link>https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/03?rev=1604777411&amp;do=diff</link>
        <description>3. Systick

Cíle cvičení

Co je třeba si připravit

Systémový čítač SysTick

Jádra procesorů Cortex-M obsahují jednoduchý 24 bitový čítač, který je možné využít např. k měření času. Jedná se o jednu z klíčových periferií jádra, není proto dokumentován v referenčních manuálech procesorů, ale v Cortex-M programovacím</description>
    </item>
    <item rdf:about="https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/04?rev=1605382470&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-14T20:34:30+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:a8m37mam:tutorials:04</title>
        <link>https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/04?rev=1605382470&amp;do=diff</link>
        <description>4. Přerušení

Cíle cvičení

External Interrupt/Event Controller - EXTI

Řadič externího přerušení EXTI má 23 kanálů. Je tedy možné vytvořit až 23 různých přerušení. Prvních 16 kanálů je určeno portům GPIO. Lze tedy libovolný pin libovolného GPIO připojit na jeden kanál, ale bohužel s malým omezením: ke kanálu</description>
    </item>
    <item rdf:about="https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/05?rev=1607072073&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-04T09:54:33+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:a8m37mam:tutorials:05</title>
        <link>https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/05?rev=1607072073&amp;do=diff</link>
        <description>5. Časovače

Nastavení časovače - PWM

Referenční manuál, str. 331.



#define PWMPERIOD 100
#define SAMPLE 100

void TIM4_IRQHandler(void)
{
    static uint32_t t = 0;
    static uint16_t duty = 0;

    // clear interrupt status
    if (TIM4-&gt;DIER &amp; 0x01) {
        if (TIM4-&gt;SR &amp; 0x01) {
            TIM4-&gt;SR &amp;= ~(1U &lt;&lt; 0);
        }
    }

    duty =(uint16_t)(PWMPERIOD/2.0 * (sin(2*M_PI*(double)t/(SAMPLE)) + 1.0));
    ++t;
    if (t == SAMPLE) t = 0;
    // set new duty cycle
    TIM4-&gt;CCR1 =…</description>
    </item>
    <item rdf:about="https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/06?rev=1605680780&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-18T07:26:20+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:a8m37mam:tutorials:06</title>
        <link>https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/06?rev=1605680780&amp;do=diff</link>
        <description>6. ADC



void initGPIO()
{
    RCC-&gt;AHB1ENR |= 0x01;

    /* configure PA0 as ADC_IN0 */
    GPIOA-&gt;MODER   |=  0x03;     /* analog mode */
    GPIOA-&gt;OSPEEDR |=  0x03;     /* high speed */
}

void initADC1()
{
    // initialize the HSI clock
    setbit(RCC-&gt;CR, 0);         // enable HSI
    while (!getbit(RCC-&gt;CR, 1));// wait until HSI stable

    // initialize the ADC
    setbit(RCC-&gt;APB2ENR, 8);     // enable ADC1 peripheral clock
    ADC-&gt;CCR = 0;                 // disable temperature sens…</description>
    </item>
    <item rdf:about="https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/start?rev=1604353326&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-02T22:42:06+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:a8m37mam:tutorials:start</title>
        <link>https://cw.fel.cvut.cz/b201/courses/a8m37mam/tutorials/start?rev=1604353326&amp;do=diff</link>
        <description>Cvičení

Prostor pro cvičení</description>
    </item>
</rdf:RDF>
