STM32 ile Tek Kanal ADC Okuma
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
- Orijinal STM32 çipli geliştirme kartı
- ST-Link V2 STM8-STM32 Mini Programlayıcı – Arm
- 10K Potansiyometre – WH148
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.
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
Etiketler
1 Yorum
Bir yanıt yazın Yanıtı iptal et
Daha fazla sonuç göster
a