Ñòðàíèöà 69 èç 69 ÏåðâàÿÏåðâàÿ ... 195966676869
Ïîêàçàíî ñ 681 ïî 689 èç 689

Òåìà: Ïðîãðàììèðîâàíèå STM32

  1. #681
    Öèòàòà Ñîîáùåíèå îò Levontay Ïîñìîòðåòü ñîîáùåíèå
    STM32F103C8T6
    Blue Pill
    ÐÑ13
    Åñëè ÿ ïðàâèëüíî ïîíÿë âàøó èäåþ, òî âû õîòèòå ìåíÿòü ïåðèîä òàéìåðà â çàâèñèìîñòè îò çíà÷åíèé ïîëó÷åííûõ ÷åðåç ÀÖÏ, è ìåíÿòü ñîñòîÿíèå ñâåòèêà â çàâèñèìîñòè îò ïåðèîäà òàéìåðà. Åñòü îøèáêè:

    1.  ôóíêöèè îáðàòíîãî âûçîâà ñîáûòèÿ òàéìåðà âû ïåðåíàñòðàèâàåòå òàéìåð ïîëíîñòüþ. Ìåíÿòü ïåðèîä òàéìåðà "íà ëåòó" ìîæíî, íî íå ÷åðåç TIM_Base_SetConfig() â îáðàáîò÷èêå ïðåðûâàíèÿ! Ýòà ôóíêöèÿ ïåðåèíèöèàëèçèðóåò âåñü òàéìåð, âêëþ÷àÿ ñáðîñ ñ÷¸ò÷èêà, ÷òî ìîæåò íàðóøèòü ðàáîòó è äàæå çàáëîêèðîâàòü ïðåðûâàíèÿ.

    2. Íå ñòîèò â êîëáýêå äåëàòü ãðîìîçäêèé êîä, ëó÷øå ìåíÿòü êàêîé íèáóäü ôëàã, à ëîãèêó ðàáîòû óæå â îñíîâíîì öèêëå ñäåëàòü.

    Âîò ññûëêà íà ìîé ïðèìåð ïîä âàø F103, ïîä STM32CubeIDE v1.19.0. Äëÿ ÷èòàåìîñòè êîäà ëîãèêó ðàáîòû ñäåëàë â îòäåëüíûõ ôàéëàõ tim_led.h è tim_led.c, â main.c òîëüêî çàïóñêàåì òàéìåð, ïðè ñòàðòå âûçîâàÿ TIM_Init().

    Âîò ôóíêöèÿ îáðàòíîãî âûçîâà (êîëáýêà)

    Êîä:
    /* Ôóíêöèÿ îáðàòíîãî âûçîâà TIM1  */
    /*
     * ×òîáû ýòî êîëáýê ðàáîòàë,
     * íàäî â íàñòðîéêàõ òàéìåðà âêëþ÷èòü Trigger Event Selection = Update Event
     * è âêëþ÷èòü ïðåðûâàíèÿ NVIC îò TIM1 update interrupt
     */
    voidHAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
    {
    if(htim->Instance == TIM1) //Åñëè îáðàòíûé âûçîâ îò TIM1
        {
           //Ìåíÿåì ñîñòîÿíèå ñâåòèêà íà PC13
            GPIOC->ODR ^= GPIO_ODR_ODR13;
    
           //Óâåëè÷èâàåì ïåðèîä
          blink_period += STEP_PERIOD;
           //Åñëè äîñòèãëè óñòàíîâëåííîãî ïðåäåëà, ñáðàñûâàåì
           if (blink_period > MAX_BLINK_PERIOD) blink_period = 500;
    
           //Îáíîâëÿåì ARR (ïåðèîä) òàéìåðà
          __HAL_TIM_SET_AUTORELOAD(&htim1, blink_period);
        }
    }
    
    
     àðõèâå ïðîåêòà ïðèìåðà åñòü PDF ôàéë êîíôèãóðàöèè ïåðåôåðèè â CubeIDE, òàêîé PDF òàì æå è ãåíåðèðóåòñÿ. Ìîæíî ïîñìîòðåòü, ÷òî è êàê íàñòðîåíî, âêëþ÷åíî.

    Âèäåî ðàáîòû ïðèìåðà.


  2. #682

    Ðåãèñòðàöèÿ
    14.06.2018
    Àäðåñ
    Ñàíêò-Ïåòåðáóðã
    Ñîîáùåíèé
    1,959
    Òåîðåòè÷åñêè ìîæíî îáîéòèñü äìà, ïåðåêëàäûâàÿ âûáîðêè èç àöï â òàéìåð, áåç ïðåðûâàíèé è ñ èíñòðóêöèåé wfi â öèêëå ïîñëå èíèöèàëèçàöèè ïåðèôåðèè. Ïðîöåññîð áóäåò ñïàñòü, à èçìåíåíèå íàïðÿæåíèÿ íà âõîäå àöï èçìåíÿòü ÿðêîñòü ñâåòîäèîäà.
    Îáóçäàòü ôàíòàçèþ ñïîñîáíû ëèøü çíàíèå è îïûò.

  3. #683
    Öèòàòà Ñîîáùåíèå îò veso74 Ïîñìîòðåòü ñîîáùåíèå
    __HAL_TIM_SET_AUTORE LOAD(&htim, value);
    Êîä:
         __HAL_TIM_SET_AUTORELOAD(&htim1, htim1.Init.Period);
    - ñðàáîòàëî.
    - Ñïàñèáî.



    Ñòðàííî: ÿ èñïîëüçîâàë:
    Êîä:
         TIMx->ARR = htim1.Init.Period;
        TIM_Base_SetConfig(htim->Instance, &htim->Init);
    Êîä:
    
    
    - è êàêàÿ ðàçíèöà? ß òðàññèðîâàë ïðîöåäóðó è íå íàø¸ë ÷åãî-òî âàæíîãî. Íàâåðíîå òàì, â òîé ïðîöåäóðå, ïîñëå "Period", íà ýòî âëèÿåò åù¸ ÷òî-òî, è îíî ïåðåîïðåäåëÿåòñÿ îòäåëüíî...


    Öèòàòà Ñîîáùåíèå îò veso74 Ïîñìîòðåòü ñîîáùåíèå
    îòêëþ÷èòå îïòèìèçàöèþ â íàñòðîéêàõ êîìïèëÿòîðà.

    Òàê ÷òî-ëè?:
    ÏÊÌ ïî ïðîåêòó â «Ïðîåêòå» - «Ñâîéñòâà» - «C/C++ Build» > «Íàñòðîéêè» -  ïðàâîé ÷àñòè îêíà «Íàñòðîéêè èíñòðóìåíòà» -  ðàçäåëå «MCU/GCC Compiler» âûáðàòü «Îïòèìèçàöèÿ».
    Ó ìåíÿ òàê:
    https://yadi.sk/d/_NCtXKxkEunz2w
    - ïóñòî !?..






    Öèòàòà Ñîîáùåíèå îò veso74 Ïîñìîòðåòü ñîîáùåíèå
    Ïåðåâåñòèòå ïåðåìåííóþ AD_RES (ãëîáàëüíàÿ?) â òèïó: volatile uint16_t AD_RES = 0;
    - äà - ãëîáàëüíàÿ:
    Êîä:
    /* USER CODE BEGIN 0 */
    /* int AD_RES; */
    volatile uint16_t AD_RES = 0;









    Öèòàòà Ñîîáùåíèå îò veso74 Ïîñìîòðåòü ñîîáùåíèå
    Âêëþ÷åíî ëè ïðåðûâàíèå NVIC ïî TIM1?
    - äà.
    https://yadi.sk/d/BbpA26eOfKlvVw
    Íàâåðíî çäåñü?:
    Êîä:
    NVIC.TIM1_UP_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true





    Öèòàòà Ñîîáùåíèå îò veso74 Ïîñìîòðåòü ñîîáùåíèå
    Ïîìåñòèòå ïåðåìåííûå â Variable/LiveExpression îòëàä÷èêà, óñòàíîâèòå òî÷êè îñòàíîâà è íàáëþäàéòå çà èõ èçìåíåíèåì. Ñìîòðèòå èçìåíåíèå APP â ðåãèñòðàõ òàéìåðà.
    - Äà - äåëàþ ýòî.

    Äîáàâëåíî ÷åðåç 7 ìèíóò(û):

    Öèòàòà Ñîîáùåíèå îò R9OFG Ïîñìîòðåòü ñîîáùåíèå
    Îòïðàâëÿòü çíà÷åíèÿ ïåðåìåííûõ â UART
    - è äàëüøå? - ñìîòðåòü ÷åì-òî íàäî: "STM32CubeMonito r"-? à îí ìîé ïðîãðàììàòîð íå âèäèò.

    È ïî÷åìó â òåõíè÷åñêèõ ñëîâàõ âñòðå÷àþòñÿ ïðîáåëû.. ß äóìàë - àâòîð "ïðîáåëèâàåò", à ùàñ âèæó - ñàéò ñïåöèàëüíî ïîäñòàâëÿåò. - Ìîäåðàòîðû ëþáÿò ïîøóòèòü.



    Öèòàòà Ñîîáùåíèå îò R9OFG Ïîñìîòðåòü ñîîáùåíèå
    Ïðîãðàììàòîð ïðàâèëüíûé íóæåí.
    Êàêîé ïðîãðàììàòîð? - äàéòå ïðèìåð. Ó ìåíÿ - STLink.
    Ïîñëåäíèé ðàç ðåäàêòèðîâàëîñü Levontay; 25.11.2025 â 08:13.

  4. #684

    Ðåãèñòðàöèÿ
    12.09.2006
    Àäðåñ
    Áîëãàðèÿ, Ñèëèñòðà, KN34PC
    Ñîîáùåíèé
    2,251
    Ïîçûâíîé
    LZ2WSG
    Êîä:
    ÏÊÌ ïî ïðîåêòó â «Ïðîåêòå» - «Ñâîéñòâà» - «C/C++ Build» > «Íàñòðîéêè» -  ïðàâîé ÷àñòè îêíà «Íàñòðîéêè èíñòðóìåíòà» -  ðàçäåëå «MCU/GCC Compiler» âûáðàòü «Îïòèìèçàöèÿ».
    Ó ìåíÿ òàê: ... - ïóñòî !?..
    Ãäå âàøè îïöèè IDE? Êàêóþ âåðñèþ èñïîëüçóåòå? Linux âåðñèÿ, ñòàðàÿ âåðñèÿ, íåïîëíàÿ âåðñèÿ, âåðñèÿ áåç óñòàíîâêè, äðóãàÿ? Äîëæíî áûòü ìíîãî ïàðàìåòðîâ, ïîëåçíûõ.
    Íèæå: v6.14 íà win7 64-áèò, è âàøè äëÿ ñðàâíåíèÿ
    ---
    Åñëè ïèøåòå íåïîñðåäñòâåííî â ðåãèñòð (CMSIS): íàïð. TIMx->ARR = value; òî ñòðîêà áóäåò ÎÊ. Åñëè ÷ðåç HAL (TIM_Base_SetConfig( htim->Instance, &htim->Init); ), òî íåîáõîäèìî çàïîëíèòü âñå ïàðàìåòðû ñòðóêòóðû Init (ïîñêîëüêó êîìïèëÿòîð óæå "çàáûë" åå).
    ---,
    "STM32CubeMonito r" - ôîðóìíàÿ òåêñòîâàÿ ôîðìà ñëîâ íàâåðíîå äî 15 ñèìâîëîâ => åñëè (áóêâû â ñëîâå) > 15 => àâòîìàòè÷åñêè ñòàâèòñÿ ïðîáåë.
    Ìèíèàòþðû Ìèíèàòþðû Íàæìèòå íà èçîáðàæåíèå äëÿ óâåëè÷åíèÿ. 

