Stm32 cubeide kod blok satırları

Başlatan zamzam23, 18 Eylül 2021, 23:47:31

zamzam23

Selamlar,
Cubeide'de başlangıç ayarlarını yaptıktan sonra otomatik oluşturulan kodda, aşağıdaki gibi kendi kodlarımızı yazmamız gereken kod blokları için yorum satırları var. Bu satırlardan kurtulmanın bir yöntemi var mı?

Bu satırlar aşırı kalabalık ediyor, program yazmamı ve okumamı zorlaştırıyor..

Syg.


/* USER CODE BEGIN 8 */
/* USER CODE END 8 */

eeburakdemir

Merhaba,
Aslında kalabalık etmiyor. Sebebi ise, siz herhangi bir update yaptığınızda bu blokların arasında kalan işlemlere değiştirilmiyor. Eğer kaldırırsanız ve update yaparsanız bu blok dışındakiler de gidiyor.
Asla pes etme...

RaMu

Kodu neredeyse hiç main dosyasına yazmayıp kurtulabilinir.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

zamzam23

Alıntı yapılan: RaMu - 19 Eylül 2021, 01:29:52Kodu neredeyse hiç main dosyasına yazmayıp kurtulabilinir.

Main fonksiyonunda, başka bir dosyadan  fonksiyon çağırmaktan bahsediyorsun sanırım. Bilemiyorum yine de tamamen kaldırılabilse harika olur. Ben alışamadım.

eeburakdemir

Alıntı yapılan: zamzam23 - 19 Eylül 2021, 10:02:58Main fonksiyonunda, başka bir dosyadan  fonksiyon çağırmaktan bahsediyorsun sanırım. Bilemiyorum yine de tamamen kaldırılabilse harika olur. Ben alışamadım.
Alıntı yapılan: RaMu - 19 Eylül 2021, 01:29:52Kodu neredeyse hiç main dosyasına yazmayıp kurtulabilinir.

Merhaba,
Bahsi geçen konu sadece main.c yada main.h olan bir durum değil. Bütün kaynak ve header dosyalarında mevcut. Bu yüzden söylediğiniz durum da işe yaramayacaktır.
Asla pes etme...

mr.engineer

Git vb. bir şey kullanmak mantıklı olabilir. Kodu bir kez generate ettikten sonra bu versiyonu commit edip ya da ayrı bir branch açıp yeni versiyonda bu yorumları silersiniz, eğer tekrar kodu CubeMx den update etmeniz gerekirse ilk versiyona dönüp onu update edersiniz. En sonunda da ilk versiyonun güncellenen haliyle, projenin üstüne yazdığınız kodları birleştirirsiniz.

Daha önce yapmadım böyle bir şey ama olur gibi geldi:)

Murat Mert

programlarımda main bloğum hep böyle yada buna benzer. Ana programa başka bir sayfada yazıyorum.
int main(void)
{
  /* USER CODE BEGIN 1 */
	//char yaz[]="seri port deneme \r\n";
  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_ADC1_Init();
  MX_I2C1_Init();
  MX_USB_DEVICE_Init();
  MX_TIM3_Init();
  MX_TIM2_Init();
  MX_TIM1_Init();
  /* USER CODE BEGIN 2 */

  	main_start();  // program başlangıc ayarları
 
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
	  prog_main();

    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}
mert07

zamzam23

Alıntı yapılan: Murat Mert - 19 Eylül 2021, 22:01:50programlarımda main bloğum hep böyle yada buna benzer. Ana programa başka bir sayfada yazıyorum.
int main(void)
{
  /* USER CODE BEGIN 1 */
	//char yaz[]="seri port deneme \r\n";
  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_ADC1_Init();
  MX_I2C1_Init();
  MX_USB_DEVICE_Init();
  MX_TIM3_Init();
  MX_TIM2_Init();
  MX_TIM1_Init();
  /* USER CODE BEGIN 2 */

  	main_start();  // program başlangıc ayarları
 
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
	  prog_main();

    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

Prog_main() fonksiyonunu içeren dosyayı nasıl dahil ediyoruz projeye? Ben .c olarak edeyim dedim kütüphane olarak görüyor ve "HAL kütüphane tanımsız" hatası veriyor.


eeburakdemir

Merhaba,
Projelerinizi .c ve .h gibi dosyalara bölerek yaparsanız linkeriniz daha rahat çalışır ve bu durumda program hafızanızdan daha az yer kaplanmasını sağlar. Ayrıca ana programda ise mümkün oldukça az kod yapısı ve güzel bir düzen içerisinde programlamlarınızı geliştirebilirsiniz. Diğer fonksiyonlarınız, yapılarınız, kesmeleriniz gibi işlevlerde kendi dosyaları içerisinde çalışıtığından dolayı, uygulamalarınıza müdahale etmek rahat olur.
Asla pes etme...

zamzam23

Alıntı yapılan: eeburakdemir - 21 Eylül 2021, 00:02:33Merhaba,
Projelerinizi .c ve .h gibi dosyalara bölerek yaparsanız linkeriniz daha rahat çalışır ve bu durumda program hafızanızdan daha az yer kaplanmasını sağlar. Ayrıca ana programda ise mümkün oldukça az kod yapısı ve güzel bir düzen içerisinde programlamlarınızı geliştirebilirsiniz. Diğer fonksiyonlarınız, yapılarınız, kesmeleriniz gibi işlevlerde kendi dosyaları içerisinde çalışıtığından dolayı, uygulamalarınıza müdahale etmek rahat olur.


Teşekkürler.

.h olarak include edince sorun çıkarmadı.
Kesmeler, değişkenler, fonksiyonlar vs. ayrı dosyalarda yazıcam dediğiniz gibi derli toplu olur bakalım.

eeburakdemir

Rica ederim. İyi çalışmalar dilerim.
Asla pes etme...

Murat Mert

Alıntı yapılan: zamzam23 - 20 Eylül 2021, 06:39:02Prog_main() fonksiyonunu içeren dosyayı nasıl dahil ediyoruz projeye? Ben .c olarak edeyim dedim kütüphane olarak görüyor ve "HAL kütüphane tanımsız" hatası veriyor.



Geç cevap oldu ama.....
C ve H dosyası olarak ekliyorum. MAin.h dosyası içine include edip kullanıyorum.
mert07