Mundarija:

STONE displeyi +STM32 +qahva qaynatgich: 6 qadam
STONE displeyi +STM32 +qahva qaynatgich: 6 qadam

Video: STONE displeyi +STM32 +qahva qaynatgich: 6 qadam

Video: STONE displeyi +STM32 +qahva qaynatgich: 6 qadam
Video: STONE screen of the medical ventilator application 2024, Dekabr
Anonim
STONE displeyi +STM32 +qahva qaynatgich
STONE displeyi +STM32 +qahva qaynatgich

Men MCU dastur muhandisiman, yaqinda loyiha - bu qahva mashinasi, sensorli ekranli maishiy talablar, funktsiyasi yaxshi, ekranning tepasida tanlash unchalik yaxshi bo'lmasligi mumkin, xayriyatki, bu loyihani men hal qila olaman. O'zimni ishlatish uchun MCU, shuningdek, ekran qanday bo'lishini hal qilish uchun ham ishlatilishi mumkin, shuning uchun men STM32 -ni ishlatishni sodda va sodda MCU -ni tanladim, men ekranni STONE -ning sensorli ekranini tanladim, ekran oddiy va ishlatish uchun qulay, Mening STM32 MCU faqat UART orqali ulanishi mumkin.

STU seriyali LCD displeyli ekran, u MCU ketma -ket porti orqali aloqa qila oladi. Shu bilan birga, ushbu displey ekranining UI interfeysining mantiqiy dizayni to'g'ridan -to'g'ri STONE rasmiy veb -sayti tomonidan taqdim etilgan STONE TOOL Box yordamida tuzilishi mumkin, bu juda qulay. Shunday qilib, men uni qahva mashinasi loyihasi uchun ishlataman. Shu bilan birga, men oddiy rivojlanishni yozib olaman. Bu mening kompaniyamning loyihasi bo'lgani uchun, men oddiy demoni yozaman va kodni to'liq yozmayman. Toshli displey ekrani haqidagi ba'zi asosiy qo'llanmalar veb -saytga o'tishi mumkin: https://www.stoneitech.com/ Veb -saytda model, foydalanish va dizayn hujjatlari, shuningdek, video darsliklar haqida turli ma'lumotlar mavjud. Men bu erda juda ko'p tafsilotlarga bormayman.

1 -qadam: Kofe mashinasi displeyi ekranining vazifasi

Ushbu loyiha quyidagi funktsiyalarni bajaradi: l

  • Joriy vaqt va sanani ko'rsatadi
  • Ekranda amerika, latte, kapuchino va espresso uchun to'rtta tugma mavjud.
  • Qolgan qahva donalari, sut va qahva shakarining hozirgi miqdorini ko'rsatadi
  • Matnni ko'rsatish oynasi joriy holatini ko'rsatadi

Ushbu tushunchalarni hisobga olgan holda siz UI interfeysini loyihalashingiz mumkin. UI dizaynidagi STONE sensorli ekranlar nisbatan sodda, foydalanuvchi PhotoShop dasturidan yaxshi foydalanuvchi interfeysi va tugma effektini, STONE TOOL Box orqali ekranga yaxshi rasmlar chizish va o'z tugmalarini STONE TOOL Box mantig'i bilan qo'shish. ketma -ket ma'lumotlar qaytarish qiymati yaxshi, siz ishlab chiqish juda oson.

2 -qadam: STONE displeyi uchun UI rasmlarini yarating

STONE displeyi uchun UI rasmlarini yarating
STONE displeyi uchun UI rasmlarini yarating
STONE displeyi uchun UI rasmlarini yarating
STONE displeyi uchun UI rasmlarini yarating
STONE displeyi uchun UI rasmlarini yarating
STONE displeyi uchun UI rasmlarini yarating

Funktsional talablarga muvofiq, men quyidagi ikkita interfeysni ko'rsatdim: biri asosiy interfeys, ikkinchisi tugma effekti.

STONE TOOL Box -dan foydalanish Hozirgi vaqtda STONE TOOL -ni ta'minlaydi. Yangi asbob -uskunalar yaratish uchun ushbu vositani oching, so'ng rasmlarni ko'rsatish uchun mo'ljallangan foydalanuvchi interfeysini import qiling va o'z tugmalaringizni, matn ko'rsatish qutilarini va boshqalarni qo'shing. STONE rasmiy veb -saytida ushbu dasturdan foydalanish bo'yicha to'liq qo'llanma mavjud: https:/ /www.stoneitech.com/support/download/video

STONE TOOL qutisiga tugmachalarni qo'shish va komponentalarni ko'rsatish ta'siri quyidagicha:

STONE TOOL Box simulyatsion displey funktsiyasiga ega, u orqali UI interfeysining ishlash effektini ko'rishingiz mumkin:

