HAL lib. ile birlikte Standard peripheral library

Başlatan Gökhan BEKEN, 05 Mart 2015, 14:49:48

Gökhan BEKEN

Merhaba arkadaşlar,
Cubemx programı ile yaptığım bir uygulama var(HAL kütüphanesi), bunu standart kütüphanelerle yapmam çok zor(yapamam yani).
bir de standart kütüphane ile yaptığım başka iki uygulamam var.
HAL ile ürettiğim projede standart kütüpaneyi manuel eklemeye çalışıyorum ancak çakışmalar oluyor, daha önce böyle birşey deneyen oldu mu?
Nasıl çözebilirim bu sorunu?
Özel mesaj okumuyorum, lütfen göndermeyin.

yamak

Hocam denemedim de.Merak ettiğimden soruyorum std lib ile neden yapamıyosunuz.Açıkçası ben HAL e güvenip de büyük bi projede kullanamam.

Gökhan BEKEN

Hocam yapacağımız proje normalde standartlarda yok, bu yüzden normalde HAL ile ürettiğimiz kodu da direkt kullanamıyoruz. Ama kütüphanede değişiklik yaparak çalıştırabildik.
USB ile ilgili bir proje, içindeki standart usb classları normalde işimi görmüyor. Çözümü ancak böyle sağladık.
Sorun ise standart kütüphane ile zamanında uğraşarak çözdüğümüz işleri bu projeye eklememiz gerekiyor, bu kısımları HAL ile yaparsak bizim için zaman kaybı olacak, dediğiniz gibi ben de çok güvenmiyorum, çalışacağı bile meçhul. Standart kütüphaneyi ekleyebilirsem sorunum çözülecek.
Özel mesaj okumuyorum, lütfen göndermeyin.

yamak

Anladım hocam.Daha önce böyle bişey denemedim.Ama üşenmeyip std lib'deki tüm fonsiyonların başına STD_ gibi bişey eklenebilir.

Gökhan BEKEN

Aslında çok fazla değişiklik yapmama gerek kalmadı, en önemli sorun, stm32f4xx.h dosyası hem hal lib'de var hem st perb. lib.'de var bunu önlemek için
standart lib'deki bütün h dosyalarını açtım içlerinde #include "stm32f4xx.h" kısımlarını #include "PICPROJE_stm32f4xx.h" yaptım. Tabi dosyanın gerçek adını da o şekilde değiştirdim.
Bir de stm32f4xx.h dosyası ve PICPROJE_stm32f4xx.h dosyasında aynı isimde olan tanımlamalar vardı, yine başına "PICPROJE_" ekleyerek, çakışan tanımlamaları düzelttim.
Özel mesaj okumuyorum, lütfen göndermeyin.

M.s.d

Pic programlamayla uğraşıyorum bende arm a geçiş yapmak istiyorum. biraz araştırma fırsatım oldu benim gibi yeni başlayanlar için cubemx ile uygulama yapmak daha kolay gibi. en azından main kısmını aradan çıkarmış oluyorum bu sayede  :) ama sizin bu hal lib. e olan güvensizliğinizin sebebi nedir? yeni başlayacak biri için neyi önerirsiniz. maalesef daha development kiti alamadığım için sadece araştırmayla yetiniyorum. açıkçası bi led yakıp söndürmüşlüğüm bile yok. onun için yanlış bir şey yazdıysam lütfen bu söylediklerimi dikkate alarak cevaplamanızı istiyorum :)
teşekkürler.

piscopatos2

hal'i bırak std per. lib'e de güvenmiyorum. CMSIS ten öte köy yok.

Cemre.

Hocam ne gibi sorunlar yaşadınız da bu kadar kızgınsınız HAL ve StdPLib'e?

skara1214

Hal guzelce calisiyor sikinti goremedim ben, ticari projede de kullaniyorum
Herkes ölür ama herkes gerçekten yaşamaz

piscopatos

#9
en basitinden HAL ve std lib'de pinleri giriş çıkış olarak ayarlamak için bir sürü kod yazmak gerekir. aşağıdaki 8 satır kod için ne kadar uğraşcağınızı düşünün. hata olarak ben henüz bir hataya rastlamadım fakat başka forumlarda sıkıntı yaşadıklarını söyleyenler vardı, bir daha karşılaştığımda linkini eklerim buraya. hal ve std lib kullanmayın demiyorum, fakat kullanılan tüm fonksiyonların içeride ne yaptığını bilmek lazım, bu kütüphaneleri çalışmak C dilinde kendimizi geliştirmek ve daha iyi öğrenmek için de çok güzel bir kaynak.

RCC->APB2ENR = 0 |RCC_APB2ENR_IOPCEN |RCC_APB2ENR_IOPAEN | RCC_APB2ENR_USART1EN|RCC_APB2ENR_AFIOEN;
GPIOC->CRH = 0x00200000;//pinC13 çıkış
GPIOA->CRH = 0x000034B0;//pinA11 çıkış, pinA9 pinA10 uart tx rx
GPIOA->CRL = 0x88888888;//A0---A7 anahtar girisleri
AFIO->EXTICR[1] &=0xFFFF0000; //exti port source  exti0-exti3 (pinA0-dan pinA3'e)
AFIO->EXTICR[2] &=0xFFFF0000; //exti port source	exti4-exti7 (pinA4-den pinA7'ye)	
//interrupt mask register---rising trigger register
EXTI->IMR |= 0x000000FF;	
EXTI->RTSR |= 0x000000FF;


quarko

#10
Aradan zaman geçmiş ama olsun. HAL ve SPL nin birbirine göre üstünlükleri var. Hala Standart Peripheral Library leri tercih eden bir sürü kullanıcı mevcut. Fakat artık ST, HAL e destek veriyor. Belki bir zaman geçmek gerekecek. Şu sıralar uğraştığım bir problemle araştırma yaparken bu konuya denk geldim. :) HAL ile yaptığım i2c oled uygulamasını, std peripheral library ile bir türlü yapamadım. i2c biriminin clock unun aktif ettiğimde, busy biti 1 de çakılı kalıyor. HAL ile yaptığım projedeki aynı adımları uygulasam bile maalesef çözülmedi.
"Aslanlar kendi hikayelerini yazmadıkça, avcıların kahramanlık hikayelerini dinlemek zorundayız."

muhittin_kaplan

std lib ile i2c çalıştırabilen var mı ?  ???

okg

Alıntı yapılan: muhittin_kaplan - 09 Temmuz 2017, 14:37:35
std lib ile i2c çalıştırabilen var mı ?  ???

hocam ben arada yanlışlıkla çalıştırabiliyorum  ;D
KTU Elektronik Haberleşme - YTÜ Haberşelme YL - GTU Haberleşme YL

MC_Skywalker

HAL iyi güzelde flash belkeği sömürüyor.



quarko

Alıntı yapılan: muhittin_kaplan - 09 Temmuz 2017, 14:37:35
std lib ile i2c çalıştırabilen var mı ?  ???

@muhittin_kaplan Hocam madem bu kadar problemli. Neden bir güncelleme yapmıyorlar. HAL ile bu i2c güzel çalışabiliyorsa, sıkıntının nerede olduğu aşikar... Çözülebilmesi lazım aslında.  :-\
"Aslanlar kendi hikayelerini yazmadıkça, avcıların kahramanlık hikayelerini dinlemek zorundayız."