Nemáte někdo odkazy na YouTube na tutoriály v českém jazyce kde se mohu naučit s tímto pracovat například na kitu STM32F0DISCOVERY rozsvítit ledky ,obsluhovat user button nebo ADC převodník vypisovat po sériové lince Anglicky bohužel neumím
STM32CubeIDE programování
STM32CubeIDE programování
Zdravím
Nemáte někdo odkazy na YouTube na tutoriály v českém jazyce kde se mohu naučit s tímto pracovat například na kitu STM32F0DISCOVERY rozsvítit ledky ,obsluhovat user button nebo ADC převodník vypisovat po sériové lince Anglicky bohužel neumím
díky všem
Nemáte někdo odkazy na YouTube na tutoriály v českém jazyce kde se mohu naučit s tímto pracovat například na kitu STM32F0DISCOVERY rozsvítit ledky ,obsluhovat user button nebo ADC převodník vypisovat po sériové lince Anglicky bohužel neumím
Re: STM32CubeIDE programování
Tak v češtině nevím na trubce o ničem. Ale vyšly tři docela povedené knihy (základní je tahle https://www.alza.cz/media/programujeme- ... 058927.htm)
Re: STM32CubeIDE programování
Tak jsem si ji koupil abych si udělal radost na ty Vánoce
a po zběžném pročtení i když to je děláno na desku NUCLEO-L073RZ ale já mám desku STM32F0DISCOVERY i desku STM32 VL Discovery tak doufám že alespoň rozblikám LED
a hlavně na ty vánoce zapomenu.O té knize jsem věděl už před tým dočetl jsem se o ní na MCU.CZ myslím od samotného autora který si tam dělal promo díky
Re: STM32CubeIDE programování
Já jsem si ji koupil už před časem, spíše ze zvědavosti, a docela mile mě překvapila. Tak jsem koupil i další dva díly, ale zatím nebyl čas a klid se do nich ponořit.
Z toho že nemáš přesně tu desku, si nemusíš dělat hlavu. Základní funkce v HAL knihovnách se jmenují stejně pro téměř všechny MCU a případný překlad z angličtiny velmi dobře zvládne třeba deepl.com. nebo i google translator.
Z toho že nemáš přesně tu desku, si nemusíš dělat hlavu. Základní funkce v HAL knihovnách se jmenují stejně pro téměř všechny MCU a případný překlad z angličtiny velmi dobře zvládne třeba deepl.com. nebo i google translator.
Re: STM32CubeIDE programování
Já nevím kde dělám chybu? snažím se postupovat podle té knihy ,samozřejmě s ohledem na jinou desku v mém případě STM32-VL DISCOVERY trávím u toho 2 hodiny a pálím elektriku desktop žere, na notebooku nemám na SSD místa abych si mohl hrát celý den je to rozdíl v spotřebě desktop "pálí" 80 W a notebook do 30 W díky
Kód: Vybrat vše
14:07:40 **** Incremental Build of configuration Debug for project Kniha_LED ****
make -j4 all
arm-none-eabi-gcc "../Core/Src/main.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F100xB -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/main.d" -MT"Core/Src/main.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Core/Src/main.o"
../Core/Src/main.c: In function 'main':
../Core/Src/main.c:96:22: error: 'PC8' undeclared (first use in this function)
96 | HAL_GPIO_WritePin(PC8,LD4[Blue], GPIO_PIN_RESET);
| ^~~
../Core/Src/main.c:96:22: note: each undeclared identifier is reported only once for each function it appears in
../Core/Src/main.c:96:26: error: 'LD4' undeclared (first use in this function)
96 | HAL_GPIO_WritePin(PC8,LD4[Blue], GPIO_PIN_RESET);
| ^~~
../Core/Src/main.c:96:30: error: 'Blue' undeclared (first use in this function)
96 | HAL_GPIO_WritePin(PC8,LD4[Blue], GPIO_PIN_RESET);
| ^~~~
make: *** [Core/Src/subdir.mk:34: Core/Src/main.o] Error 1
"make -j4 all" terminated with exit code 2. Build might be incomplete.
14:07:41 Build Failed. 4 errors, 0 warnings. (took 471ms)
Re: STM32CubeIDE programování
Když se podíváš na funkci HAL_GPIO_WritePin, tak je první argument adresa portu, druhý argument adresa pinu a pak požadovaný stav. Překladač ti nadává že PC8 není adresa portu a pak že máš nějakou nedeklarovanou proměnnou.
Tady je popis té funkce z dokumentace HALu.
Argumenty funkce:
GPIO_TypeDef *GPIOx tohle je ukazatel na proměnnou s názvem GPIOx a typu GPIO_TypeDef, což je vlastně adresa (32bitů) registru IO portu.
uint16_t GPIO_Pin je pozice IO pinu vyjádřená jako 16ti bitové číslo
GPIO_PinState PinState je výčtový typ GPIO_PinState s hodnotami GPIO_PIN_SET (jednička) nebo GPIO_PIN_RESET (nula)
Jestli chceš, tak ti mohu večer vygenerovat blikací projekt pro ten tvůj MCu a poslat a pak si ho jen naimportuješ a můžeš se v tom hrabat.
Tady je popis té funkce z dokumentace HALu.
Kód: Vybrat vše
/**
* @brief Sets or clears the selected data port bit.
*
* @note This function uses GPIOx_BSRR register to allow atomic read/modify
* accesses. In this way, there is no risk of an IRQ occurring between
* the read and the modify access.
*
* @param GPIOx: where x can be (A..G depending on device used) to select the GPIO peripheral
* @param GPIO_Pin: specifies the port bit to be written.
* This parameter can be one of GPIO_PIN_x where x can be (0..15).
* @param PinState: specifies the value to be written to the selected bit.
* This parameter can be one of the GPIO_PinState enum values:
* @arg GPIO_PIN_RESET: to clear the port pin
* @arg GPIO_PIN_SET: to set the port pin
* @retval None
*/
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
{GPIO_TypeDef *GPIOx tohle je ukazatel na proměnnou s názvem GPIOx a typu GPIO_TypeDef, což je vlastně adresa (32bitů) registru IO portu.
uint16_t GPIO_Pin je pozice IO pinu vyjádřená jako 16ti bitové číslo
GPIO_PinState PinState je výčtový typ GPIO_PinState s hodnotami GPIO_PIN_SET (jednička) nebo GPIO_PIN_RESET (nula)
Jestli chceš, tak ti mohu večer vygenerovat blikací projekt pro ten tvůj MCu a poslat a pak si ho jen naimportuješ a můžeš se v tom hrabat.
Re: STM32CubeIDE programování
Mě by stačilo poradit jak opravit ten řádek kde je ta chyba.Jinak by mě bodlo mnohem víc naimportovat ten projekt HDO http://1-2-8.net/mwva/mrazik/hdo/stm32f051_hdo.tgz do STM32CubeIDE díky
Re: STM32CubeIDE programování
Teď jsem si všimnul, jak máš ten pin pojmenovaný a to je ten problém. Identifikátrory pinů jsou použité jako názvy a platí pro ně vše co pro názvy identifikátorů v C. Nesmí začínat číslem, obsahuje malé a velké písmena a čísla a znak podtržítko.
Takže ne LD4[Blue] (to kompiler chápe jako identifikátor pole) ale třeba LD4_BLUE. Pak je název pinu LD4_BLUE_Pin a port má název LD4_BLUE_GPIO_Port.
Takže pro zápis na port to bude
nebo múžeš místo 0,1 použít GPIO_PIN_RESET , GPIO_PIN_SET
S tím importem ti nepomůžu, je to vytvořené úplně jinak než je struktura projektu v CubeIDE
Takže ne LD4[Blue] (to kompiler chápe jako identifikátor pole) ale třeba LD4_BLUE. Pak je název pinu LD4_BLUE_Pin a port má název LD4_BLUE_GPIO_Port.
Takže pro zápis na port to bude
Kód: Vybrat vše
HAL_GPIO_WritePin(LD4_BLUE_GPIO_Port, LD4_BLUE_Pin, 0); //pin do L
HAL_GPIO_WritePin(LD4_BLUE_GPIO_Port, LD4_BLUE_Pin, 1); //pin do H
S tím importem ti nepomůžu, je to vytvořené úplně jinak než je struktura projektu v CubeIDE
Re: STM32CubeIDE programování
Kód: Vybrat vše
21:19:36 **** Incremental Build of configuration Debug for project Kniha_LED ****
make -j4 all
arm-none-eabi-gcc "../Core/Src/main.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F100xB -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/main.d" -MT"Core/Src/main.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Core/Src/main.o"
../Core/Src/main.c: In function 'main':
../Core/Src/main.c:96:22: error: 'LD4_BLUE_GPIO_Port' undeclared (first use in this function); did you mean 'LD4_GPIO_Port'?
96 | HAL_GPIO_WritePin(LD4_BLUE_GPIO_Port, LD4_BLUE_Pin, 0); //pin do L
| ^~~~~~~~~~~~~~~~~~
| LD4_GPIO_Port
../Core/Src/main.c:96:22: note: each undeclared identifier is reported only once for each function it appears in
../Core/Src/main.c:96:42: error: 'LD4_BLUE_Pin' undeclared (first use in this function)
96 | HAL_GPIO_WritePin(LD4_BLUE_GPIO_Port, LD4_BLUE_Pin, 0); //pin do L
| ^~~~~~~~~~~~
make: *** [Core/Src/subdir.mk:34: Core/Src/main.o] Error 1
"make -j4 all" terminated with exit code 2. Build might be incomplete.
21:19:37 Build Failed. 3 errors, 0 warnings. (took 1s.454ms)Re: STM32CubeIDE programování
A přejmenoval jsi si ty piny? Jestli ne, tak znovu v CubeIDE otevři CubeMX (poklepat na soubor konfigurace jmenoprojektu.ioc ), tam to změň a ulož (Ctrl+S). Pak zkus zase přeložit.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host