Íàçâàíèå:	Untitled-1.jpg 
Ïðîñìîòðîâ:	17 
Ðàçìåð:	293.8 Êá 
ID:	421720   Íàæìèòå íà èçîáðàæåíèå äëÿ óâåëè÷åíèÿ. 

Íàçâàíèå:	2025-11-25_04-29-28.png 
Ïðîñìîòðîâ:	12 
Ðàçìåð:	31.1 Êá 
ID:	421722  
    Ïîñëåäíèé ðàç ðåäàêòèðîâàëîñü veso74; 25.11.2025 â 09:33.

  5. #685
    Öèòàòà Ñîîáùåíèå îò R9OFG Ïîñìîòðåòü ñîîáùåíèå
    Ìåíÿòü ïåðèîä òàéìåðà "íà ëåòó" ìîæíî, íî íå ÷åðåç TIM_Base_SetConfig() â îáðàáîò÷èêå ïðåðûâàíèÿ!
    "+"



    Öèòàòà Ñîîáùåíèå îò R9OFG Ïîñìîòðåòü ñîîáùåíèå
    ìîé ïðèìåð ïîä âàø F103
    Ñïàñèáî.
    Â îíîì ïðèìåðå óêàçàíî:
    * ×òîáû ýòî êîëáýê ðàáîòàë,
    * íàäî â íàñòðîéêàõ òàéìåðà âêëþ÷èòü Trigger Event Selection = Update Event
    * è âêëþ÷èòü ïðåðûâàíèÿ NVIC îò TIM1 update interrupt
    */
    void HAL_TIM_PeriodElapse dCallback(TIM_Handle TypeDef *htim)

    Íî ó ìåíÿ è áåç íåãî ðàáîòàåò (ðàáîòàëî).

  6. #686
    Âûøëà STM32CibeIDE 2.0 âðîäå ðàáîòàåò.

  7. #687

    Ðåãèñòðàöèÿ
    08.12.2003
    Àäðåñ
    Ðîñòîâ íà Äîíó
    Ñîîáùåíèé
    81
    Ïîçûâíîé
    UC6N
    Öèòàòà Ñîîáùåíèå îò R9OFG Ïîñìîòðåòü ñîîáùåíèå
    Âûøëà STM32CibeIDE 2.0 âðîäå ðàáîòàåò.
    À ãäå ñêà÷àòü?

  8. #688
    Öèòàòà Ñîîáùåíèå îò udas Ïîñìîòðåòü ñîîáùåíèå
    À ãäå ñêà÷àòü?
    Ëèáî îáíîâèòü óñòàíîâëåííîå, ëèáî íà ñàéòå ST

  9. #689
    Ìû ðàäû ñîîáùèòü, ÷òî ðåëèç STM32CubeDE 2.0.0 äîñòóïåí.
    STM32CubeIDE òåïåðü íåçàâèñèì îò STM32CubeMX.
    Ñ ýòèì âûïóñêîì êîíôèãóðàöèÿ óñòðîéñòâà, ðàíåå îáðàáàòûâàâøàÿñÿ â ðàìêàõ STM32CubeIDE ÷åðåç STM32CubeMX, òåïåðü äîñòóïíà èñêëþ÷èòåëüíî ÷åðåç àâòîíîìíûé èíñòðóìåíò STM32CubeMX.
    Ïîëüçîâàòåëè íàñòðîÿò ïåðèôåðèþ ìèêðîêîíòðîëëåðà è ãåíåðèðóþò êîä èíèöèàëèçàöèè îòäåëüíî â STM32CubeMX, à çàòåì èìïîðòèðóþò ñãåíåðèðîâàííûå ïðîåêòû â STM32CubeIDE äëÿ êîäèðîâàíèÿ è îòëàäêè.
    STM32CubeIDE, òåïåðü ÿâëÿþùèéñÿ àâòîíîìíûì èíñòðóìåíòîì, ïðåäëàãàåò âîçìîæíîñòü ñîçäàâàòü ïóñòîé ïðîåêò ÷åðåç ñîáñòâåííûå ñåëåêòîðû MCU/Board, êîòîðûå ñåé÷àñ ïðèñóòñòâóþò âíóòðè.
    ×òî ýòî èçìåíåíèå îçíà÷àåò äëÿ ðàçðàáîò÷èêîâ?

    • Îòäåëüíàÿ çàãðóçêà è óñòàíîâêà: STM32CubeMX áîëüøå íå èíòåãðèðîâàí â STM32CubeIDE, òðåáóÿ îòäåëüíîé çàãðóçêè âìåñòå ñ STM32CubeIDE 2.0.0 äëÿ íàñòðîéêè è ãåíåðàöèè êîäà.


    • Ãèáêîñòü îáíîâëåíèÿ èíñòðóìåíòà: ðàçðàáîò÷èêè ìîãóò ñàìîñòîÿòåëüíî îáíîâëÿòü è çàìîðàæèâàòü STM32CubeMX è STM32CubeIDE ñ íåñêîëüêèìè âåðñèÿìè êàæäîé èç êîòîðûõ óñòàíîâëåíû áîê î áîê.
    • Memory footprint and performance:Óäàëåíèå STM32CubeMX óìåíüøàåò ðàçìåð óñòàíîâêè (~ 3.7GB äî 2,9GB) è ñíèæàåò èñïîëüçîâàíèå ïðîöåññîðà/RAM, óëó÷øàÿ ñòàáèëüíîñòü, îñîáåííî íà Linux è Mac.

    Äðóãèå ñîîòâåòñòâóþùèå îáíîâëåíèÿ â STM32CubeIDE 2.0.0

    • Ñïèñêè ìèêðîêîíòðîëëåðîâ, ìèêðîïðîöåññîðîâ è ïëàòû, ñîãëàñîâàííûå ñ STM32CubeMX v6.16.0:
      • Äîáàâëåíà ïîääåðæêà íîâûõ ìèêðîêîíòðîëëåðîâ â ñåðèè STM32N6
      • Äîáàâëåíà ïîääåðæêà íîâûõ ìèêðîêîíòðîëëåðîâ â ñåðèè STM32H5
      • Äîáàâëåíà ïîääåðæêà íîâûõ ìèêðîêîíòðîëëåðîâ â ñåðèè STM32WBA
      • Äîáàâëåíà ïîääåðæêà íîâûõ ìèêðîêîíòðîëëåðîâ â ëèíåéêå ïðîäóêòîâ STM32WL3x
      • Äîáàâëåíà ïîääåðæêà íîâûõ äîñîê: NUCLEO-WL3RKB1 è NUCLEO-WL3RKB2



    • Àóòåíòèôèêàöèÿ ïîëüçîâàòåëÿ óäàëåíà
    • ST-MCU-FINDER-PC óäàëåí
    • Ïîääåðæêà ST-ARM-CLANG, STMicroelectronics LLVM-îðèåíòèðîâàííîé öåïî÷êè èíñòðóìåíòîâ äëÿ Arm®, ÷åðåç ìåõàíèçì îáíîâëåíèÿ ñàéòà
    • Ïîääåðæêà öåïî÷êè èíñòðóìåíòîâ GCC 14 ÷åðåç ìåõàíèçì îáíîâëåíèÿ ñàéòà
    • Ïîääåðæêà ôóíêöèè ïîëóõîñòèíãà ÷åðåç îòëàäêó ÷åðåç ST-LINK GDB ñåðâåð
    • Ïîääåðæêà êîìïëåêòíûõ áèíàðíûõ èçäåëèé CMake/Ninja

    Îñíîâíûå èñïðàâëåííûå ïðîáëåìû â 2.0.0:
    Ñì. ìèêðîêîíòðîëëåð STM32 ïî àäðåñó:
    https://wiki.st.com/stm32mcu/wiki/ST...E_errata_2.0.x
    Èçâåñòíûå ïðîáëåìû è îãðàíè÷åíèÿ â 2.0.0:
    Ñì. ìèêðîêîíòðîëëåð STM32 ïî àäðåñó:
    https://wiki.st.com/stm32mcu/wiki/ST...E_errata_2.0.x
    Êàê ïîëó÷èòü STM32CubeIDE 2.0.0:

    • Ïîä ýòîé ññûëêîé
    • Èëè îáíîâèòå òåêóùóþ óñòàíîâêó STM32CubeIDE: Ñïðàâêà > Ïðîâåðêà îáíîâëåíèé (Îáíîâëåíèå â èíñòðóìåíòå íå ïîçâîëÿåò îáíîâëÿòü äðàéâåðû è èíñòðóìåíò ñåðâåðà STLINK. Äëÿ ýòîãî òðåáóåòñÿ ïîëíàÿ óñòàíîâêà).


    Äëÿ ïîëó÷åíèÿ äîïîëíèòåëüíîé èíôîðìàöèè, îáðàòèòåñü òàêæå ê ýòîé ññûëêå ïî àäðåñó:
    STM32CubeIDE 2.0.0 - ñîâìåñòèìîñòü âìåñòî èíòåãðàöèè


