Բովանդակություն:

STONE Display +STM32 +Սուրճ պատրաստող ՝ 6 քայլ
STONE Display +STM32 +Սուրճ պատրաստող ՝ 6 քայլ

Video: STONE Display +STM32 +Սուրճ պատրաստող ՝ 6 քայլ

Video: STONE Display +STM32 +Սուրճ պատրաստող ՝ 6 քայլ
Video: STONE screen of the medical ventilator application 2024, Սեպտեմբեր
Anonim
STONE Display +STM32 +սուրճ պատրաստող սարք
STONE Display +STM32 +սուրճ պատրաստող սարք

Ես MCU ծրագրային ապահովման ինժեներ եմ, վերջերս ստացել եմ սուրճի սարք լինելու նախագիծը, սենսորային էկրանով տնային տնտեսության պահանջները, գործառույթը լավ է, էկրանի վերևում ընտրությունը կարող է շատ լավ չլինել, բարեբախտաբար, այս նախագիծը ես կարող եմ որոշել, թե ինչ MCU- ն ինքնուրույն օգտագործելու համար կարող է օգտագործվել նաև էկրանը որոշելու համար, ուստի ես ընտրեցի այս տեսակի պարզ և հեշտ MCU- ի STM32- ը, ցուցադրման էկրան Ես ընտրեցի STONE- ի սենսորային էկրանը, էկրանը պարզ է և հեշտ օգտագործման համար, իմը STM32 MCU- ն միայն UART հաղորդակցության միջոցով լավ է դրան:

STONE սերիական LCD էկրան, որը կարող է հաղորդակցվել MCU- ի սերիական նավահանգստի միջոցով: Միևնույն ժամանակ, այս ցուցադրման էկրանի UI ինտերֆեյսի տրամաբանական դիզայնը կարող է նախագծվել ուղղակիորեն `օգտագործելով STONE- ի պաշտոնական կայքի տրամադրած STONE TOOL Box- ը, ինչը շատ հարմար է: Այսպիսով, ես պատրաստվում եմ օգտագործել այն սուրճի մեքենայի նախագծի համար: Միևնույն ժամանակ, ես պարզապես կարձանագրեմ հիմնական զարգացումը: Քանի որ սա իմ ընկերության նախագիծն է, ես միայն մի պարզ ցուցադրական ձայնագրություն կանեմ և չգրեմ ամբողջական ծածկագիրը: Քարի ցուցադրման էկրանի վերաբերյալ որոշ հիմնական ձեռնարկներ կարող են այցելել վեբ կայք ՝ https://www.stoneitech.com/ Կայքն ունի բազմազան տեղեկատվություն մոդելի, օգտագործման և նախագծման փաստաթղթերի, ինչպես նաև վիդեո ձեռնարկների մասին: Այստեղ ես շատ մանրամասն չեմ անդրադառնա:

Քայլ 1. Սուրճի մեքենայի ցուցադրման էկրանի գործառույթի ներածություն

Այս նախագիծն ունի հետևյալ գործառույթները

  • Ուցադրում է ընթացիկ ժամն ու ամսաթիվը
  • Էկրանի վրա կա չորս կոճակ ՝ ամերիկանո, լատե, կապուչինո և էսպրեսսո:
  • Coffeeուցադրում է սուրճի մնացած հատիկների, կաթի և սուրճի շաքարի ընթացիկ քանակությունը
  • Տեքստի ցուցադրման տուփը ցույց է տալիս ընթացիկ վիճակը

Այս հասկացությունները նկատի ունենալով ՝ կարող եք նախագծել UI ինտերֆեյս: UI դիզայնի հպման էկրանների STONE- ը համեմատաբար պարզ է, օգտվողը PhotoShop ծրագրային ապահովման միջոցով նախագծում է լավ UI ինտերֆեյս և կոճակի էֆեկտ, STONE TOOL Box- ի միջոցով `լավ նկարներ նախագծելու էկրանին և ձեր սեփական կոճակները ավելացնելու STONE TOOL Box տրամաբանությամբ և սերիական տվյալներ վերադարձելի արժեքը լավ է, ձեզ համար շատ հեշտ է մշակվել:

Քայլ 2. Ստեղծեք UI նկարներ ՔԱՐԻ ցուցադրման համար

