Satura rādītājs:
- 1. darbība. Kafijas automāta displeja ekrāna funkcijas ievads
- 2. darbība. Izveidojiet UI attēlus STONE displejam
- 3. darbība: STM32F103RCT6
- 4. darbība: UART sērija
- 5. solis: taimeris
- 6. solis: sargsuns
Video: STONE displejs +STM32 +kafijas automāts: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
Es esmu MCU programmatūras inženieris, nesen saņēmu projektu par kafijas automātu, mājsaimniecības prasības ar skārienekrāna darbību, funkcija ir laba, virs ekrāna izvēles var nebūt ļoti laba, par laimi, šis projekts es varu izlemt, ko MCU, lai izmantotu sevi, arī var izmantot, lai izlemtu, kāds ir ekrāns, tāpēc es izvēlējos STM32 šāda veida vienkāršu un viegli lietojamu MCU, displeja ekrāns Es izvēlējos STONE skārienekrāna displeju, ekrāns ir vienkāršs un viegli lietojams, My STM32 MCU tikai caur UART sakariem ir kārtībā.
STONE sērijas LCD displeja ekrāns, kas var sazināties, izmantojot MCU seriālo portu. Tajā pašā laikā šī displeja ekrāna lietotāja saskarnes loģisko dizainu var izveidot tieši, izmantojot STONE TOOL Box, ko nodrošina STONE oficiālā vietne, kas ir ļoti ērti. Tāpēc es to izmantošu šim kafijas automāta projektam. Tajā pašā laikā es vienkārši ierakstīšu pamata attīstību. Tā kā šis ir mana uzņēmuma projekts, es ierakstīšu tikai vienkāršu demonstrāciju un nerakstīšu pilnu kodu. Dažas pamācības par akmens displeja ekrānu var apmeklēt vietnē: https://www.stoneitech.com/ Tīmekļa vietnē ir dažāda informācija par modeli, izmantošanu un dizaina dokumentāciju, kā arī video pamācības. Šeit es pārāk neiedziļināšos detaļās.
1. darbība. Kafijas automāta displeja ekrāna funkcijas ievads
Šim projektam ir šādas funkcijas: l
- Parāda pašreizējo laiku un datumu
- Displejā ir četras pogas americano, latte, cappuccino un espresso.
- Parāda pašreizējo atlikušo kafijas pupiņu, piena un kafijas cukura daudzumu
- Teksta displeja lodziņš parāda pašreizējo stāvokli
Paturot prātā šos jēdzienus, varat izveidot lietotāja saskarni. UTI dizaina skārienekrānu akmens ir salīdzinoši vienkāršs, lietotājs, izmantojot PhotoShop programmatūru, izveido labu saskarnes saskarni un pogu efektu, izmantojot STONE TOOL Box, lai ekrānā noformētu labus attēlus, un pievienojiet savas pogas ar STONE TOOL Box loģiku un sērijas dati atgriešanās vērtība ir ok, jums ir ļoti viegli izstrādāt.
2. darbība. Izveidojiet UI attēlus STONE displejam
Saskaņā ar funkcionālajām prasībām es izveidoju šādas divas lietotāja saskarnes displeja saskarnes, viena ir galvenā saskarne, bet otra - pogas efekts.
STONE TOOL Box izmantošana Pašlaik STONE nodrošina TOOL. Atveriet šo RĪKU, lai izveidotu jaunu projektu, pēc tam importējiet izstrādāto lietotāja saskarni, lai parādītu attēlus, un pievienojiet savas pogas, teksta displeja lodziņus utt. STONE oficiālajā vietnē ir ļoti pilnīga apmācība par šīs programmatūras lietošanu : https:/ /www.stoneitech.com/support/download/video
Pogas pievienošanas un komponentu parādīšanas efekti kastē STONE TOOL ir šādi:
STONE TOOL Box ir simulācijas displeja funkcija, caur kuru jūs varat redzēt UI saskarnes darbības efektu:
Šobrīd mans lietotāja interfeisa displejs ir pabeigts, un man atliek tikai uzrakstīt MCU kodu. Lai redzētu faktiskos rezultātus, lejupielādējiet ekrāna ekrānā STONE TOOL Box ģenerētos failus.
3. darbība: STM32F103RCT6
STM32F103RCT6 MCU ir jaudīgas funkcijas. Šeit ir MCU pamatparametri:
- Sērija: STM32F10X l Kerne
- ROKS - COTEX32
- Ātrums: 72 MHz
- Sakaru saskarne: CAN, I2C, IrDA, LIN, SPI, UART/USART, USB
- Perifērijas aprīkojums: DMA, motora vadība PWM, PDR, POR, PVD, PWM, temperatūras sensors, WDT
- Programmas atmiņas ietilpība: 256 KB
- Programmas atmiņas veids: FLASH
- RAM ietilpība: 48K
- Spriegums - barošanas avots (Vcc/Vdd): 2 V ~ 3,6 V
- Oscilators: iekšējs
- Darba temperatūra: -40 ° C ~ 85 ° C
- Iepakojums/korpuss: 64 gadi
Šajā projektā es izmantošu UART, GPIO, Watch Dog un taimeri no STM32F103RCT6. Šo perifērijas ierīču attīstība ir dokumentēta zemāk. STM32 IZMANTO Keil MDK programmatūras izstrādi, kas jums nav sveša, tāpēc es neiepazīstināšu ar šīs programmatūras instalēšanas metodi. STM32 var simulēt tiešsaistē, izmantojot j-link vai st-link un citus simulācijas rīkus. Šis attēls ir STM32 shēma, kuru es izmantoju:
4. darbība: UART sērija
STM32F103RCT6 ir vairāki seriālie porti. Šajā projektā es izmantoju seriālā porta kanālu PA9/PA10, un seriālā porta pārraides ātrums tika iestatīts uz 115200.
GPIO
Šī projekta lietotāja saskarnē kopumā ir četras pogas, kas patiesībā ir četru veidu kafijas pagatavošana. Kafijas automātā kafijas pupiņu skaita, piena patēriņa un dažādu kafiju plūsmas kontrole faktiski tiek realizēta, kontrolējot sensorus un relejus, bet es vispirms vienkārši kontrolēju GPIO tapu.
5. solis: taimeris
Inicializējot taimeri, norādiet frekvences sadalījuma koeficientu PSC, šeit ir mūsu sistēmas pulkstenis (72 MHz) frekvenču sadalīšanai
Pēc tam norādiet atkārtotas ielādes vērtību arr, kas nozīmē, ka tad, kad mūsu taimeris sasniegs šo arr, taimeris pārlādēs citas vērtības.
Piemēram, iestatot taimeri skaitīšanai, taimera skaitļa vērtība ir vienāda ar arr un tiks notīrīta ar 0 un pārrēķināta
Taimera skaits tiek atkārtoti ielādēts un vienreiz ir atjauninājums
Aprēķiniet atjaunināšanas laika formulu Tout = ((arr +1)*(PSC +1))/Tclk
Formulas atvasināšana: Talk ir taimera pulksteņa avots, šeit ir 72Mhz
Mēs sadalām piešķirto pulksteņa frekvenci, norādām frekvences dalījuma vērtību kā PSC, pēc tam sadalām mūsu sarunu PSC +1, mūsu taimera galīgā frekvence ir Tclk/(PSC +1) MHz
Tātad šeit mēs domājam ar frekvenci, ka mums ir 1 saruna, izmantojot PSC +1 M numurus (1M = 10 ^ 6), un katra numura laiks ir PSC +1 /Talk, un ir viegli saprast, ka apgrieztais no biežuma ir periods, un periods katram skaitlim šeit ir PSC +1 /sarunu sekundes, un tad mēs pārejam no 0 uz arr ir (arr +1)*(PSC +1) /Tclk
Piemēram, iestatīsim arr = 7199 un PSC = 9999
Mēs sadalījām 72 MHz 9999+1 ir vienāds ar 7200 Hz
Tas ir 9 000 skaits sekundē, un katrs skaitlis ir 1/7, 200 sekundes
Tātad mēs šeit ierakstām 9 000 skaitļus, lai pārietu uz taimera atjauninājumu (7199+1)*(1/7200) = 1 s, tātad 1s tiks atjaunināts.
anulēts TIM3_Int_Init (u16 arr, u16 psc) {
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd (RCC_APB1Periph_TIM3, ENABLE);
// pulkstenis 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 un TIM_TimeBaseStructure);
Lūdzu, sazinieties ar mums, ja nepieciešama pilnīga procedūra:
www.stoneitech.com/contact
Es jums atbildēšu 12 stundu laikā.
6. solis: sargsuns
Lai nepieļautu sistēmas avāriju programmas darbības laikā, es pievienoju sargsuņu. Faktiski visos projektos, kas izmanto MCU, parasti tiek izmantots sargsuns.
STM32 ir divi iebūvēti sargsuņi, kas nodrošina lielāku drošību, laika precizitāti un elastību. Programmatūras kļūdu izraisītu kļūdu noteikšanai un novēršanai var izmantot divas sargsuņu ierīces (neatkarīgu uzraudzības un logu uzraudzības sistēmu). Kad skaitītājs sasniedz noteikto taimauta vērtību, tiek aktivizēts pārtraukums (tikai logu uzraudzības dienests) vai sistēmas atiestatīšana. Neatkarīgais sargsuns (IWDG):
Vadīts ar īpašu zema ātruma pulksteni (LSI), tas darbojas pat tad, ja galvenais pulkstenis neizdodas.
Tas ir piemērots lietošanai situācijās, kad uzraudzības dienestam ir jāstrādā pilnīgi neatkarīgi ārpus galvenās programmas un ir nepieciešama zema laika precizitāte. Logu sargsuns (WWDG):
Vadīts pēc pulksteņa no APB1 pulksteņa pēc frekvences dalīšanas. Izmantojot konfigurējamu laika logu, atklājiet neparasti vēlu vai priekšlaicīgu lietojumprogrammas darbību. Piemērots programmām, kurām ir nepieciešams, lai sargsuņi darbotos precīzi Windows laikā.
int main (void) {
delay_init ();
// kavēšanās inicializācija NVIC_PriorityGroupConfig (NVIC_PriorityGroup_2);
// NVIC INIT uart_init (115200);
// UART INIT PAD_INIT ();
// Light Init IWDG_Init (4, 625);
kamēr (1) {
ja (USART_RX_END)
{slēdzis (USART_RX_BUF [5])
{
Espresso kārba:
CoffeeSelect (Espresso, USART_RX_BUF [8]);
pārtraukums;
gadījums Americano:
CoffeeSelect (Americano, USART_RX_BUF [8]);
Galvenās funkcijas galvenā loģika ir šāda:
u8 taimeris_cnt = 0;
void TIM3_IRQHandler (anulēts) // TIM3
{
ja (TIM_GetITStatus (TIM3, TIM_IT_Update)! = RESET)
{
TIM_ClearITPendingBit (TIM3, TIM_IT_Update);
taimeris_cnt ++;
ja (timer_cnt> = 200)
{
milk_send [6] = piens ();
Visbeidzot, pievienojiet kodu taimera pārtraukumā: Taimera pārtraukumā mans mērķis ir pārbaudīt, cik daudz kafijas un piena ir palicis, un pēc tam nosūtīt noteikto vērtību uz displeja ekrānu, izmantojot seriālo portu. Piena un kafijas pupiņu atlikuma mērīšanu parasti veic sensori. Vienkāršās metodes ietver spiediena sensorus, kas mēra piena un kafijas pupiņu pašreizējo svaru, lai noteiktu, cik daudz paliek pāri.
Ierakstiet pēdējā
Šajā rakstā ir ierakstīts tikai mana projekta vienkāršais izstrādes process. Ņemot vērā uzņēmuma projekta konfidencialitāti, arī lietotā lietotāja saskarnes displeja saskarni izveidoju pats, nevis šī projekta īstā lietotāja interfeisa displeja saskarne. STM32 koda daļa pievieno tikai MCU perifēro draiveri un saistīto loģisko kodu. Ņemot vērā arī uzņēmuma projekta konfidencialitāti, konkrētā galveno tehnoloģiju daļa nav dota, lūdzu, saprotiet. Tomēr saskaņā ar manu sniegto kodu sadarbojieties ar STONE displeja ekrānu. Maniem draugiem, kuri ir arī programmatūras inženieri, ir jāpavada tikai dažas dienas, lai pievienotu galvenās tehniskās daļas manam koda ietvaram, lai pabeigtu projektu.
Lai uzzinātu vairāk par projektu, noklikšķiniet šeit