Arkadaşlar merhaba ben Yusuf. Bu yazıda sizlerle STM32 ile Tek Kanal ADC Okuyacağız. Detayları yazımın devamını okuyarak bulabilirsiniz. Kafanıza takılan bir soruyu yorum olarak sorabilirsiniz ayrıca öneri ve eleştirilerinizi de bekliyorum.

MALZEMELER

DEVRE ŞEMASI

KODUN İNCELENMESİ

CubeMX Ayarları:

Öncelikle yine çalışacağımız mikrodenetleyici olan STM32F103C8 modelini CubeMX üzerinden seçiyoruz. Bu uygulamada PA0 pinini analog okuma için kullanacağız.

İlk önce daha önceki yazılarda da yaptığımız gibi harici osilatörü devreye alıp mikrodenetleyicimizi 72 MHzde çalışacak şekilde ayarlıyoruz ve debug modunu serial wire yapıyoruz.

STM32_ADC_SETTINGS

PA0 pinini yukarıda olduğu gibi analog giriş olarak ayarladıktan sonra Parameter Settings üzerinden Contunious Conversion Mode seçeneğini Disabled’dan Enable’a çekiyoruz.

Daha sonra projemize isim verip dosya konumunu belirledikten sonra Generate Code diyip Keil üzerinde kodları açıyoruz.

Kodun Yazılması:

Keil açıldıktan sonra main.c dosyasında USER CODE BEGIN 0’ın altına 16 bitlik adcDeger isimli değişkenimizi ekliyoruz.

/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
uint16_t adcDeger = 0;
/* USER CODE END 0 */

Daha sonra ise while(1) içersindeki USER CODE BEGIN 3 alanına aşağıdaki kodları yazıyoruz

  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		HAL_ADC_Start(&hadc1);
		adcDeger = HAL_ADC_GetValue(&hadc1);
		HAL_Delay(100);
  }
  /* USER CODE END 3 */

Buradaki HAL_ADC_Start fonksiyonu adcyi etkinleştirerek kanalların okunmasını sağlamaktadır. Parametre olarak hangi adc biriminde çalışacağı girilir.

HAL_ADC_GetValue fonksiyonu ise parametre kısmına aldığı adcden (Bizim için şuan adc1den) aldığı veriyi verir. Bunu daha rahat kullanmak için bir değişkene atıyoruz.

Debug:

Kodumuzu mikrodenetleyiciye yükledikten sonra debug işlemini başlatmak için CTRL+F5 yaparak debug penceresini açıyoruz.

Bir önceki yazıda yaptığımız gibi adcDeger isimli değişkenimizi izleme penceresine alıyoruz ve hexadecimal olarak gösterme özelliğini kapatıyoruz.

F5 ile işlemciyi çalıştırdıktan sonra adc okuma işlemi başlayacaktır.

BAĞLANTILAR

STM32 ile Debug İşlemi: https://lezzetlirobottarifleri.com/stm32-ile-debug-islemi/
Instagram: https://www.instagram.com/yusuf_cosgun04/
Instagram: https://www.instagram.com/lezzetlirobottarifleri/
Discord sunucusu: https://discord.gg/8MVnu59tkx
Discord: REevee/Yusuf#6513