Ստեղծեք UI պատկերներ STONE ցուցադրման համար
Ստեղծեք UI պատկերներ STONE ցուցադրման համար
Ստեղծեք UI պատկերներ STONE ցուցադրման համար
Ստեղծեք UI պատկերներ STONE ցուցադրման համար
Ստեղծեք UI պատկերներ STONE ցուցադրման համար
Ստեղծեք UI պատկերներ STONE ցուցադրման համար

Ֆունկցիոնալ պահանջների համաձայն, ես պատրաստեցի հետևյալ երկու UI ցուցադրման ինտերֆեյսերը, մեկը `հիմնական ինտերֆեյսը, իսկ մյուսը` կոճակի էֆեկտը:

STONE TOOL Box- ի օգտագործումը Ներկայումս STONE- ն ապահովում է TOOL: Բացեք այս Գործիքը ՝ նոր նախագիծ ստեղծելու համար, այնուհետև ներմուծեք նախագծված UI ՝ նկարներ ցուցադրելու համար և ավելացրեք ձեր սեփական կոճակները, տեքստի ցուցադրման տուփերը և այլն: /www.stoneitech.com/support/download/video

STONE TOOL Box- ում կոճակներ ավելացնելու և բաղադրիչներ ցուցադրելու հետևանքները հետևյալն են.

STONE TOOL Box- ն ունի մոդելավորման ցուցադրման գործառույթ, որի միջոցով կարող եք տեսնել UI ինտերֆեյսի աշխատանքի էֆեկտը.

Այս պահին իմ UI ցուցադրումն ավարտված է, և ինձ մնում է միայն գրել MCU ծածկագիրը: Ներբեռնեք STONE TOOL Box- ի ստեղծած ֆայլերը ցուցադրման էկրանին `իրական արդյունքները տեսնելու համար:

Քայլ 3: STM32F103RCT6

STM32F103RCT6
STM32F103RCT6

STM32F103RCT6 MCU- ն ունի հզոր գործառույթներ: Ահա MCU- ի հիմնական պարամետրերը.

  • Սերիան: STM32F10X l Kerne
  • ARM - COTEX32
  • Արագություն ՝ 72 ՄՀց
  • Հաղորդակցության միջերես ՝ CAN, I2C, IrDA, LIN, SPI, UART/USART, USB
  • Perայրամասային սարքավորումներ. DMA, շարժիչի կառավարման PWM, PDR, POR, PVD, PWM, ջերմաստիճանի տվիչ, WDT
  • Storageրագրի պահպանման հզորությունը `256 ԿԲ
  • Programրագրի հիշողության տեսակը ՝ FLASH
  • RAM- ի հզորությունը `48K
  • Լարման - սնուցման աղբյուր (Vcc/Vdd): 2 V ~ 3.6 V
  • Տատանող `ներքին
  • Գործող ջերմաստիճանը `-40 ° C ~ 85 ° C
  • Փաթեթ/բնակարան ՝ 64 կյանք

Այս նախագծում ես կօգտագործեմ UART, GPIO, Watch Dog և STM32F103RCT6- ի ժամաչափ: Այս ծայրամասային սարքերի զարգացումը փաստաթղթավորված է ստորև: STM32- ն օգտագործում է Keil MDK ծրագրային ապահովման մշակում, որը ձեզ խորթ չէ, այնպես որ ես չեմ ներկայացնի այս ծրագրաշարի տեղադրման եղանակը: STM32- ը կարող է առցանց մոդելավորվել j-link կամ st-link և այլ մոդելավորման գործիքների միջոցով: Հետևյալ նկարը ես օգտագործել եմ STM32 տպատախտակը.

Քայլ 4: UART սերիա

UART Սերիա
UART Սերիա
UART Սերիա
UART Սերիա
UART Սերիա
UART Սերիա

STM32F103RCT6- ն ունի մի քանի սերիական նավահանգիստ: Այս նախագծում ես օգտագործեցի սերիական նավահանգիստ PA9/PA10 ալիքը, իսկ սերիական նավահանգստի բաուդ արագությունը սահմանվեց 115200:

GPIO

Այս նախագծի օգտագործողի միջերեսում ընդհանուր առմամբ կա չորս կոճակ, որոնք իրականում չորս տեսակի սուրճի պատրաստում են: Սուրճի մեքենայում սուրճի հատիկների քանակը, կաթի սպառումը և տարբեր սուրճերի ջրի հոսքը վերահսկելը իրականում իրականացվում է սենսորների և ռելեներ վերահսկելու միջոցով, մինչդեռ ես նախ վերահսկում եմ GPIO- ի քորոցը:

Քայլ 5: Timամաչափ

Timամաչափ
Timամաչափ
Timամաչափ
Timամաչափ

Theամաչափը նախաստորագրելիս նշեք հաճախականության բաժանման գործակիցը PSC, ահա հաճախականությունների բաժանման մեր համակարգի ժամացույցը (72 ՄՀց)

Այնուհետև նշեք վերաբեռնման արժեքի arr- ը, ինչը նշանակում է, որ երբ մեր ժամաչափը հասնի այս arr- ին, ժամաչափը կվերաբեռնի այլ արժեքներ:

Օրինակ, երբ մենք սահմանում ենք ժամաչափի հաշվարկը, ժամաչափի արժեքը հավասար է arr- ի և մաքրվելու է 0 -ով և վերահաշվարկվում է

Erամաչափի հաշվարկը վերաբեռնվում է, և մեկ անգամ `թարմացում