Hozirgi vaqtda UI displeyi tugadi va men faqat MCU kodini yozishim kerak, haqiqiy natijalarni ko'rish uchun STONE TOOL qutisi tomonidan yaratilgan fayllarni displey ekraniga yuklab oling.

3 -qadam: STM32F103RCT6

STM32F103RCT6
STM32F103RCT6

STM32F103RCT6 MCU kuchli funktsiyalarga ega. Bu erda MCU ning asosiy parametrlari:

  • Seriya: STM32F10X l Kerne
  • Qo'l - COTEX32
  • Tezlik: 72 MGts
  • Aloqa interfeysi: CAN, I2C, IrDA, LIN, SPI, UART/USART, USB
  • Periferik uskunalar: DMA, dvigatelni boshqarish PWM, PDR, POR, PVD, PWM, harorat sensori, WDT
  • Dasturning saqlash hajmi: 256 KB
  • Dastur xotira turi: FLASH
  • Operativ xotira hajmi: 48K
  • Voltaj - quvvat manbai (Vcc/Vdd): 2 V ~ 3.6 V
  • Osilator: ichki
  • Ishlash harorati: -40 C ~ 85 C
  • Paket/uy-joy: 64 umr

Ushbu loyihada men UART, GPIO, Watch Dog va STM32F103RCT6 taymeridan foydalanaman. Bu tashqi qurilmalarning rivojlanishi quyida hujjatlashtirilgan. STM32 sizga begona bo'lmagan Keil MDK dasturiy ta'minotini ishlatadi, shuning uchun men ushbu dasturni o'rnatish usulini tanishtirmayman. STM32 onlayn rejimida j-link yoki st-link va boshqa simulyatsiya vositalari yordamida simulyatsiya qilinishi mumkin. Quyidagi rasm men foydalangan STM32 elektron kartasi:

4 -qadam: UART seriyali

UART seriyali
UART seriyali
UART seriyali
UART seriyali
UART seriyali
UART seriyali

STM32F103RCT6 bir nechta ketma -ket portlarga ega. Ushbu loyihada men PA9/PA10 ketma -ket port kanalidan foydalandim va ketma -ket port uzatilish tezligi 115200 ga o'rnatildi.

GPIO

Loyihaning foydalanuvchi interfeysida to'rt xil qahva tayyorlanadigan to'rtta tugma mavjud. Qahva mashinasida qahva donalari sonini, sut iste'molini va turli qahvalarda suv oqishini nazorat qilish sensorlar va o'rni yordamida amalga oshiriladi, men esa avval GPIO pinini boshqaraman.

5 -qadam: Taymer

Taymer
Taymer
Taymer
Taymer

Taymerni ishga tushirganda, PSC chastotali bo'linish koeffitsientini ko'rsating, bu erda chastota bo'linishi uchun bizning tizim soati (72 MGts).

Keyin arr ni qayta yuklash qiymatini ko'rsating, ya'ni bizning taymerimiz bu qatorga yetganda, taymer boshqa qiymatlarni qayta yuklaydi.

Masalan, biz taymerni hisoblashni o'rnatganimizda, taymer sonining qiymati arrga teng va u 0 bilan o'chiriladi va qayta hisoblab chiqariladi.

Taymerlar soni qayta yuklanadi va bir marta yangilanish bo'ladi

Tout = ((arr +1)*(PSC +1))/Tclk yangilanish vaqt formulasini hisoblang

Formulani chiqarish: Talk - taymerning soat manbai, bu erda 72 MGts

Biz ajratilgan soat chastotasini ajratamiz, chastotalar bo'linish qiymatini PSC sifatida belgilaymiz, so'ngra suhbatimizni PSC +1 ga ajratamiz, taymerimizning oxirgi chastotasi Tclk/(PSC +1) MGts

Bu erda biz chastota deganda nimani nazarda tutgan bo'lsak, bizda PSC +1 M Raqamlari (1M = 10 ^ 6) bo'yicha 1 -sonli suhbat bor va har bir raqam uchun vaqt PSC +1 /Talk, va buning teskarisi ekanligini tushunish oson chastota - bu davr va bu erda har bir raqamning davri PSC +1 /Talk soniyasidir, keyin biz 0 dan arrgacha boramiz (arr +1)*(PSC +1) /Tclk

Masalan, arr = 7199 va PSC = 9999 ni o'rnataylik

Biz 72 MGts ni 9999 ga ajratdik+1 7200 Gts ga teng

Bu sekundiga 9 000 hisob, va har bir soniya 1/7, 200 soniya

Biz bu erda taymerni yangilash (7199+1)*(1/7200) = 1s ga o'tish uchun 9000 raqamni yozyapmiz, shuning uchun 1s yangilanishga o'tadi.