Ñòðàíèöà 69 èç 69 ÏåðâàÿÏåðâàÿ ... 195966676869

Èíôîðìàöèÿ î òåìå

Ïîëüçîâàòåëè, ïðîñìàòðèâàþùèå ýòó òåìó

Ýòó òåìó ïðîñìàòðèâàþò: 1 (ïîëüçîâàòåëåé: 0 , ãîñòåé: 1)

Ïîõîæèå òåìû

  1. Àíàëèçàòîð kuchura ñ ãðàôèêîé íà STM32
    îò khach â ðàçäåëå Àíòåííûå ïðèáîðû
    Îòâåòîâ: 4206
    Ïîñëåäíåå ñîîáùåíèå: 29.10.2025, 18:08
  2. Ïîëíîöåííûé àäàïòåð USB-Serial ñ 3 UART ïîðòàìè íà STM32 Blue Pill (STM32F103C8T6)
    îò r2axz â ðàçäåëå Êîíñòðóêöèè íà ìèêðîêîíòðîëëåðàõ äëÿ ðàäèîëþáèòåëåé
    Îòâåòîâ: 26
    Ïîñëåäíåå ñîîáùåíèå: 24.03.2023, 11:06
  3. Àíàëîãè STM32
    îò RA1AGB â ðàçäåëå Êîíñòðóêöèè íà ìèêðîêîíòðîëëåðàõ äëÿ ðàäèîëþáèòåëåé
    Îòâåòîâ: 26
    Ïîñëåäíåå ñîîáùåíèå: 30.12.2022, 11:54
  4. TP3067+stm32
    îò PAVELk781 â ðàçäåëå Êîíñòðóêöèè íà ìèêðîêîíòðîëëåðàõ äëÿ ðàäèîëþáèòåëåé
    Îòâåòîâ: 12
    Ïîñëåäíåå ñîîáùåíèå: 23.06.2018, 19:45
  5. STM32 Discavery-ïåðâûé îïûò â ïðîãðàììèðîâàíèè íà Ñ
    îò DL2BDA â ðàçäåëå Êîíñòðóêöèè íà ìèêðîêîíòðîëëåðàõ äëÿ ðàäèîëþáèòåëåé
    Îòâåòîâ: 64
    Ïîñëåäíåå ñîîáùåíèå: 08.02.2017, 21:30

Âàøè ïðàâà

  • Âû íå ìîæåòå ñîçäàâàòü íîâûå òåìû
  • Âû íå ìîæåòå îòâå÷àòü â òåìàõ
  • Âû íå ìîæåòå ïðèêðåïëÿòü âëîæåíèÿ
  • Âû íå ìîæåòå ðåäàêòèðîâàòü ñâîè ñîîáùåíèÿ
  •