Stm32f10x_cl_vl_ld_xl

Başlatan mistek, 18 Ağustos 2013, 12:28:17

mistek

Bugün yeni bişey öğrenmeye çalışıyorum cahilliğime verin.

Daha önce lpc1769,stm32f407 ile çalışmıştım. Keil de bugün stm32f107 için proje oluşturmaya bildiğim şekilde başladım(Startup,inc,main vs.) Önceki projelerde yaptığım şekilde standart dosyaları ekledim ancak program en başında derlenmedi.
main.c
#include <stm32f10x.h>

int main(void)
{

return 0;
}


Hata: C:\Keil\ARM\INC\ST\STM32F10x\stm32f10x.h(96): error: #35: #error directive: "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"

Bu hatayı stm32f407 için aynı şekilde derlerken almıyorum. Keil klasöründeki örneklerde de farklı bişey yapılmamış.

Anladığım kadarıyla flash hafızayla ilgili benden bişey tanımlamamı istiyor. Header dosyasında aşağıdaki gibi açıklamalar var.
Bunlar benim için neyi ifade ediyor?
Neden işlemciyi seçtiğimde kendisi algılayamıyor?

  /* #define STM32F10X_LD */     /*!< STM32F10X_LD: STM32 Low density devices */
  /* #define STM32F10X_LD_VL */  /*!< STM32F10X_LD_VL: STM32 Low density Value Line devices */  
  /* #define STM32F10X_MD */     /*!< STM32F10X_MD: STM32 Medium density devices */
  /* #define STM32F10X_MD_VL */  /*!< STM32F10X_MD_VL: STM32 Medium density Value Line devices */  
  /* #define STM32F10X_HD */     /*!< STM32F10X_HD: STM32 High density devices */
  /* #define STM32F10X_HD_VL */  /*!< STM32F10X_HD_VL: STM32 High density value line devices */  
  /* #define STM32F10X_XL */     /*!< STM32F10X_XL: STM32 XL-density devices */
  /* #define STM32F10X_CL */     /*!< STM32F10X_CL: STM32 Connectivity line devices */
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

Klein

#1
STM32F10x serisinde bu tanımı derleyici otomatik yapmıyor. Nedenini ben de bilmiyorum.
Datasheette kullandığınız çipin hangi denisity gurubunda olduğu yazar.
Çipinizin hangi guruba girdiğini bulup, ona göre aşağıdaki satırlardan birini uncomment yapmanız gerek.
  /* #define STM32F10X_LD */     /*!< STM32F10X_LD: STM32 Low density devices */
  /* #define STM32F10X_LD_VL */  /*!< STM32F10X_LD_VL: STM32 Low density Value Line devices */  
  /* #define STM32F10X_MD */     /*!< STM32F10X_MD: STM32 Medium density devices */
  /* #define STM32F10X_MD_VL */  /*!< STM32F10X_MD_VL: STM32 Medium density Value Line devices */  
  /* #define STM32F10X_HD */     /*!< STM32F10X_HD: STM32 High density devices */
  /* #define STM32F10X_HD_VL */  /*!< STM32F10X_HD_VL: STM32 High density value line devices */  
  /* #define STM32F10X_XL */     /*!< STM32F10X_XL: STM32 XL-density devices */
  /* #define STM32F10X_CL */     /*!< STM32F10X_CL: STM32 Connectivity line devices */


Ekleme:
STM32F107 serisi , "Connectivity Line" serisi imiş.
aşağıdaki satır çipinizin tanımı. 
   #define STM32F10X_CL     /*!< STM32F10X_CL: STM32 Connectivity line devices */


mistek

Bu ön işlemci tanımlamasını main.c içerisinde yazamıyor muyum? Options for target altındaki C/C++ sekmesinde Define kısmına yazınca hata vermiyor. Nereye yazacağımı bilemedim.
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

Burak B

Alıntı yapılan: mistek - 18 Ağustos 2013, 14:07:01
Bu ön işlemci tanımlamasını main.c içerisinde yazamıyor muyum? Options for target altındaki C/C++ sekmesinde Define kısmına yazınca hata vermiyor. Nereye yazacağımı bilemedim.

Options->C/C++ sekmesine

USE_STDPERIPH_DRIVER, STM32F10X_CL satırını ekle.

"... a healthy dose of paranoia leads to better systems." Jack Ganssle

mistek

Alıntı yapılan: gerbay - 18 Ağustos 2013, 17:39:08
Main.c içine include etmeden önceki satıra define olarak eklemeniz yeterli

hocam şu şekilde yapınca aynı hatayı veriyor.

#define STM32F10X_CL
#include <stm32f10x.h>

int main(void)
{

return 0;
}



Alıntı yapılan: ByteMaster - 18 Ağustos 2013, 18:04:14
Options->C/C++ sekmesine

USE_STDPERIPH_DRIVER, STM32F10X_CL satırını ekle.

Evet bu şekilde yazınca hata vermiyor ama başka yerde tanımlanabiliyor mu diye bakıyorum.
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R