bekor TIM3_Int_Init (u16 arr, u16 psc) {

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd (RCC_APB1Periph_TIM3, YOQISH);

// soat 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);

Agar sizga to'liq protsedura kerak bo'lsa, biz bilan bog'laning:

www.stoneitech.com/contact

Men sizga 12 soat ichida javob beraman.

6 -qadam: Itni tomosha qiling

Itni tomosha qiling
Itni tomosha qiling
Itni tomosha qiling
Itni tomosha qiling

Dastur ishlayotganda tizimning ishdan chiqishiga yo'l qo'ymaslik uchun men qo'riqchi itni qo'shdim. Aslida, MCUdan foydalanadigan barcha loyihalar odatda qo'riqchi itdan foydalanadi.

STM32 ikkita o'rnatilgan qo'riqchi kuchiga ega bo'lib, ular xavfsizlik, vaqt aniqligi va moslashuvchanlikni ta'minlaydi. Dasturiy ta'minot xatolaridan kelib chiqqan nosozliklarni aniqlash va hal qilish uchun ikkita qo'riqchi qurilmasi (mustaqil qo'riqchi va oyna qo'riqchisi) ishlatilishi mumkin. Hisoblagich ma'lum vaqt tugashiga yetganda, uzilish (faqat oyna qo'riqchisi) yoki tizimni asl holatiga qaytarish ishga tushadi. Mustaqil qo'riqchi (IWDG):

Maxsus past tezlikli soat (LSI) tomonidan boshqariladi, hatto asosiy soat ishlamay qolsa ham ishlaydi.

Bu qo'riqchi asosiy dasturdan tashqarida to'liq mustaqil ishlashi kerak bo'lgan holatlarda foydalanish uchun javob beradi va kam vaqt aniqligini talab qiladi. Oyna qo'riqchisi (WWDG):

APB1 dan chastota bo'linishidan keyin soat bilan boshqariladi. Vaqtni sozlash mumkin bo'lgan oynasi orqali g'ayritabiiy kech yoki erta dastur ishini aniqlang. Windows -ning aniq vaqtida ishlashini kuzatuvchilar talab qiladigan dasturlar uchun javob beradi.

int main (void) {

kechiktirish_nit ();

// kechiktirish NVIC_PriorityGroupConfig (NVIC_PriorityGroup_2);

// NVIC INIT uart_init (115200);

// UART INIT PAD_INIT ();

// Light Init IWDG_Init (4, 625);

vaqt (1) {

agar (USART_RX_END)

{almashtirish (USART_RX_BUF [5])

{

Espresso qutisi:

CoffeeSelect (Espresso, USART_RX_BUF [8]);

tanaffus;

amerikalik ishi:

CoffeeSelect (Americano, USART_RX_BUF [8]);

Asosiy funktsiyadagi asosiy mantiq quyidagicha:

u8 timer_cnt = 0;

bekor TIM3_IRQHandler (bekor) // TIM3

{

agar (TIM_GetITStatus (TIM3, TIM_IT_Update)! = RESET)

{

TIM_ClearITPendingBit (TIM3, TIM_IT_Update);

timer_cnt ++;

agar (timer_cnt> = 200)

{

milk_send [6] = sut ();

Nihoyat, taymer uzilishidagi kodni qo'shing: Taymer uzilishida mening maqsadim - qancha qahva va sut qolganligini tekshirish, so'ngra aniqlangan qiymatni ketma -ket port orqali displey ekraniga yuborish. Qanchalik sut va qahva donalari qolganini o'lchash odatda sensorlar yordamida amalga oshiriladi. Oddiy usullarga bosim sensori kiradi, ular qancha qolganini aniqlash uchun sut va qahva donalarining hozirgi og'irligini o'lchaydilar.

Oxirgisiga yozing

Ushbu maqola faqat mening loyihamning oddiy rivojlanish jarayonini yozib beradi. Kompaniya loyihasining maxfiyligini inobatga olgan holda, men foydalangan foydalanuvchi interfeysi displey interfeysi ham ushbu loyihaning haqiqiy UI displey interfeysi emas, balki o'zim tomonidan yaratilgan. STM32 kod qismi faqat MCU periferik drayverini va tegishli mantiq kodini qo'shadi. Shuningdek, kompaniya loyihasining maxfiyligini hisobga olgan holda, texnologiyaning o'ziga xos asosiy qismi berilmagan, tushunib oling. Biroq, men taqdim etgan kodga ko'ra, STONE displey ekrani bilan hamkorlik qiling. Loyihani bajarish uchun dasturiy ta'minot muhandislari bo'lgan mening do'stlarim bir necha kun davomida kod doirasiga asosiy texnik qismlarni qo'shishlari kerak.

Loyiha haqida ko'proq ma'lumot olish uchun bu erni bosing