Հաշվեք Թարմացման ժամանակի բանաձևը Tout = ((arr +1)*(PSC +1))/Tclk

Բանաձևի ածանցում. Խոսքը ժամաչափի ժամացույցի աղբյուրն է, ահա 72 ՄՀց

Մենք բաժանում ենք հատկացված ժամացույցի հաճախականությունը, նշում ենք հաճախականության բաժանման արժեքը որպես PSC, այնուհետև մեր Talk- ը բաժանում ենք PSC +1, մեր ժամաչափի վերջնական հաճախականությունը Tclk/(PSC +1) ՄՀց է:

Այսպիսով, այստեղ հաճախականություն ասելով ՝ մենք ունենք 1s խոսակցություն PSC +1 M Numbers (1M = 10 ^ 6), և յուրաքանչյուր թվի ժամանակը PSC +1 /Talk է, և հեշտ է հասկանալ, որ հակադարձ հաճախականությունը ժամանակաշրջանն է, և այստեղ յուրաքանչյուր համարի համար ընկած ժամանակահատվածը PSC +1 /Խոսքի վայրկյան է, իսկ հետո 0 -ից անցնում ենք arr (arr +1)*(PSC +1) /Tclk

Օրինակ, եկեք սահմանենք arr = 7199 և PSC = 9999

Մենք 72 ՄՀց -ը բաժանեցինք 9999+1 -ի, հավասար է 7200 Հց -ի

Սա 9,000 հաշվում է վայրկյանում, և յուրաքանչյուր հաշվում է 1/7, 200 վայրկյան

Այսպիսով, մենք այստեղ գրանցում ենք 9000 թիվ ՝ ժամաչափի թարմացմանը գնալու համար (7199+1)*(1/7200) = 1s, այնպես որ 1s- ը անցնում է թարմացման:

