21. 12C port nima, u qanday ishlaydi. HAL kutubxonada 12C port bilan ishlash funksiyalari qaysilar I2C (Inter-Integrated Circuit) porti, elektronik qurilmalarda ma'lumot almashish uchun ishlatiladigan kommunikatsiya interfeysidir. I2C, bitta bog'lovchi (master) va bir yoki bir nechta qurilmalar (slave) orasida almashish protokolini ta'minlaydi. Ushbu protokol orqali ma'lumotlar bitlari seryali ravishda almashish va yuborish mumkin.
HAL (Hardware Abstraction Layer) kutubxonasida, I2C portni boshqarish uchun muxlislarni taklif etadi. Bu muxlislar bilan HAL kutubxonasida quyidagilar kabi asosiy ishlar amalga oshirilishi mumkin:
I2C ni yoqish (Enable I2C): I2C portni faollashtirish uchun to'g'ridan-to'g'ri bitini o'zgartirish yordamida I2C ni yoqish mumkin.
I2C ni yo'qotish (Disable I2C): I2C portni o'chirish uchun to'g'ridan-to'g'ri bitini o'zgartirish yordamida I2C ni yo'qotish mumkin.
I2C ni sozlash (Configure I2C): I2C portning takt tezligini (clock speed), bog'lanish adresini (device address), tartiblanganligini (ordering) va boshqa kommunikatsiya parametrlarini sozlash mumkin.
Ma'lumotlarni yuborish (Transmit data): I2C orqali ma'lumotlarni yuborish uchun birinchi harakat bo'lib, kerakli ma'lumotlarni yuborish registrlariga yozish mumkin.
Ma'lumotlarni o'qish (Receive data): I2C orqali ma'lumotlarni o'qish uchun, kerakli qabul qilingan ma'lumot registrlaridan o'qish mumkin.
Start konditsiyasini yuborish (Send Start Condition): I2C port orqali start konditsiyasini yuborish uchun to'g'ridan-to'g'ri bitini o'zgartirish yordamida start konditsiyasini yuborish mumkin.
Stop konditsiyasini yuborish (Send Stop Condition): I2C port orqali stop konditsiyasini yuborish uchun to'g'ridan-to'g'ri bitini o'zgartirish yordamida stop konditsiyasini yuborish mumkin.
I2C xato holatlarni tekshirish (Check I2C Error Conditions): I2C portida yuz beradigan xato holatlarni tekshirish uchun I2C xato registrlarini tekshirish mumkin.
Bufrni tozalash (Flush Buffer): I2C portning bufferni tozalash uchun, yuborish va o'qish kuyidagi ma'lumotlar ro'yxati (FIFO)ni bo'shating
Ushbu funktsiyalar HAL kutubxonasida mavjud bo'lishi mumkin. Amalga oshirish usullari chip arxitekturasiga va foydalanishdagi mikrokontrollerdagi HAL versiyasiga bog'liq bo'ladi. Ushbu funktsiyalar haqida batafsil ma'lumotlar HAL dokumentatsiyasida topilishi mumkin.