STM32F103C8T6 Համակարգի զարգացման նվազագույն խորհուրդ
Ապրանքի մասին տեղեկատվություն
STM32F103C8T6 ARM STM32 նվազագույն համակարգի զարգացման տախտակի մոդուլը մշակման տախտակ է, որը հիմնված է STM32F103C8T6 միկրոկառավարիչի վրա: Այն նախատեսված է Arduino IDE-ի միջոցով ծրագրավորվելու համար և համատեղելի է Arduino-ի տարբեր կլոնների, տարբերակների և երրորդ կողմի տախտակների հետ, ինչպիսիք են ESP32-ը և ESP8266-ը:
Տախտակը, որը նաև հայտնի է որպես Blue Pill Board, աշխատում է մոտավորապես 4.5 անգամ ավելի հաճախականությամբ, քան Arduino UNO-ն: Այն կարող է օգտագործվել տարբեր նախագծերի համար և կարող է միացված լինել ծայրամասային սարքերին, ինչպիսիք են TFT էկրանները:
Այս տախտակով նախագծեր կառուցելու համար անհրաժեշտ բաղադրիչներն են՝ STM32 տախտակը, FTDI ծրագրավորողը, գունավոր TFT էկրանը, սեղմման կոճակը, փոքր հացատախտակը, լարերը, էներգիայի բանկը (ըստ ցանկության առանձին ռեժիմի համար) և USB-ի սերիական փոխարկիչը:
Սխեմատիկ
STM32F1 տախտակը 1.8 ST7735-ի վրա հիմնված գունավոր TFT էկրանին և սեղմող կոճակին միացնելու համար հետևեք տրված սխեմաներում նկարագրված միացումներին:
Arduino IDE-ի կարգավորում STM32-ի համար
- Բացեք Arduino IDE-ը:
- Գնացեք Գործիքներ -> Տախտակ -> Վարչության կառավարիչ:
- Որոնման տողով երկխոսության վանդակում որոնեք «STM32F1» և տեղադրեք համապատասխան փաթեթը:
- Սպասեք տեղադրման ընթացակարգի ավարտին:
- Տեղադրվելուց հետո STM32 տախտակն այժմ պետք է հասանելի լինի Arduino IDE տախտակների ցանկում ընտրելու համար:
STM32 տախտակների ծրագրավորում Arduino IDE-ով
Իր ստեղծման օրվանից Arduino IDE-ն ցույց է տվել բոլոր տեսակի պլատֆորմներին աջակցելու ցանկությունը՝ սկսած Arduino կլոններից և տարբեր արտադրողների տարբերակներից մինչև երրորդ կողմի տախտակներ, ինչպիսիք են ESP32-ը և ESp8266-ը: Քանի որ ավելի շատ մարդիկ ծանոթանում են IDE-ին, նրանք սկսում են աջակցել ավելի շատ տախտակներ, որոնք հիմնված չեն ATMEL չիպերի վրա, և այսօրվա ձեռնարկի համար մենք կանդրադառնանք այդպիսի տախտակներից մեկին: Մենք կուսումնասիրենք, թե ինչպես ծրագրավորել STM32-ի վրա հիմնված, STM32F103C8T6 մշակման տախտակը Arduino IDE-ով:
Այս ձեռնարկի համար օգտագործվող STM32 տախտակը ոչ այլ ոք է, քան STM32F103C8T6 չիպի վրա հիմնված STM32F1 մշակման տախտակը, որը սովորաբար կոչվում է «Կապույտ հաբ»՝ իր PCB-ի կապույտ գույնին համապատասխան: Blue Pill-ը սնուցվում է հզոր 32-բիթանոց STM32F103C8T6 ARM պրոցեսորով՝ 72 ՄՀց հաճախականությամբ: Տախտակը գործում է 3.3 վ տրամաբանական մակարդակների վրա, սակայն դրա GPIO կապերը փորձարկվել են 5 վ հանդուրժողականության համար: Թեև այն չունի WiFi կամ Bluetooth, ինչպես ESP32 և Arduino տարբերակները, այն առաջարկում է 20 ԿԲ օպերատիվ հիշողություն և 64 ԿԲ ֆլեշ հիշողություն, ինչը համարժեք է դարձնում մեծ նախագծերի համար: Այն նաև ունի 37 GPIO փին, որոնցից 10-ը կարող են օգտագործվել անալոգային սենսորների համար, քանի որ դրանք միացված են ADC-ին, ինչպես նաև մյուսներին, որոնք միացված են SPI, I2C, CAN, UART և DMA-ի համար: Տախտակի համար, որն արժե մոտ $3, դուք կհամաձայնեք ինձ հետ, որ դրանք տպավորիչ բնութագրեր են: Այս բնութագրերի ամփոփ տարբերակը՝ համեմատած Arduino Uno-ի հետ, ներկայացված է ստորև նկարում:
Ելնելով վերը նշված բնութագրերից՝ Blue Pill-ի գործողության հաճախականությունը մոտ 4.5 անգամ ավելի բարձր է, քան Arduino UNO-ն, այսօրվա ձեռնարկի համար, որպես նախկինampԻնչպես օգտագործել STM32F1 տախտակը, մենք այն կմիացնենք 1.44 դյույմ TFT էկրանին և կծրագրավորենք այն հաշվարկելու «Pi» հաստատունը: Մենք կնշենք, թե որքան ժամանակ պահանջվեց տախտակին արժեքը ստանալու համար և համեմատենք այն ժամանակի հետ, որը պահանջվում է Arduino Uno-ից նույն առաջադրանքը կատարելու համար:
Պահանջվող բաղադրիչներ
Այս նախագիծը կառուցելու համար անհրաժեշտ են հետևյալ բաղադրիչները.
- STM32 տախտակ
- FTDI ծրագրավորող
- Գունավոր TFT
- Սեղմեք կոճակը
- Փոքր հացի տախտակ
- Լարեր
- Power Bank
- USB դեպի սերիական փոխարկիչ
Ինչպես միշտ, այս ձեռնարկի համար օգտագործվող բոլոր բաղադրիչները կարելի է գնել կից հղումներից: Էլեկտրաէներգիայի բանկը, այնուամենայնիվ, անհրաժեշտ է միայն այն դեպքում, եթե ցանկանում եք նախագիծը գործարկել առանձին ռեժիմով:
Սխեմատիկ
- Ինչպես նշվեց ավելի վաղ, մենք կմիացնենք STM32F1 տախտակը 1.8 դյույմանոց ST7735-ի վրա հիմնված գունավոր TFT էկրանին սեղմման կոճակի հետ միասին:
- Սեղմման կոճակը կօգտագործվի՝ խորհուրդ տալու համար, որ խորհուրդը սկսի հաշվարկը:
- Միացրեք բաղադրիչները, ինչպես ցույց է տրված ստորև ներկայացված սխեմայում:
Միացումների կրկնօրինակումը հեշտ դարձնելու համար STM32-ի և էկրանի միջև կապող միացումները նկարագրված են ստորև:
STM32 – ST7735
Անցեք կապերը ևս մեկ անգամ՝ համոզվելու համար, որ ամեն ինչ այնպես է, ինչպես պետք է լինի, քանի որ այն մի փոքր բարդ է դառնում: Դա անելով, մենք անցանք STM32 տախտակի տեղադրմանը, որը ծրագրավորվելու է Arduino IDE-ով:
Arduino IDE-ի կարգավորում STM32-ի համար
- Ինչպես Arduino-ի կողմից չպատրաստված տախտակների մեծ մասի դեպքում, անհրաժեշտ է մի փոքր կարգավորել նախքան տախտակը Arduino IDE-ով օգտագործելը:
- Սա ներառում է տախտակի տեղադրումը file կա՛մ Arduino խորհրդի մենեջերի միջոցով, կա՛մ ինտերնետից ներբեռնելով և պատճենելով files ապարատային թղթապանակում:
- Խորհրդի մենեջերի երթուղին ավելի քիչ հոգնեցուցիչն է, և քանի որ STM32F1-ը նշված տախտակների թվում է, մենք կգնանք այդ ճանապարհով: Սկսեք ավելացնելով STM32 տախտակի հղումը Arduino-ի նախապատվությունների ցուցակներում:
- Գնալ դեպի File -> Նախապատվություններ, ապա մուտքագրեք սա URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) վանդակում, ինչպես նշված է ստորև և սեղմեք OK:
- Now go to Tools -> Board -> Board Manager, it will open a dialogue box with a search bar. Որոնել STM32F1 and install the corresponding package.
- Տեղադրման կարգը կտևի մի քանի վայրկյան: Դրանից հետո տախտակն այժմ պետք է հասանելի լինի Arduino IDE տախտակի ցանկում ընտրելու համար:
Կոդ
- Կոդը կգրվի այնպես, ինչպես մենք կգրեինք ցանկացած այլ ուրվագիծ Arduino նախագծի համար, միակ տարբերությունն այն է, թե ինչպես են կապում հղումները:
- Որպեսզի կարողանանք հեշտությամբ մշակել կոդը այս նախագծի համար, մենք կօգտագործենք երկու գրադարան, որոնք երկուսն էլ ստանդարտ Arduino գրադարանների փոփոխություններն են, որպեսզի դրանք համատեղելի լինեն STM32-ի հետ:
- Մենք կօգտագործենք Adafruit GFX և Adafruit ST7735 գրադարանների փոփոխված տարբերակը:
- Երկու գրադարաններն էլ կարելի է ներբեռնել դրանց կցված հղումների միջոցով։ Ինչպես միշտ, ես կանեմ կոդի կարճ ընդհատում:
- Մենք սկսում ենք կոդը՝ ներմուծելով երկու գրադարանները, որոնք մենք կօգտագործենք:
- Այնուհետև մենք սահմանում ենք STM32-ի կապանքները, որոնց միացված են LCD-ի CS, RST և DC կապերը:
- Հաջորդը, մենք ստեղծում ենք գունային որոշ սահմանումներ, որպեսզի հեշտացնենք գույներն իրենց անուններով օգտագործելը կոդի մեջ ավելի ուշ՝ վեցանկյուն արժեքների փոխարեն:
- Այնուհետև մենք սահմանում ենք կրկնությունների քանակը, որոնց միջով պետք է անցնի տախտակը, ինչպես նաև թարմացման տևողությունը, որպեսզի օգտագործվի առաջընթացի սանդղակը:
- Դրանով մենք ստեղծում ենք ST7735 գրադարանի օբյեկտ, որը կօգտագործվի էկրանին հղում կատարելու համար ողջ նախագծի ընթացքում:
- Մենք նաև նշում ենք STM32-ի քորոցը, որին միացված է կոճակը և ստեղծում ենք փոփոխական՝ իր վիճակը պահելու համար:
- Դրանով մենք անցնում ենք void setup() ֆունկցիային:
- Մենք սկսում ենք դնելով pinMode() այն պտուտակի վրա, որին միացված է սեղմակը՝ ակտիվացնելով ներքին ձգվող դիմադրությունը պտուտակի վրա, քանի որ սեղմելիս կոճակը միանում է գետնին:
- Այնուհետև մենք նախաստորագրում ենք սերիական հաղորդակցությունը և էկրանը՝ էկրանի ֆոնը դնելով սևի և զանգահարելով տպման () ֆունկցիան՝ ինտերֆեյսը ցուցադրելու համար:
- Հաջորդը void loop() ֆունկցիան է: Void loop ֆունկցիան բավականին պարզ է և կարճ՝ շնորհիվ գրադարանների/գործառույթների օգտագործման:
- Մենք սկսում ենք կարդալով կոճակի վիճակը: Եթե կոճակը սեղմված է, մենք հեռացնում ենք ընթացիկ հաղորդագրությունը էկրանից՝ օգտագործելով removePressKeyText() և գծում ենք փոփոխվող առաջընթացի տողը՝ օգտագործելով drawBar() ֆունկցիան:
- Այնուհետև մենք կանչում ենք մեկնարկի հաշվարկման ֆունկցիան՝ Pi-ի արժեքը ստանալու և ցուցադրելու համար այն հաշվարկելու համար պահանջվող ժամանակի հետ միասին:
- Եթե կոճակը սեղմված չէ, սարքը մնում է անգործուն ռեժիմում՝ էկրանին պահանջելով սեղմել ստեղնը՝ դրա հետ փոխազդելու համար:
- Ի վերջո, օղակի վերջում տեղադրվում է ուշացում, որպեսզի մի քիչ ժամանակ տրամադրվի «օղակների» ուրվագծմանը:
- Կոդի մնացած մասը գործառույթներն են, որոնք կոչված են առաջադրանքներին հասնելու համար՝ տող նկարելուց մինչև Pi-ի հաշվարկը:
- Այս գործառույթների մեծ մասը լուսաբանվել է մի քանի այլ ձեռնարկներում, որոնք ներառում են ST7735 էկրանի օգտագործումը:
- Ծրագրի ամբողջական կոդը հասանելի է ստորև և կցված է ներբեռնման բաժնում:
Կոդի վերբեռնում STM32-ում
- Էսքիզների վերբեռնումը STM32f1-ում մի փոքր բարդ է՝ համեմատած ստանդարտ Arduino-ի հետ համատեղելի տախտակների հետ: Կոդը տախտակի վրա վերբեռնելու համար մեզ անհրաժեշտ է FTDI-ի վրա հիմնված USB-ից սերիական փոխարկիչ:
- Միացրեք USB-ը սերիական փոխարկիչին STM32-ին, ինչպես ցույց է տրված ստորև ներկայացված սխեմաներում:
Ահա կապի միացման քարտեզը կապում
FTDI – STM32
- Դա անելով, մենք այնուհետև փոխում ենք տախտակի վիճակի ցատկողի դիրքը մեկ դիրքի (ինչպես ցույց է տրված ստորև ներկայացված gif-ում), տախտակը ծրագրավորման ռեժիմում դնելու համար:
- Դրանից հետո մեկ անգամ սեղմեք տախտակի վերակայման կոճակը, և մենք պատրաստ ենք վերբեռնել կոդը:
- Համակարգչում համոզվեք, որ ընտրել եք «Generic STM32F103C board» և ընտրել սերիական վերբեռնման եղանակի համար, որից հետո կարող եք սեղմել վերբեռնման կոճակը:
- Վերբեռնումն ավարտվելուց հետո փոխեք վիճակի թռիչքը դիրքի «Օ» Սա տախտակը կդնի «վազում» ռեժիմում, և այն այժմ պետք է սկսի աշխատել՝ հիմնվելով վերբեռնված կոդի վրա:
- Այս պահին դուք կարող եք անջատել FTDI-ն և միացնել տախտակը իր USB-ով: Եթե սնուցումից հետո կոդը չի գործարկվում, համոզվեք, որ դուք ճիշտ եք վերականգնել ցատկողը և վերամշակել էներգիան տախտակին:
Դեմո
- Կոդն ավարտված լինելու դեպքում հետևեք վերևում նկարագրված վերբեռնման գործընթացին, որպեսզի վերբեռնեք կոդը ձեր կարգավորումներում:
- Դուք պետք է տեսնեք, որ էկրանը դուրս է գալիս, ինչպես ցույց է տրված ստորև նկարում:
- Սեղմեք սեղմման կոճակը՝ հաշվարկը սկսելու համար: Դուք պետք է տեսնեք, որ առաջընթացի սանդղակը աստիճանաբար սահում է մինչև վերջ:
- Գործընթացի վերջում Pi-ի արժեքը ցուցադրվում է հաշվարկի ժամանակի հետ միասին:
- Նույն կոդը իրականացվում է Arduino Uno-ի վրա: Արդյունքը ներկայացված է ստորև ներկայացված նկարում:
- Համեմատելով այս երկու արժեքները՝ մենք տեսնում ենք, որ «Blue Pill»-ը 7 անգամ ավելի արագ է, քան Arduino Uno-ն:
- Սա այն դարձնում է իդեալական այն նախագծերի համար, որոնք ներառում են ծանր մշակում և ժամանակի սահմանափակում:
- Կապույտ դեղահաբի փոքր չափը նույնպես ծառայում է որպես առավելությունtagԱյստեղ, քանի որ այն ընդամենը մի փոքր ավելի մեծ է, քան Arduino Nano-ն, և այն կարող է օգտագործվել այն վայրերում, որտեղ Nano-ն բավականաչափ արագ չի լինի:
Փաստաթղթեր / ռեսուրսներ
![]() |
STM32 STM32F103C8T6 Համակարգի զարգացման նվազագույն խորհուրդ [pdf] Օգտագործողի ձեռնարկ STM32F103C8T6 Համակարգի զարգացման նվազագույն խորհուրդ, STM32F103C8T6, նվազագույն համակարգի զարգացման խորհուրդ, համակարգի զարգացման խորհուրդ, զարգացման խորհուրդ, խորհուրդ |