դատարկ TIM3_Int_Init (u16 arr, u16 psc) {

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd (RCC_APB1Periph_TIM3, ԱՆՎԱՐ);

// ժամացույց TIM_TimeBaseStructure. TIM_Period = arr;

TIM_TimeBaseStructure. TIM_Prescaler = psc; TIM_TimeBaseStructure. TIM_ClockDivision = 0;

// TDTS = Tck_tim TIM_TimeBaseStructure. TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit (TIM3, & TIM_TimeBaseStructure);

Խնդրում ենք կապնվել մեզ հետ, եթե ձեզ անհրաժեշտ է ամբողջական ընթացակարգ.

www.stoneitech.com/contact

Ես ձեզ կպատասխանեմ 12 ժամվա ընթացքում:

Քայլ 6: Watch Dog

Watch Dog
Watch Dog
Watch Dog
Watch Dog

Preventրագիրը գործարկելիս համակարգի խափանումից խուսափելու համար ես ավելացրեցի պահակախումբը: Փաստորեն, բոլոր նախագծերը, որոնք օգտագործում են MCU- ն, հիմնականում օգտագործում են պահակախումբ:

STM32- ն ունի երկու ներկառուցված պահակ ՝ ապահովելով ավելի մեծ անվտանգություն, ժամանակի ճշգրտություն և ճկունություն: Երկու հսկիչ սարքեր (անկախ պահակ և պատուհանների հսկիչ) կարող են օգտագործվել ծրագրային սխալներից առաջացած անսարքությունները հայտնաբերելու և լուծելու համար: Երբ հաշվիչը հասնում է որոշակի ժամանակային արժեքի, գործարկվում է ընդհատում (միայն պատուհանի հսկիչ) կամ համակարգի վերակայում: Անկախ դիտորդ (IWDG).

Venածր արագությամբ նվիրված ժամացույցի (LSI) շարժիչով այն աշխատում է նույնիսկ այն դեպքում, երբ հիմնական ժամացույցը չի աշխատում:

Այն հարմար է այն իրավիճակներում օգտագործման համար, երբ պահակախմբից պահանջվում է ամբողջովին անկախ աշխատել հիմնական ծրագրից դուրս և պահանջում է ցածր ժամանակի ճշգրտություն: Պատուհանների հսկիչ շուն (WWDG):

Հաճախականությունների բաժանումից հետո ժամացույցը շարժվում է APB1 ժամացույցից: Հայտնաբերեք աննորմալ ուշ կամ վաղաժամկետ կիրառման գործողությունը `կարգավորելի ժամանակային պատուհանի միջոցով: Հարմար է այն ծրագրերի համար, որոնցից պահանջվում է, որ դիտորդները գործեն Windows- ի ճշգրիտ ժամկետներում:

int հիմնական (անվավեր) {

delay_init ();

// հետաձգել init NVIC_PriorityGroupConfig (NVIC_PriorityGroup_2);

// NVIC INIT uart_init (115200);

// UART INIT PAD_INIT ();

// Light Init IWDG_Init (4, 625);

մինչդեռ (1) {

եթե (USART_RX_END)

{անջատիչ (USART_RX_BUF [5])

{

պատյան Espresso:

CoffeeSelect (էսպրեսսո, USART_RX_BUF [8]);

ընդմիջում;

գործ Americano:

CoffeeSelect (Americano, USART_RX_BUF [8]);

Հիմնական գործառույթի հիմնական տրամաբանությունը հետևյալն է.

u8 timer_cnt = 0;

դատարկ TIM3_IRQHandler (անվավեր) // TIM3

{

եթե (TIM_GetITStatus (TIM3, TIM_IT_Update)! = RESET)

{

TIM_ClearITPendingBit (TIM3, TIM_IT_Update);

timer_cnt ++;

եթե (timer_cnt> = 200)

{

կաթ_ուղարկել [6] = կաթ ();

Վերջապես, ժամաչափի ընդհատման մեջ ավելացրեք կոդը. Theամաչափի ընդհատման մեջ իմ նպատակն է ստուգել, թե որքան սուրճ և կաթ է մնացել, այնուհետև հայտնաբերված արժեքը սերիական նավահանգստի միջոցով ուղարկել ցուցադրման էկրանին: Կաթի և սուրճի հատիկների մնացորդի չափումը սովորաբար կատարվում է սենսորների միջոցով: Պարզ մեթոդները ներառում են ճնշման տվիչներ, որոնք չափում են կաթի և սուրճի հատիկների ընթացիկ քաշը `որոշելու, թե որքան է մնացել:

Գրեք վերջինում

Այս հոդվածը միայն արձանագրում է իմ նախագծի զարգացման պարզ ընթացքը: Հաշվի առնելով ընկերության նախագծի գաղտնիությունը, իմ օգտագործած UI ցուցադրման ինտերֆեյսը նույնպես ինքս եմ պատրաստել, այլ ոչ թե այս նախագծի իրական UI ցուցադրման միջերեսը: STM32- ի ծածկագրի մասը ավելացնում է միայն MCU- ի ծայրամասային վարորդը և դրա հետ կապված տրամաբանական կոդը: Հաշվի առնելով նաև ընկերության նախագծի գաղտնիությունը, տեխնոլոգիայի հիմնական առանցքային մասը տրված չէ, խնդրում ենք հասկանալ: Սակայն, իմ տրամադրած ծածկագրի համաձայն, համագործակցեք STONE ցուցադրման էկրանի հետ: իմ ընկերները, ովքեր նաև ծրագրային ապահովման ինժեներներ են, ընդամենը մի քանի օր պետք է ծախսեն ՝ նախագծի ավարտի համար իմ ծածկագրերի հիմնական տեխնիկական մասերը ավելացնելու համար:

Նախագծի մասին ավելին իմանալու համար կտտացրեք այստեղ